In the following table, each line/entry contains the program file name, the page number where it can be found in the textbook, and a brief description. Click on the program name to display the source code, which can be downloaded.
Chapter 1: Introduction | ||
first.f90 | 6-7 | First programming experiment |
pi.f90 | 8 | Simple code to illustrate double precision |
Chapter 2: Number Representation and Errors | ||
oct.f90 | 49 | Print in octal format |
hex.f90 | 50 | Print in hexadecimal format |
numbers.f90 | 60-61 | Print internal machine representation of various numbers |
xsinx.f90 | 77-79 | Example of carefully programming f(x) = x - sinx |
Chapter 3: Locating Roots of Equations | ||
bisection.f90 | 94-95 | Bisection method |
rec_bisection.f90 | 95-96 | Recursive version of bisection method |
newton.f90 | 106-107 | Sample Newton method |
secant.f90 | 127-128 | Secant method |
Chapter 4: Interpolation and Numerical Differentiation | ||
coef.f90 | 152-155 | Newton interpolation polynomial at equidistant pts |
deriv.f90 | 185-186 | Derivative by center differences/Richardson extrapolation |
Chapter 5: Numerical Integration | ||
sums.f90 | 200 | Upper/lower sums experiment for an integral |
trapezoid.f90 | 207 | Trapezoid rule experiment for an integral |
romberg.f90 | 223-224 | Romberg arrays for three separate functions |
Chapter 6: More on Numerical Integration | ||
rec_simpson.f90 | 241 | Adaptive scheme for Simpson's rule |
Chapter 7: Systems of Linear Equations | ||
ngauss.f90 | 270-271 | Naive Gaussian elimination to solve linear systems |
gauss.f90 | 285-287 | Gaussian elimination with scaled partial pivoting |
tri.f90 | 301-302 | Solves tridiagonal systems |
penta.f90 | 304 | Solves pentadiagonal linear systems |
Chapter 8: More on Systems of Linear Equations | ||
Chapter 9: Approximation by Spline Functions | ||
spline1.f90 | 385 | Interpolates table using a first-degree spline function |
spline3.f90 | 404-406 | Natural cubic spline function at equidistant points |
bspline2.f90 | 427-428 | Interpolates table using a quadratic B-spline function |
schoenberg.f90 | 430-431 | Interpolates table using Schoenberg's process |
Chapter 10: Ordinary Differential Equations | ||
euler.f90 | 448-449 | Euler's method for solving an ODE |
taylor.f90 | 451 | Taylor series method (order 4) for solving an ODE |
rk4.f90 | 462-463 | Runge-Kutta method (order 4) for solving an IVP |
rk45.f90 | 472-473 | Runge-Kutta-Fehlberg method for solving an IVP |
rk45ad.f90 | 474 | Adaptive Runge-Kutta-Fehlberg method |
Chapter 11: Systems of Ordinary Differential Equations | ||
taylorsys1.f90 | 489-490 | Taylor series method (order 4) for systems of ODEs |
taylorsys2.f90 | 491 | Taylor series method (order 4) for systems of ODEs |
rk4sys.f90 | 491-493,496 | Runge-Kutta method (order 4) for systems of ODEs |
amrk.f90 | 510-513 | Adams-Moulton method for systems of ODEs |
amrkad.f90 | 513 | Adaptive Adams-Moulton method for systems of ODEs |
Chapter 12: Smoothing of Data and the Method of Least Squares | ||
Chapter 13: Monte Carlo Methods and Simulation | ||
test_random.f90 | 562-563 | Example to compute, store, and print random numbers |
coarse_check.f90 | 564 | Coarse check on the random-number generator |
double_integral.f90 | 574-575 | Volume of a complicated 3D region by Monte Carlo |
volume_region.f90 | 575-576 | Numerical value of integral over a 2D disk by Monte Carlo |
cone.f90 | 576-577 | Ice cream cone example |
loaded_die.f90 | 581 | Loaded die problem simulation |
birthday.f90 | 583 | Birthday problem simulation |
needle.f90 | 584 | Buffon's needle problem simulation |
two_die.f90 | 585 | Two dice problem simulation |
shielding.f90 | 586-587 | Neutron shielding problem simulation |
Chapter 14: Boundary Value Problems for Ordinary Differential Equations | ||
bvp1.f90 | 602-603 | Boundary value problem solved by discretization technique |
bvp2.f90 | 605-606 | Boundary value problem solved by shooting method |
Chapter 15: Partial Differential Equations | ||
parabolic1.f90 | 618-619 | Parabolic partial differential equation problem |
parabolic2.f90 | 620-621 | Parabolic PDE problem solved by Crank-Nicolson method |
hyperbolic.f90 | 633-634 | Hyperbolic PDE problem solved by discretization |
seidel.f90 | 642-645 | Elliptic PDE solved by discretization/ Gauss-Seidel method |
Chapter 16: Minimization of Functions | ||
Chapter 17: Linear Programming |
Runge-Kutta (RK4) numerical solution for Differential Equations. In the last section, Euler's Method gave us one possible approach for solving differential equations numerically. The problem with Euler's Method is that you have to use a small interval size to get a reasonably accurate result. That is, it's not very efficient. You should compile your code for debugging. If you use gfortran, use -g -fbacktrace -fcheck=all -Wall. For ifort use -g -traceback-check -warn. Other compilers have similar options. – Vladimir F Dec 1 '14 at 19:30. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share.
Addditional programs can be found at the textbook's anonymous ftp site:
Rk4 Fortran Code Example
[Home] | [Features] | [TOC] | [Purchase] | [Sample Code] | [Web] | [Manuals] | [Errata] | [Links] |
Rk4 Fortran Code Examples
Last updated: |