NDSolve 中的FixedStep方法

引言

在数值积分中定步长使用固往往很有用.

例如:"DoubleStep"(步长加倍法)和 "Extrapolation"(外插法)都分别先做一系列定步长积分,然后将计算结果加以处理以得到更精确的,能够通过误差估计而采取自适应步长的方法.

"FixedStep" 定步长方法允许用定步长格式调用任何单步积分.

以下是装载样本问题和功用函数程序包.

示例

定义一个例题:
以下是使用 "ExplicitEuler" 方法以固定步长 1/10 求解一个微分方程 :
事实上,"ExplicitEuler" 方法中并没有自适应步长的功能,所以数值积分已经用了定步长计算的结果,因此,指定 "FixedStep" 是不必要的:
下图给出该问题用 "ExplicitRungeKutta"(显格式龙格-库塔)计算时,步长的选取情况:
这指定在 "ExplicitRungeKutta"(显格式龙格-库塔)方法中,应使用定步长:

选项 MaxStepFraction 给定了取决于积分区间的步长的绝对上界值.

因为 MaxStepFraction 的默认值是 1/10,本例中步长的上限值是积分区间的 1/10,所以定步长值是 1/20:
通过更改 MaxStepFraction 的值,步长的选取受积分区间大小的影响可减少,或者根本不受其影响:

选项总结

选项名称
缺省值
MethodNone指明使用定步长的方法

"FixedStep" 方法的选项