添加的内容 删除的内容
(修改自此处;原许可:CC BY-SA 3.0[网站升级迁移]) |
小 (noteTA|ja|jpn|-{|}-跳过, replaced: 為 → 为 (3), 種 → 种, 個 → 个, 資 → 资, 斷 → 断 (2), 階 → 阶, 當 → 当, 訊 → 讯, 組 → 组, 誤 → 误 (2)) |
||
第2行: | 第2行: | ||
== 四阶Runge-Kutta法 == |
== 四阶Runge-Kutta法 == |
||
在各 |
在各种Runge-Kutta法当中有一个方法十分常用,以至于经常被称为“RK4”或者就是“Runge-Kutta法”。该方法主要是在已知方程导数和初始值资讯,利用计算机仿真时应用,省去求解微分方程的复杂过程。 |
||
令[[初值问题]]表述如下。 |
令[[初值问题]]表述如下。 |
||
第71行: | 第71行: | ||
Runge-Kutta法是自洽的,如果 |
Runge-Kutta法是自洽的,如果 |
||
:<math>\sum_{j=1}^{i-1} a_{ij} = c_i\ \mathrm{for}\ i=2, \ldots, s.</math> |
:<math>\sum_{j=1}^{i-1} a_{ij} = c_i\ \mathrm{for}\ i=2, \ldots, s.</math> |
||
如果要求方法的精度 |
如果要求方法的精度为''p''阶,即截断误差为O(''h''<sup>''p''+1</sup>)的,则还有相应的条件。这些可以从截断误差本身的定义中导出。例如,一个2级2阶方法要求''b''<sub>1</sub> + ''b''<sub>2</sub> = 1, ''b''<sub>2</sub>''c''<sub>2</sub> = 1/2, 以及''b''<sub>2</sub>''a''<sub>21</sub> = 1/2。 |
||
=== 例子 === |
=== 例子 === |
||
第91行: | 第91行: | ||
|} |
|} |
||
然而,最简单的Runge-Kutta法是(更早发现的)[[欧拉方法]],其公式 |
然而,最简单的Runge-Kutta法是(更早发现的)[[欧拉方法]],其公式为<math> y_{n+1} = y_n + hf(t_n,y_n) </math>。这是唯一自洽的一级显式Runge-Kutta方法。相应的表为: |
||
{| cellpadding=3px cellspacing=0px |
{| cellpadding=3px cellspacing=0px |
||
第130行: | 第130行: | ||
</math> |
</math> |
||
需要注意的是,与显式Runge-Kutta方法不同,隐式Runge-Kutta方法在每一步的计算里需要求解一个线性方程 |
需要注意的是,与显式Runge-Kutta方法不同,隐式Runge-Kutta方法在每一步的计算里需要求解一个线性方程组,这相应的增加了计算的成本。 |
||
== 参考 == |
== 参考 == |