清华大学课程“数值分析”(No.20240033)
交互演示网站

<<主页

预测校正格式

本模块演示数值求解常微分方程(ordinary differential equation, ODE)初值问题的预测-校正(predictor-corrector)方法. 数值解法通过一步一步(step-by-step)的计算得到离散时间点上的函数近似值, 从而近似原问题的解函数. 在用预测-校正法求解的每一步, 先使用一种显格式方法提供下一时刻解的初始估计(称为"预测"), 然后使用一种更稳定和准确的隐格式方法来改进初始解(称为"校正"), 这包括使用不动点迭代法来求解隐式方程. 在实际应用时, 一般只执行固定次数的校正计算, 经常是一次(PECE格式), 但只有反复执行校正直到收敛才能完全实现隐式方法的稳定性和准确性. 本演示模块中的预测和校正方法都是线性多步法, 分别为Adams-Bashforth方法和Adams-Moulton方法, 这些方法利用前面多个节点的近似解来计算下一步的近似解.

用户首先从下拉菜单中选择一个微分方程(differential equation), 并选定一对预测和校正公式. 此时在绘图区中, 会有一个黑点标记出所选微分方程在初始时刻的解函数值, 同时绘出对应的初值问题的准确解曲线. 接着用户需选择在整个计算区间内的总步数. 除了一阶方法外, 本演示中所有方法都需要多个以前时刻点的解函数值, 因此需使用一些其他方法来生成足够多时间点上的解, 以便多步法可以执行. 在这里, 点击Initial Step按钮生成这些启动解, 它们的每一个都需要调用同阶的R-K方法来产生. 在绘图区演示了这些计算步, 并将结果记录于下面的表格中. 当生成了足够的启动值, Initial Step按钮变为无效状态, 此时可以用选定的预测-校正法开始计算.

在完成了必需的初始化过程后, 用户可以使用选定的预测-校正法一步一步地求解这个问题. 每一步又分为三个阶段, 每个阶段的执行通过用鼠标点击Next按钮或当前加亮显示的文字来触发:

  1. "预测": 使用预测公式提供下一时刻解的初始估计, 这在绘图区用红点表示.
  2. "校正": 允许用户通过点击Iterate按钮执行一次或多次校正计算, 绘图区中指示近似解的红点将相应地移动. 残差(residual), 即隐式方程等号左、右两边之差, 将显示出来作为收敛程度的度量. 在执行了想要的迭代次数后, 用户可点击"Correct"Next按钮, 这将使标记新解的点由红色变为黑色, 说明它的位置现在固定了.
  3. 当前步的计算通过点击"Take Step"Next按钮来完成, 这将使绘图区下方的表格中增加一行, 显示一个新的时刻点上解函数的近似值和准确值. 同时, 绘图区中通过这个新解的原微分方程的准确解曲线用灰色绘出.

参考内容: 课本第8.4.3小节的有关内容.