龙格—库塔法:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(修改自此处;原许可:CC BY-SA 3.0[网站升级迁移])
 
(noteTA|ja|jpn|-{|}-跳过, replaced: 為 → 为 (3), 種 → 种, 個 → 个, 資 → 资, 斷 → 断 (2), 階 → 阶, 當 → 当, 訊 → 讯, 組 → 组, 誤 → 误 (2))
第2行: 第2行:


== 四阶Runge-Kutta法 ==
== 四阶Runge-Kutta法 ==
在各Runge-Kutta法中有一方法十分常用,以至于经常被称为“RK4”或者就是“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。
如果要求方法的精度''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法是(更早发现的)[[欧拉方法]],其公式<math> y_{n+1} = y_n + hf(t_n,y_n) </math>。这是唯一自洽的一级显式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方法在每一步的计算里需要求解一个线性方程,这相应的增加了计算的成本。


== 参考 ==
== 参考 ==