We present an algorithm for determining the stepsize in an explicit Runge-Kutta method that is suitable when solving moderately stiff differential equations. The algorithm has a geometric character, and is based on a pair of semicircles that enclose the boundary of the stability region in the left half of the complex plane. The algorithm includes an error control device. We describe a vectorized form of the algorithm, and present a corresponding MATLAB code. Numerical examples for Runge-Kutta methods of third and fourth order demonstrate the properties and capabilities of the algorithm.
References
[1]
J. C. Butcher, “Numerical Methods for Ordinary Differential Equations,” Wiley, Chichester, 2003.
doi:10.1002/0470868279
[2]
E. Fehlberg, “Low-Order Classical Runge-Kutta Formulas with Step Size Control and Their Application to Some Heat Transfer Problems,” Computing, Vol. 6, 1970, pp. 61-71. doi:10.1007/BF02241732
[3]
L. F. Shampine and M. W. Reichelt, “The MATLAB ODE Suite,” SIAM Journal on Scientific Computing, Vol. 18, No. 1, 1970, pp. 1-22.
doi:10.1137/S1064827594276424
[4]
D. Kincaid and W. Cheney, “Numerical Analysis: Mathematics of Scientific Computing,” 3rd Edition, Brooks/Cole, Pacific Grove, 2002.
[5]
E. Hairer and G. Wanner, “Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems,” Springer, Berlin, 2000.
[6]
R. L. Burden and J. D. Faires, “Numerical Analysis,” 9th Edition, Brooks/Cole, Pacific Grove, 2011.