ddeset
创建或更改时滞微分方程 options 结构体
语法
options = ddeset('name1',value1,'name2',value2,...)
options = ddeset(oldopts,'name1',value1,...)
options = ddeset(oldopts,newopts)
ddeset
说明
options = ddeset('name1',value1,'name2',value2,...)
用于创建积分器 options 结构体 options
,其中给定的属性具有指定的值。任何未指定的属性都具有默认值。仅键入唯一标识属性的前导字符即可。ddeset
不区分属性名称的大小写。
options = ddeset(oldopts,'name1',value1,...)
更改现有 options 结构体 oldopts
。这会覆盖 oldopts
中使用名称/值对指定的所有值,并返回修改后的结构体作为输出参数。
options = ddeset(oldopts,newopts)
合并现有 options 结构体 oldopts
和新 options 结构体 newopts
。newopts
中设置的任何值将覆盖 oldopts
中的对应值。
ddeset
(不带输入参数)显示所有属性名称及其可能的值,并使用花括号 {}
指示默认值。
使用函数 ddeget
可以在 options
结构体中查询特定属性的值。
DDE 属性
以下各节将介绍可使用 ddeset
设置的属性。属性有多种类别:
误差控制属性
在每个步长中,DDE 求解器都会计算误差 e
。dde23
函数计算局部截断误差,另一个求解器计算残差。在任一情况下,此误差必须小于或等于可接受的误差,可接受的误差由指定的相对误差 RelTol
和指定的绝对误差 AbsTol
共同决定。
|e(i)|*max(RelTol*abs(y(i)),AbsTol(i))
对于常规问题,求解器提供的准确性与所需准确性大致相当。对于在“长”区间中求积分的问题和不稳定性适中的问题,ODE 求解器的准确性较低。复杂问题可能需要比默认值更严格的容差。对于相对准确性,请调整 RelTol
。对于绝对误差容限,解分量的标量非常重要:如果 |y|
略小于 AbsTol
,则求解器不受获取 y
中的任何正确数字的限制。您可能需要多次解算某个问题,以便发现解分量的标量。
总地说来,这意味着您希望 RelTol
更正所有解分量中的数字(但小于阈值 AbsTol(i)
的解分量除外)。当分量 y(i)
非常小时,即使您对此分量不感兴趣,您仍必须指定足够小的 AbsTol(i)
,以便获取 y(i)
中的某些正确数字,从而准确计算您更感兴趣的分量。
下表介绍了误差控制属性。
DDE 误差控制属性
属性 | 值 | 描述 |
---|---|---|
| 正标量 { | 适用于解向量 每个积分步长中的计算误差满足 | |
| 正标量或向量 { | 适用于解向量中各单个分量的绝对误差容限。 如果 |
|
| 根据解范数控制误差。将此属性设置为 |
求解器输出参数
可以使用求解器输出属性控制求解器生成的输出。
DDE 求解器输出属性
属性 | 值 | 描述 |
---|---|---|
| 函数句柄 { | 输出函数是求解器在每个成功积分步长后调用的函数。要指定输出函数,请将 options = ddeset('OutputFcn',... @myfun) 将 输出函数必须采用以下格式 status = myfun(t,y,flag) 参数化函数 解释了如何为 求解器调用具有下列标志的指定输出函数。请注意,调用语法不同于标志。函数必须适当响应:
您可以使用下列通用输出函数,也可以编辑这些函数以便创建您自己的输出函数。请在命令行中键入
|
| 索引向量 | 索引向量,用于指定求解器将解的哪些分量传递到输出函数。例如,如果要使用 options = ddeset... ('OutputFcn',@odeplot,... 'OutputSel',[1 3]); 默认情况下,求解器将解的所有分量传递给输出函数。 |
|
| 指定求解器是否应显示有关其计算的统计信息。默认情况下,
|
步长属性
步长属性可用于指定求解器尝试的第一个步长的大小,这可能有助于更好地确定问题的范畴。此外,您还可以指定后续时间步长的大小的边界。
下表介绍了步长属性。
DDE 步长属性
属性 | 值 | 描述 |
---|---|---|
| 正标量 | 建议的初始步长。 |
| 正标量 | 求解器步长的上限。如果微分方程具有周期性系数或解,最好将
|
事件位置属性
在有些 DDE 问题中,特定事件的时间非常重要。当解算问题时,求解器可以通过定位用户定义函数的零值之间的转换来检测此类事件。
下表介绍了 Events
属性。
DDE 事件属性
属性 | 值 | 描述 |
---|---|---|
| 函数句柄 | 包含一个或多个事件函数的函数句柄。对于 [value,isterminal,direction] = events(t,y,YDEL) 对于 [value,isterminal,direction] = events(t,y,YDEL,YPDEL) 输出参数
有关在求解常微分方程问题时使用事件函数的示例,请参阅 ODE 事件位置。 |
不连续性属性
求解器函数可以求解历史记录或方程系数中的不连续性问题。下列属性可让您为这些求解器提供不同的初始值,以及为 dde23
提供已知不连续的位置。有关详细信息,请参阅 DDE 中的不连续性。
下表介绍了不连续性属性。
DDE 不连续性属性
属性 | 值 | 描述 |
---|---|---|
| 向量 | 不连续位置。历史记录或解可能存在低阶导数跳跃不连续性的点 t。这只适用于 |
| 向量 | 解的初始值。默认情况下,解的初始值是 |
示例
要创建一个 options 结构体,以将求解器的相对误差容限从默认值 1e-3
更改为 1e-4
,请输入
options = ddeset('RelTol',1e-4);
要从 options
恢复 'RelTol'
的值,请输入
ddeget(options,'RelTol') ans = 1.0000e-004
扩展功能
版本历史记录
在 R2006a 之前推出