常微分方程龙格库塔方法.pptx
文本预览下载声明
8.2 Runge-Kutta 方法;8.2.1 Runge-Kutta方法的基本思想;这个方法并不实用,因为一般情况下,求 的导数相当麻烦。从计算高
阶导数的公式知道,方法的截断误差提高一阶,需要增加的计算量很大。但是
由此启发我们用区间上若干个点的导数 ,而不是高阶导数,将它们作线性
组合得到平均斜率,将其与解的Taylor展开相比较,使前面若干项吻合,从而
得到具有一定阶的方法。这就是Runge-Kutta方法的基本思想,其一般形式为;其中, 与 的区别在于:用微分方程准确解 代替 中的 就得
到 。参数 和 待定,确定它们的原则和方法是:将(8.2.2)式中
的 在 处作Taylor展开,将 在 处作二元Taylor展开,将展开式按H的幂次整理后,令 中h的低次幂的系数为零,使 首项中h的幂次尽量高,比如使 ,则称(8.2.1)式为L级p阶Runge-Kutta方法(简称R-K法)。 ;它与显式R-K公式的区别在于:显式公式中,对系数 求和的上限是 ,从
而 构成的矩阵是一个严格下三角阵。而在隐式公式中,对系数 求和的上
限是L,从而 构成的矩阵是方阵,需要用迭代法求出近似斜率
推导隐式公式的思路和方法与显式公式法类似。;8.2.2 几类显式Runge-Kutta方法
对于L=2,则; 将 中的各项作Taylor展开,并利用
则有;选取 和 ,使方法的阶尽可能高,就是使 h 和 的系数为零,因为
的系数一般不为零。于是得到方程组;取c=1得改进的Euler公式(8.1.6)。;对于L=4的情形,可进行类似推导。最常用的四级四阶方法是如下经典R-K方法; 为了分析经典R-K公式的计算量和计算精度,将四阶经典R-K公式(8.2.6)
与一阶显式Euler公式(8.1.2)及二阶改进的Euler公式相比较。一般说来,公
式的级数越大,计算右端项 f 的次数越多,计算量越大。在同样步长的情况
下,Euler方法每步只计算一个函数值,而经典方法要计算4个函数值。四阶R-
K法的计算量差不多是改进的Euler公式的2倍,是显式Euler公式的4倍。下面
的例子中Euler方法用步长 ,二阶改进的Euler法用步长 ,而四阶经典公
式用步长 。这样,从 到 三种方法都计算了4个函数制,计算
量大体相当。;其解析解为 。分别用h=0.025的显式Euler方法,h=0.05
改进Euler法和h=0.1的经典R-K方法计算到x=0.5。三种方法在x方
向每前进0.1都要计算4个右端函数值,计算量相当。计算结果列于
表8-3。从计算结果看,在工作量大致相同的情况下,还是经典方法
比其他两种方法的结果好得多。在x=0.5处,三种方法的误差分别是 。经典R-K法对多数好条件问
题( ,参见下节单步法的稳定性),能获得好的效果。;表 8-3;
在选择步长时,我们需要衡量和检验计算结果的精度,并依据所获得的精度
处理步长。下面以经典R-K方法为例进行说明。
从节点 出发,先以h为步长求出一个近似值 ,由于公式的局部截断
误差为 ,故有;比较上述二式,有;
具体地说,对于给定的精度 ,将按两种情况处理。如果 ,我
们反复将步长折半进行计算,直到 为止,这时取最终得到的 作
为结果。如果 ,我们反复将步长加倍,直到 为止,这时再将
前一次步长折半的结果作为所要的结果。这种通过加倍或折半处理步长的方法
称作变步长方法。虽然为了选择步长,每一步的计算量有所增加,但总体考虑
是值得的。
显示全部