naginterfaces.library.ode.bvp_coll_nlin_contin¶
- naginterfaces.library.ode.bvp_coll_nlin_contin(nmesh, mesh, ipmesh, comm)[source]¶
bvp_coll_nlin_contin
allows a solution to a nonlinear two-point boundary value problem computed bybvp_coll_nlin_solve()
to be used as an initial approximation in the solution of a related nonlinear two-point boundary value problem in a continuation call tobvp_coll_nlin_solve()
.For full information please refer to the NAG Library document for d02tx
https://www.nag.com/numeric/nl/nagdoc_29.2/flhtml/d02/d02txf.html
- Parameters
- nmeshint
The number of points to be used in the new initial mesh. It is strongly recommended that if this function is called that the suggested value (see below) for is used. In this case the arrays and returned by
bvp_coll_nlin_diag()
can be passed to this function without any modification.Suggested value: , where is the number of mesh points used in the previous mesh as returned in the argument of
bvp_coll_nlin_diag()
.- meshfloat, array-like, shape
The points to be used in the new initial mesh as specified by .
Suggested value: the argument returned from a call to
bvp_coll_nlin_diag()
.- ipmeshint, array-like, shape
Specifies the points in to be used as the new initial mesh. Let be the set of array indices of such that or and . Then will be included in the new initial mesh.
If , will be a fixed point in the new initial mesh.
If for any , will not be included in the new mesh.
Suggested value: the argument returned in a call to
bvp_coll_nlin_diag()
.- commdict, communication object, modified in place
Communication structure.
This argument must have been initialized by a prior call to
bvp_coll_nlin_setup()
.
- Raises
- NagValueError
- (errno )
The entries in are not strictly increasing.
- (errno )
The last point of the new mesh does not coincide with the right hand end of the range previously specified.
Last point of the new mesh: ; right-hand end of the range: .
- (errno )
You have set the element of corresponding to the last element of to be included in the new mesh as , which is not .
- (errno )
Expected elements of to be or , but such elements found.
- (errno )
An element of was set to before elements containing or were detected.
- (errno )
, , or for some .
- (errno )
On entry, .
Constraint: .
- (errno )
The first element of array does not coincide with the left-hand end of the range previously specified.
First element of : ; left-hand of the range: .
- (errno )
On entry, and .
Constraint: .
- (errno )
On entry, .
Constraint: .
- (errno )
On entry, and in
bvp_coll_nlin_setup()
.Constraint: in
bvp_coll_nlin_setup()
.- (errno )
The solver function did not produce any results suitable for remeshing.
- (errno )
The solver function does not appear to have been called.
- Notes
bvp_coll_nlin_contin
and its associated functions (bvp_coll_nlin_solve()
,bvp_coll_nlin_setup()
,bvp_coll_nlin_interp()
andbvp_coll_nlin_diag()
) solve the two-point boundary value problem for a nonlinear system of ordinary differential equationsover an interval subject to () nonlinear boundary conditions at and () nonlinear boundary conditions at , where . Note that is the th derivative of the th solution component. Hence . The left boundary conditions at are defined as
and the right boundary conditions at as
where and
First,
bvp_coll_nlin_setup()
must be called to specify the initial mesh, error requirements and other details. Then,bvp_coll_nlin_solve()
can be used to solve the boundary value problem. After successful computation,bvp_coll_nlin_diag()
can be used to ascertain details about the final mesh.bvp_coll_nlin_interp()
can be used to compute the approximate solution anywhere on the interval using interpolation.If the boundary value problem being solved is one of a sequence of related problems, for example as part of some continuation process, then
bvp_coll_nlin_contin
should be used between calls tobvp_coll_nlin_solve()
. This avoids the overhead of a complete initialization when the setup functionbvp_coll_nlin_setup()
is used.bvp_coll_nlin_contin
allows the solution values computed in the previous call tobvp_coll_nlin_solve()
to be used as an initial approximation for the solution in the next call tobvp_coll_nlin_solve()
.You must specify the new initial mesh. The previous mesh can be obtained by a call to
bvp_coll_nlin_diag()
. It may be used unchanged as the new mesh, in which case any fixed points in the previous mesh remain as fixed points in the new mesh. Fixed and other points may be added or subtracted from the mesh by manipulation of the contents of the array argument . Initial values for the solution components on the new mesh are computed by interpolation on the values for the solution components on the previous mesh.The functions are based on modified versions of the codes COLSYS and COLNEW (see Ascher et al. (1979) and Ascher and Bader (1987)). A comprehensive treatment of the numerical solution of boundary value problems can be found in Ascher et al. (1988) and Keller (1992).
- References
Ascher, U M and Bader, G, 1987, A new basis implementation for a mixed order boundary value ODE solver, SIAM J. Sci. Stat. Comput. (8), 483–500
Ascher, U M, Christiansen, J and Russell, R D, 1979, A collocation solver for mixed order systems of boundary value problems, Math. Comput. (33), 659–679
Ascher, U M, Mattheij, R M M and Russell, R D, 1988, Numerical Solution of Boundary Value Problems for Ordinary Differential Equations, Prentice–Hall
Keller, H B, 1992, Numerical Methods for Two-point Boundary-value Problems, Dover, New York