Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Solve nonstiff differential equations — variable order method

```
[t,y] =
ode113(odefun,tspan,y0)
```

```
[t,y] =
ode113(odefun,tspan,y0,options)
```

```
[t,y,te,ye,ie]
= ode113(odefun,tspan,y0,options)
```

`sol = ode113(___)`

`[`

,
where `t`

,`y`

] =
ode113(`odefun`

,`tspan`

,`y0`

)`tspan = [t0 tf]`

, integrates the system of
differential equations $$y\text{'}=f\left(t,y\right)$$ from `t0`

to `tf`

with
initial conditions `y0`

. Each row in the solution
array `y`

corresponds to a value returned in column
vector `t`

.

All MATLAB^{®} ODE solvers can solve systems of equations of
the form $$y\text{'}=f\left(t,y\right)$$,
or problems that involve a mass matrix, $$M\left(t,y\right)y\text{'}=f\left(t,y\right)$$.
The solvers all use similar syntaxes. The `ode23s`

solver
only can solve problems with a mass matrix if the mass matrix is constant. `ode15s`

and `ode23t`

can
solve problems with a mass matrix that is singular, known as differential-algebraic
equations (DAEs). Specify the mass matrix using the `Mass`

option
of `odeset`

.

`[`

additionally
finds where functions of (`t`

,`y`

,`te`

,`ye`

,`ie`

]
= ode113(`odefun`

,`tspan`

,`y0`

,`options`

)*t*,*y*),
called event functions, are zero. In the output, `te`

is
the time of the event, `ye`

is the solution at the
time of the event, and `ie`

is the index of the triggered
event.

For each event function, specify whether the integration is
to terminate at a zero and whether the direction of the zero crossing
matters. Do this by setting the `'Events'`

property
to a function, such as `myEventFcn`

or `@myEventFcn`

,
and creating a corresponding function: [`value`

,`isterminal`

,`direction`

]
= `myEventFcn`

(`t`

,`y`

).
For more information, see ODE Event Location.

returns
a structure that you can use with `sol`

= ode113(___)`deval`

to evaluate
the solution at any point on the interval `[t0 tf]`

.
You can use any of the input argument combinations in previous syntaxes.

`ode113`

is a variable-step, variable-order (VSVO) Adams-Bashforth-Moulton
PECE solver of orders 1 to 13. The highest order used appears to be 12, however, a
formula of order 13 is used to form the error estimate and the function does local
extrapolation to advance the integration at order 13.

`ode113`

may be more efficient than `ode45`

at
stringent tolerances or if the ODE function is particularly expensive to evaluate.
`ode113`

is a multistep solver — it normally needs the
solutions at several preceding time points to compute the current solution [1], [2].

[1] Shampine, L. F. and M. K. Gordon, *Computer
Solution of Ordinary Differential Equations: the Initial Value Problem*,
W. H. Freeman, San Francisco, 1975.

[2] Shampine, L. F. and M. W. Reichelt, “The
MATLAB ODE Suite,” *SIAM Journal on Scientific
Computing*, Vol. 18, 1997, pp. 1–22.