当前课程知识点:计算方法 > 第10章 常微分方程初值问题的数值解法 > 10.4 高阶单步方法 > 10.4 高阶单步方法
同学们 大家好
前面我们学习了
初值问题的概念
简单单步法
单步法的误差与稳定性
今天我们接着讲高阶单步法
先看泰勒方法
假定f(X)充分光滑
Y(X) 在 [A, B]上
有直到 p+1 阶的连续导数
由 p 阶泰勒公式
我们可以得到这样一个展开式
(4.1)
公式中的Yk
可以用Y'= f(X,Y)
按如下方式来计算
这样就可以得到
一个局部截断误差阶是O(h^(p+1))
的单步方法
(4.2)
其中Y^(r)=
[f(x,y(x))]
整体的r-1阶导数
上式只有当f的表达式比较简单时
才有实际价值
我们先看龙格库塔方法
回忆我们曾经将改进的欧拉公式
写成什么形式
写成了这样一种形式
这种形式好处在哪呢
它是先计算K1计算一次函数值
K2又计算一次函数值
然后用 K1+K2 这么一种组合
就得到了下一步的值
那么
受这种思想的启发
其优点就是计算f(X,Y)的值
局部截断误差的阶O(h^(3))
比较欧拉方法截断误差高一阶
那么
受这种方法的启发
我们在期间Xn到Xn+1上
并 f(X,Y)
在这些点上的函数值的线性组合
来表示Yn+1
那么我们就得到这样一个表达式
我们想象着
这个可以提高局部
截断误差的阶
区间结点中的函数值我们是未知的
由改进的欧拉方法知
这个函数值
Y(Xn)
可由Yn
及K1=f(Xn,Yn)来做预报
那么我们
也就是Y(Xn+1)可以用Yn
+h*K1 来代替
设
K1=f(Xn,Yn)
kj等于这样一个组合
Yn+1=Yn+h*
j得1到P αjkj
我们把这个称为
p阶显式
Rungc-Kutta方法
简称R-K方法
其中αj
其中βj
λj
bjL为待定参数
我们先介绍二阶龙格库塔方法
当p=2的情况
那么我们有如下形式
现在看如何确定这些系数
记 Φ(X,Y,h)
等于
α1*k1+α2*k2
那么就等于这个表达式
这一部分第一式
可以写成这样一种形式
那么将(4.6)中的
右端
也就是在这一端
在Xn处作泰勒展开
可以得到这样一个表达式
我们在看
Y(Xn+1)可以写成这样一种形式
我们把它展开
一个表达式
我们比较这两式
看h方幂的系数
注意到Yn等于Y(Xn)
当
α1+α2 大家看α1
是h的一次方 α2
这也是h的一次方
那么在这儿呢
这个fXn
Yn是h的一次方
那么比较就有
α1+α2=1
还有λ2*
α2=1/2
b21*
α2=1/2
那么就得到这样一个方程
这个方程有
这是三个方程
有四个未知数
那么当这个条件成立的时候
我们就有Tn+1
等于O(h^(3))
是二阶方法
方程(4.8)中有三个方程
四个未知量
解也不是唯一的
其中有一个自由未知量
这个称为二级
二阶显式的R-K公式
二级是指调用两次函数
二阶是精度是O(h^(p+1)次方
局部截断误差的阶
当取 λ2=1
可以求出α1=α2=1/2
b21=1
就得到改进的欧拉公式
当取λ2=1/2
α2=α1=0
b21=1/2
可以得到变形的欧拉公式
那么就是说
这四个未知量中
任何一个值就可以得到
其它三个值
都可以得到一个
二级二阶的方法
那么我们看四级四阶R-K公式
在p级R-K方法中
最常用的是标准的
也称为经典的四级
四阶龙格库塔方法
那么
(4.10)
这是调用了四次函数
K1,K2,K3,K4调用了四次函数
最后它的误差的阶
是四阶
有的教材还
写成另外一种形式
这是等价形式
同学们可以换算一下
局部截断误差
是
Tn+1=O(h^(5))次方
同学们可以自己验算
下表给出了
用龙格库塔方法计算f值的次数
与方法阶之间的关系
看这是计算f的次数
这是方法的最高阶数
在龙格库塔方法中
当计算四次的时候
它的阶是四次
当在计算这五次的时候
阶还是4次
所以我们一般的记
用四级四阶龙格库塔方法就很好了
这是非常常用的
它的算法
我们在这丛略
我们在这从略
下面看例题
用经典的龙格库塔方法
计算初值问题
这是我们前边算过
取H的零点一
计算到X等于0.5
并和改进的欧拉方法比较
这是我们计算的结果
大家看这是用经典的龙格库塔方法
大家看这是用经典的龙格库塔方法
计算出的近似值
这是结点
然后这是误差
改进的欧拉方法计算的近似值
这是误差
那么我们看这个龙格库塔方法
这走到10的负六次方
而改进的欧拉方法
那么
它的精度就
到10的负三次方
所以经典的龙格库塔方法精度
要比改进的欧拉方法
要高
从表中可以看出
用欧拉方法改进的欧拉方法
经典的
龙格库塔方法
采用相同的步长计算
同一初值问题
经典的龙格库塔方法最好
改进的欧拉方法次之
那么最后就是
龙格欧拉方法误差最高
小结这节课我们
主要介绍了高阶单步法
讲了泰勒方法
龙格库塔方法
二级二阶龙格库塔法
和4级4阶龙格库塔方法
练习就留给大家
-1.1 引言
--1.1 引言
-1.2 算法与效率
-1.3 计算机数系与浮点运算
-1.4 误差与有效数字
-1.5 四则运算与函数求值的误差
-1.6 问题的性态与条件数
-1.7 算法数值稳定性
-第1章 作业
--第一章 作业
-2.1 引言 2.2 线性空间
-2.3 内积空间与元素的夹角
-2.4 赋范线性空间
-2.5 向量范数与向量序列极限
-2.6 矩阵范数
--2.6 矩阵范数
-第二章 作业
--第二章 作业
-3.1 引言
--3.1 引言
-3.3 不动点迭代法
--3.2 二分法
-3.4 不动点迭代法的收敛条件
-3.5 牛顿迭代法及其变形
-3.6 迭代法收敛阶
-3.7 重根的计算与加速收敛
-3.8 数值实验
--3.8 数值实验
-第3章 作业
--第3章 作业
-4.1 引言
--4.1 引言
-4.2 Lagrange插值
-4.3 Lagrange插值余项
-4.4 Newton差商插值
-4.5 Hermite插值
-4.6 分段多项式插值
-4.7 三次样条插值
-4.8 数值实验
--4.8 数值实验
-第4章 作业
--第4章 作业
-5.1 函数逼近与曲线拟合基本概念
-5.2 连续函数的最佳平方逼近
-5.3 曲线拟合的最小二乘法
-第5章 作业
--第5章 作业
-6.1 引言 6.2 高斯消元法
-6.3 矩阵分解与应用
-6.4 误差分析 6.5 数值实验
-第6章 作业
--第6章 作业
-7.1 引言 7.2 线性方程组的迭代法(上)
-7.2 线性方程组的迭代法
-7.3 非线性方程组的迭代法
-7.4 数值实验
--7.4 数值实验
-第7章 作业
--第7章 作业
-8.1 引言
--8.1 引言
-8.2 幂法与反幂法
-8.3 矩阵的正交分解
-8.4 QR方法
--8.4 QR方法
-8.5 Jacobi方法
-第8章 作业
--第8章 作业
-9.1 引言
-9.2 牛顿-柯特斯公式
-9.3 复合牛顿-柯特斯公式
-9.4 龙贝格算法
-9.5 高斯型求积公式
-9.6 数值微分
--9.6 数值微分
-10.1 引言
--10.1 引言
-10.2 梯形公式和改进的欧拉方法
-10.3 单步法的误差与稳定性收敛性
-10.4 高阶单步方法
-10.5 线性多步法
-10.6 多步法的误差与稳定性
-10.7 一阶微分方程组与高阶微分方程
-第10章 作业
--第10章 作业