Solve multi-point boundary value problems for ODEs
See also
This module uses a modified version of COLNEW [CN], a mature solver for multi-point boundary value problems for ODEs.
COLNEW handles only problems with separated boundary conditions. Non-separated problems can be converted to separated form for example by adding dummy variables:
can be transformed to
Similarly, problems with constant parameters
can be transformed to
This may make the problem non-linear.
[CN] | U. Ascher and G. Bader (and J. Christiansen and R. D. Russell). SIAM J. Sci. Comput. 8, 483 (1987). http://www.netlib.org/ode/colnew.f |
Print debug output
Print selected output
The problem is regular
The problem is sensitive. The nonlinear iteration should not rely on past covergence.
Print no messages
A solution to a boundary value problem for an ODE
Methods
get_mesh() | Get the mesh points on which the solution is specified |
get_mesh_values() | Get the solution at the mesh points |
The FSPACE vector provided by COLNEW
Get the mesh points on which the solution is specified
Returns: | mesh : ndarray of float, shape (nmesh,) |
---|
Get the solution at the mesh points
Returns: | values : ndarray
|
---|
The ISPACE vector provided by COLNEW
The mesh on which the solution is specified
Check that the Jacobian functions match numerically evaluated derivatives.
Parameters: | degrees, boundary_points, fsub, dfsub, gsub, dsub, vectorized :
kw :
|
---|---|
Raises: | ValueError :
|
Solve a multi-point boundary value problem for a system of ODEs.
The mixed-order system is:
ncomp = len(degrees)
mstar = sum(degrees)
1 <= min(degrees) <= max(degrees) <= 4
u_i^{(m_i)}(x) = f_i(x, z(x)) i = 0, ..., ncomp-1
left <= x <= right
g_j(zeta_j, z(zeta_j)) = 0 j = 0, ..., mstar-1
where u(x) is the solution vector at position x and zeta = boundary_points specifies the boundary points.
The solution vector is represented by z-vector:
z = [u_1, u_1', ..., u_1^{m_1-1}, u_2, u_2', ..., u_{mstar-1}]
It is of shape (mstar,) and contains derivatives of orders < m_i.
Note
Parameters: | boundary_points :
degrees : list of integers
fsub : callable
gsub : callable
dfsub : callable, optional
dgsub : callable, optional
left : float, optional
right : float, optional
vectorized : bool, optional
is_linear : bool, optional
initial_guess : callable or Solution, optional
tolerances : list of float, optional
adaptive_mesh_selection : bool, optional
verbosity : int, optional
collocation_points : int, optional
extra_fixed_points : list of float, optional
problem_regularity : int, optional
maximum_mesh_size : int, optional
is_complex : bool, optional
|
---|---|
Returns: | sol : Solution
|
Raises: | ValueError :
scikits.bvp1lg.NoConvergence :
scikits.bvp1lg.TooManySubintervals :
scikits.bvp1lg.SingularCollocationMatrix :
SystemError :
|