# BVP Problems

## Mathematical Specification of an BVP Problem

To define an BVP Problem, you simply need to give the function $f$ and the initial condition $u₀$ which define an ODE:

along with an implicit function `bc!`

which defines the residual equation, where

is the manifold on which the solution must live. A common form for this is the two-point `BVProblem`

where the manifold defines the solution at two points:

## Problem Type

### Constructors

```
TwoPointBVProblem{isinplace}(f,bc!,u0,tspan)
BVProblem{isinplace}(f,bc!,u0,tspan)
```

For `TwoPointBVProblem`

, `bc!`

is the inplace function:

`bc!(residual, ua, ub)`

where `residual`

computed from the current $u_a = u(t_0)$ and $u_b = u(t_f)$. For `BVProblem`

, `bc!`

is the inplace function:

`bc!(residual, sol)`

where `u`

is the current solution to the ODE which is used to compute the `residual`

. Note that all features of the `ODESolution`

are present in this form. In both cases, the size of the residual matches the size of the initial condition. For more general problems, use the parameter estimation routines and change the signature of `bc!`

and `f`

to

```
bc!(residual, sol, p)
f(t, u, p) # or inplace as f(t, u, p, du)
```

where `p`

is the `Vector`

of free parameters.

### Fields

`f`

: The function for the ODE.`bc`

: The boundary condition function.`u0`

: The initial condition. Either the initial condition for the ODE as an initial value problem, or a`Vector`

of values for $u(t_i)$ for collocation methods`tspan`

: The timespan for the problem.