解决ODES经常需要微调参数,调整误差公差,或将其他信息传递给求解器。本主题显示如何指定选项,以及每个选项的差分方程解兼容兼容。
使用odeset.
功能要创建一个选项结构,然后将其传递给求解器作为第四个输入参数。例如,要调整相对和绝对误差公差:
选择= odeset('Reltol',1e-2,'ABSTOL',1E-5);[t,y] = ode45(@ Odefun,Tspan,Y0,Opts);
如果您使用该命令odeset.
没有输入,然后matlab®显示每个选项的可能值的列表,默认值由卷曲括号指示{}
。
这少女
函数在现有结构中查询选项的值,您可以使用它根据条件动态更改选项值。例如,此代码检测是否统计
被设定为'在'
,并在必要时更改值:
如果isempty(odeget(选择,'统计'))odeset(选择,'统计'那'在')结尾
一些选择odeset.
是通用的,与任何求解器兼容,其他人是特定于求解器的。此表总结了每个选项与不同求解器的兼容性。
选项 | ODE45. |
ode23. |
ode113. |
ode15s. |
ode23s. |
ODE23T. |
ODE23TB. |
ode15i. |
---|---|---|---|---|---|---|---|---|
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓* |
- |
✓* |
✓* |
- |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓** |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
- |
- |
- |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
- |
|
- |
- |
- |
✓ |
- |
✓ |
- |
- |
|
- |
- |
- |
✓ |
- |
- |
- |
✓ |
* 使用非负面
参数ode15s.
那ODE23T.
, 和ODE23TB.
仅针对那些没有大规模矩阵的问题。
**事件函数ode15i.
必须接受第三个输入参数yp.
。
MATLAB包括若干示例文件,展示了如何使用各种选项。例如,类型编辑鲍特
查看使用的示例'事件'
指定事件函数,或编辑Batonode.
查看使用的示例'大量的'
指定质量矩阵。有关示例文件的完整摘要以及他们使用的选项,请参阅颂歌示例和文件摘要。