Main Content

Summary of ODE Options

Solving ODEs frequently requires fine-tuning parameters, adjusting error tolerances, or passing additional information to the solver. This topic shows how to specify options, and which differential equation solvers each option is compatible with.

Options Syntax

Use theodeset函数创建一个选项结构then pass to the solver as the fourth input argument. For example, to adjust the relative and absolute error tolerances:

opts = odeset('RelTol',1e-2,'AbsTol',1e-5); [t,y] = ode45(@odefun,tspan,y0,opts);

If you use the commandodesetwith no inputs, then MATLAB®displays a list of the possible values for each option, with default values indicated by curly braces{}.

Theodegetfunction queries the value of an option in an existing structure, which you can use to dynamically change option values based on conditions. For example, this code detects whetherStatsis set to'on', and changes the value if necessary:

ifisempty(odeget(opts,'Stats')) odeset(opts,'Stats','on')end

Compatibility of Options with Each Solver

Some options inodesetare generic and compatible with any solver, while others are solver-specific. This table summarizes the compatibility of each option with the different solvers.

Option Group Option ode45 ode23 ode78 ode89 ode113 ode15s ode23s ode23t ode23tb ode15i
Error Control RelTol

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

AbsTol

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

NormControl

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Solver Output NonNegative

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

Supported

Supported

Unsupported

OutputFcn

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

OutputSel

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Refine

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Stats

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Step Size InitialStep

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

MaxStep

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Event Location Events

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Jacobian Matrix Jacobian

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

JPattern

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

Vectorized

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

Mass Matrix and DAEs Mass

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

MStateDependence

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

Supported

Supported

Unsupported

MvPattern

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Supported

Unsupported

MassSingular

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Unsupported

Unsupported

InitialSlope

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Unsupported

Unsupported

Algorithm Options forode15sandode15i MaxOrder

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Unsupported

Unsupported

Supported

BDF

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Unsupported

Unsupported

Unsupported

* Use theNonNegativeparameter withode15s,ode23t, andode23tbonly for those problems in which there is no mass matrix.

** The events function forode15imust accept a third input argument foryp.

Usage Examples

MATLAB includes several example files that show how to use various options. For example, typeedit ballodeto see an example that uses'Events'to specify an events function, oredit batonodeto see an example that uses'Mass'to specify a mass matrix. For a complete summary of example files and which options they use, seeSummary of ODE Examples and Files.

See Also

|

Related Topics