Main Content

Solve boundary value problem — fourth-order method

integrates a system of differential equations of the form `sol`

= bvp4c(`odefun`

,`bcfun`

,`solinit`

)*y*′ =
*f*(*x*,*y*) specified by `odefun`

, subject to the boundary conditions
described by `bcfun`

and the initial solution guess
`solinit`

. Use the `bvpinit`

function to create the initial guess `solinit`

, which
also defines the points at which the boundary conditions in `bcfun`

are
enforced.

also uses the integration settings defined by `sol`

= bvp4c(`odefun`

,`bcfun`

,`solinit`

,`options`

)`options`

, which is an
argument created using the `bvpset`

function. For example, use the
`AbsTol`

and `RelTol`

options to specify absolute and
relative error tolerances, or the `FJacobian`

option to provide the
analytical partial derivatives of `odefun`

.

`bvp4c`

is a finite difference code that implements the three-stage
Lobatto IIIa formula [1], [2]. This is a collocation
formula and the collocation polynomial provides a C^{1}-continuous
solution that is fourth-order accurate uniformly in the interval of integration. Mesh
selection and error control are based on the residual of the continuous solution.

The collocation technique uses a mesh of points to divide the interval of integration into
subintervals. The solver determines a numerical solution by solving a global system of
algebraic equations resulting from the boundary conditions, and the collocation conditions
imposed on all the subintervals. The solver then estimates the error of the numerical solution
on each subinterval. If the solution does not satisfy the tolerance criteria, the solver
adapts the mesh and repeats the process. You *must* provide
the points of the initial mesh, as well as an initial approximation of the solution at the
mesh points.

[1] Shampine, L.F., and J. Kierzenka.
"A BVP Solver based on residual control and the MATLAB PSE." *ACM
Trans. Math. Softw.* Vol. 27, Number 3, 2001, pp. 299–316.

[2] Shampine, L.F., M.W. Reichelt, and
J. Kierzenka. "Solving Boundary Value Problems for Ordinary Differential Equations in MATLAB with
bvp4c." *MATLAB File Exchange*, 2004.