naginterfaces.library.ode.ivp_2nd_rkn¶
- naginterfaces.library.ode.ivp_2nd_rkn(fcn, t, tend, y, yp, ydp, comm, data=None)[source]¶
ivp_2nd_rkn
is a function for integrating a non-stiff system of second-order ordinary differential equations using Runge–Kutta–Nystrom techniques.For full information please refer to the NAG Library document for d02la
https://support.nag.com/numeric/nl/nagdoc_30.3/flhtml/d02/d02laf.html
- Parameters
- fcncallable f = fcn(t, y, data=None)
must evaluate the functions (that is the second derivatives ) for given values of its arguments , .
- Parameters
- tfloat
, the value of the argument.
- yfloat, ndarray, shape
, for , the value of the argument.
- dataarbitrary, optional, modifiable in place
User-communication data for callback functions.
- Returns
- ffloat, array-like, shape
The value of , for .
- tfloat
The initial value of the independent variable .
- tendfloat
The end point of the range of integration. If on initial entry, integration will proceed in the negative direction. may be reset, in the direction of integration, before any continuation call.
- yfloat, array-like, shape
The initial values of the solution .
- ypfloat, array-like, shape
The initial values of the derivatives .
- ydpfloat, array-like, shape
Must be unchanged from a previous call to
ivp_2nd_rkn
.- commdict, communication object, modified in place
Communication structure.
This argument must have been initialized by a prior call to
ivp_2nd_rkn_setup()
.- dataarbitrary, optional
User-communication data for callback functions.
- Returns
- tfloat
The value of the independent variable, which is usually , unless an error has occurred or the code is operating in one-step mode. If the integration is to be continued, possibly with a new value for , must not be changed.
- yfloat, ndarray, shape
The computed values of the solution at the exit value of . If the integration is to be continued, possibly with a new value for , these values must not be changed.
- ypfloat, ndarray, shape
The computed values of the derivatives at the exit value of . If the integration is to be continued, possibly with a new value for , these values must not be changed.
- ydpfloat, ndarray, shape
The computed values of the second derivative at the exit value of , unless illegal input is detected, in which case the elements of may not have been initialized. If the integration is to be continued, possibly with a new value for , these values must not be changed.
- Raises
- NagValueError
- (errno )
On entry, , but in the previous call to the setup function .
- (errno )
The previous call to the setup function resulted in the error exit .
- (errno )
The setup function
ivp_2nd_rkn_setup()
has not been called.- (errno )
has been reset such that the direction of integration is reversed.
- (errno )
To satisfy the accuracy requirements the step size, , at , is too small for the machine precision.
- (errno )
Two successive errors detected at the current value of .
- Warns
- NagAlgorithmicWarning
- (errno )
On entry, and .
Constraint: .
- (errno )
The maximum number of steps, , has been attempted.
- (errno )
Inefficiency detected in integrating exactly to values of .
- Notes
No equivalent traditional C interface for this routine exists in the NAG Library.
Given the initial values
ivp_2nd_rkn
integrates a non-stiff system of second-order differential equations of the typefrom to using a Runge–Kutta–Nystrom formula pair. The system is defined by , which evaluates in terms of and , where are supplied at .
There are two Runge–Kutta–Nystrom formula pairs implemented in this function. The lower order method is intended if you have moderate accuracy requirements and may be used in conjunction with the interpolation function
ivp_2nd_rkn_interp()
to produce solutions and derivatives at user-specified points. The higher order method is intended if you have high accuracy requirements.In one-step mode the function returns approximations to the solution, derivative and at each integration point. In interval mode these values are returned at the end of the integration range. You select the order of the method, the mode of operation, the error control and various optional inputs by a prior call to
ivp_2nd_rkn_setup()
.For a description of the Runge–Kutta–Nystrom formula pairs see Dormand et al. (1986a) and Dormand et al. (1986b) and for a description of their practical implementation see Brankin et al. (1989).
- References
Brankin, R W, Dormand, J R, Gladwell, I, Prince, P J and Seward, W L, 1989, Algorithm 670: A Runge–Kutta–Nystrom Code, ACM Trans. Math. Software (15), 31–40
Dormand, J R, El–Mikkawy, M E A and Prince, P J, 1986, Families of Runge–Kutta–Nystrom formulae, Mathematical Report TPMR 86-1, Teesside Polytechnic
Dormand, J R, El–Mikkawy, M E A and Prince, P J, 1986, High order embedded Runge–Kutta–Nystrom formulae, Mathematical Report TPMR 86-2, Teesside Polytechnic