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 |
Addditional programs can be found at the textbook's anonymous ftp site:
Runge Kutta Fehlberg Fortran Code
[Home] | [Features] | [TOC] | [Purchase] | [Sample Code] | [Web] | [Manuals] | [Errata] | [Links] |
Last updated: 5/20/2003 |
Rk4 Fortran Code Examples
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. Fourth Order Runge-Kutta. Intro; First Order; Second; Fourth; Printable; Contents Introduction. In the last section it was shown that using two estimates of the slope (i.e., Second Order Runge Kutta; using slopes at the beginning and midpoint of the time step, or using the slopes at the beginninng and end of the time step) gave an approximation with greater accuracy than using just a single.