Code covered by the BSD License  

Highlights from
RKN1210 - A 12th/10th order Runge-Kutta-Nystrom integrator

Be the first to rate this file! 18 Downloads (last 30 days) File Size: 15.7 KB File ID: #25291
image thumbnail

RKN1210 - A 12th/10th order Runge-Kutta-Nystrom integrator

by Rody Oldenhuis

 

11 Sep 2009 (Updated 19 Feb 2011)

Integrator for second-order ODE's with very stringent error tolerances.

| Watch this File

File Information
Description

RKN1210 12th/10th order Runge-Kutta-Nystrom integrator

RKN1210() is a 12th/10th order numerical integrator for ordinary differential equations of the form

  y'' = f(t, y) (1)

with initial conditions

  y(t0) = y0, y'(t0) = yp0 (2)

This second-order differential equation is integrated with a
Runge-Kutta-Nystrom method, with 17 function evaluations per step. The RKN-class of integrators is especially suited for this purpose, since compared to a classic Runge-Kutta integration scheme the same accuracy can be obtained with less function evaluations.

This RKN12(10) method is a very high-order method, to be used in problems with *extremely* stringent error tolerances. In verious studies, it has been shown that this particular integration technique is overall more efficient for ODE's of the form (1) than multi-step or extrapolation methods that give the same accuracy.

RKN1210's behavior is very similar MATLAB's ODE-integrator suite; you can set options via ODESET, and input and output values are also practically the same.

Both output functions and event functions are fully supported.

The construction of RKN12(10) is described in
High-Order Embedded Runge-Kutta-Nystrom Formulae
J. R. DORMAND, M. E. A. EL-MIKKAWY, AND P. J. PRINCE
IMA Journal of Numerical Analysis (1987) 7, 423-430

Coefficients obtained from
http://www.tampa.phys.ucl.ac.uk/rmat/test/rknint.f
These are also available in any format on request to these authors.

Acknowledgements

The author wishes to acknowledge the following in the creation of this submission:
rkn86

MATLAB release MATLAB 7.11 (2010b)
Other requirements ODE suite, for ODESET() and ODEGET() (standard MATLAB) Replace the tildes with dummy variables if you get errors (R2008b and earlier)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Please login to add a comment or rating.
Updates
14 Jan 2010

- Interactive demonstration included
- implemented support for event functions
  and output functions
- corrected various bugs, most notably the
  (incorrectly) flipped output when tspan(2) < tspan(1)
- improved error handling

28 Oct 2010

- Fixed 2 bugs: 1) exitflag = 3 was never assigned or described in the argument [output] 2) intermediate results were erased by event functions and only the event's zero was returned
- Improved performance a bit by pre-assigning the output arrays

19 Feb 2011

- Removed bug inherited from RKN86; the error estimates there were all wrong. Now RKN1210 integrates at least 50x faster!
- Updated demo; included Earth+J2 example.

Tag Activity for this File
Tag Applied By Date/Time
integration Rody Oldenhuis 11 Sep 2009 17:02:35
ode Rody Oldenhuis 11 Sep 2009 17:02:35
rungekuttanystrom Rody Oldenhuis 11 Sep 2009 17:02:35
highorder Rody Oldenhuis 11 Sep 2009 17:02:35
numerical integration Rody Oldenhuis 11 Sep 2009 17:02:35
secondorder ode Rody Oldenhuis 11 Sep 2009 17:02:35
accuracy Rody Oldenhuis 14 Jan 2010 09:43:21
precision Rody Oldenhuis 14 Jan 2010 09:43:21
methematics Rody Oldenhuis 14 Jan 2010 09:43:21
mathematics Rody Oldenhuis 28 Oct 2010 13:10:25
accuracy Alexandre Munnier 28 Oct 2010 15:15:19

Contact us at files@mathworks.com