数值分析第九章PPT
合集下载
研究生数值分析(9)矩阵的条件数与病态线性方程组
1
X A 1 b 即 X A b 于是有
③
另一方面,由①得
b A X
且 X 0
故
A 1 X b
④
由③与④有
X
X
A
1
A
b
b
⑤
表明解的相对误差不超过右端向量b
的相对误差的 A1 A 倍。
(2)仅有小扰动δ A(设 A+ δ A 仍可逆) ~ 的解为 X X X 设方程组 ( A A) X b 即
1 1 A 1 1.0001
10001 10000 A 10000 10000
1
及其逆矩阵
在行模意义下的条件数
Cond ( A) A1
A 20001 2.0001 40004
因此称方程组 x1 x2 2 x1 1.0001x2 2 为病态方程组。
x1 0.9999 x2 1.9999
②
的解为
x1 1; x2 1
它们的解变化很大,这样的方程组称为“病态”
方程组。 下面,我们给出方程组“病态”,“良态”
概念及其衡量标准,并介绍判断近似解可靠性方
法。
1 矩阵的条件数与线性方程组的性态 由于方程组AX=b系数矩阵A与右端向量b 的初始数据微小变化引起解的很大变化,这样
§3 矩阵的条件数与病态线性方程组
判断计算方法的好坏,可用算法是否稳定、 解的精确程度以及计算量、存储量的大小来衡量。 然而,同一方法用于不同问题,效果却可以相差 很远。 例如 方程组
x1 x2 2 x1 1.0001x2 2
x1 2; x2 0
①
解为
X A 1 b 即 X A b 于是有
③
另一方面,由①得
b A X
且 X 0
故
A 1 X b
④
由③与④有
X
X
A
1
A
b
b
⑤
表明解的相对误差不超过右端向量b
的相对误差的 A1 A 倍。
(2)仅有小扰动δ A(设 A+ δ A 仍可逆) ~ 的解为 X X X 设方程组 ( A A) X b 即
1 1 A 1 1.0001
10001 10000 A 10000 10000
1
及其逆矩阵
在行模意义下的条件数
Cond ( A) A1
A 20001 2.0001 40004
因此称方程组 x1 x2 2 x1 1.0001x2 2 为病态方程组。
x1 0.9999 x2 1.9999
②
的解为
x1 1; x2 1
它们的解变化很大,这样的方程组称为“病态”
方程组。 下面,我们给出方程组“病态”,“良态”
概念及其衡量标准,并介绍判断近似解可靠性方
法。
1 矩阵的条件数与线性方程组的性态 由于方程组AX=b系数矩阵A与右端向量b 的初始数据微小变化引起解的很大变化,这样
§3 矩阵的条件数与病态线性方程组
判断计算方法的好坏,可用算法是否稳定、 解的精确程度以及计算量、存储量的大小来衡量。 然而,同一方法用于不同问题,效果却可以相差 很远。 例如 方程组
x1 x2 2 x1 1.0001x2 2
x1 2; x2 0
①
解为
第九章 常微方程数值解法
第9章 常微分方程数值解法 8-2
第8章 序
许多科学技术问题,例如天文学中的星体运动, 许多科学技术问题,例如天文学中的星体运动,空间 技术中的物体飞行,自动控制中的系统分析, 技术中的物体飞行,自动控制中的系统分析,力学中的振 动,工程问题中的电路分析等,都可归结为常微分方程的 工程问题中的电路分析等, 初值问题。 初值问题。 所谓初值问题, 所谓初值问题,是函数及其必要的导数在积分的起始 点为已知的一类问题,一般形式为: 点为已知的一类问题,一般形式为:
⇒ y n +1 = y n −1 + 2hf ( xn , y n )
第9章 常微分方程数值解法
(8 - 4)
8-10
Euler公式的推导( Euler公式的推导(续5) 公式的推导
上对y )=f 四、利用数值积分公式:在[xn,xn+1]上对y′(x)=f (x,y(x)) 积分 利用数值积分公式:
x0 < x1 < L < xn < L
(i=1,2,…,n)构造插值函数作为近似函数。上述离散点 i=1,2,…,n)构造插值函数作为近似函数。 相 邻两点间的距离h 称为步长, 邻两点间的距离hi=xi-1-xi 称为步长,若hi 都相等为一定数 h, 则称为定步长,否则为变步长。( x, y ( x)) 则称为定步长,否则为变步长。 a≤ x≤b y ′( x) = f 本章重点讨论如下 y (a ) = y0 一阶微分方程: 一阶微分方程: 在此基础上介绍一阶微分方程组与 8-5 第9章 常微分方程数值解法 高阶微分方程的数值解法。 高阶微分方程的数值解法。
⇒ yn +1 = yn + hf ( xn , yn ) + E ( xn , h) ⇒ yn +1 = yn + hf ( xn , yn )
第8章 序
许多科学技术问题,例如天文学中的星体运动, 许多科学技术问题,例如天文学中的星体运动,空间 技术中的物体飞行,自动控制中的系统分析, 技术中的物体飞行,自动控制中的系统分析,力学中的振 动,工程问题中的电路分析等,都可归结为常微分方程的 工程问题中的电路分析等, 初值问题。 初值问题。 所谓初值问题, 所谓初值问题,是函数及其必要的导数在积分的起始 点为已知的一类问题,一般形式为: 点为已知的一类问题,一般形式为:
⇒ y n +1 = y n −1 + 2hf ( xn , y n )
第9章 常微分方程数值解法
(8 - 4)
8-10
Euler公式的推导( Euler公式的推导(续5) 公式的推导
上对y )=f 四、利用数值积分公式:在[xn,xn+1]上对y′(x)=f (x,y(x)) 积分 利用数值积分公式:
x0 < x1 < L < xn < L
(i=1,2,…,n)构造插值函数作为近似函数。上述离散点 i=1,2,…,n)构造插值函数作为近似函数。 相 邻两点间的距离h 称为步长, 邻两点间的距离hi=xi-1-xi 称为步长,若hi 都相等为一定数 h, 则称为定步长,否则为变步长。( x, y ( x)) 则称为定步长,否则为变步长。 a≤ x≤b y ′( x) = f 本章重点讨论如下 y (a ) = y0 一阶微分方程: 一阶微分方程: 在此基础上介绍一阶微分方程组与 8-5 第9章 常微分方程数值解法 高阶微分方程的数值解法。 高阶微分方程的数值解法。
⇒ yn +1 = yn + hf ( xn , yn ) + E ( xn , h) ⇒ yn +1 = yn + hf ( xn , yn )
数值分析9-2
0.45 方程真解: y( x ) (1 2 x )
n 0 1 2 3
xn 0 0.02 0.04 0.06
yn 1.0000 0.9820 0.9650 0.9489
y(xn) 1.0000 0.9825 0.9660 0.9503
n = y(xn) - yn
0 0.0005 0.0005 0.0014
1.483240 1.549193 1.612452 1.673320 1.732051
10 1
9.2.4. 单步法的局部截断误差与阶
显式单步法一般形式为 yn 1 yn h ( xn , yn , h) 而隐式单步法一般形式为 yn 1 yn h ( xn , yn , xn 1 , yn 1 , h) 函数与f ( x, y )有关,称为增量函数。
f ( x, y ) , x [ a , b ] dx y ( a ) y0 为了使解存在唯一,一般,要加限制条件在f上,要求f对y 满足Lipschitz条件:
f ( x, y1 ) f ( x, y2 ) L y1 y2
常微分方程的解是一个函数,但是,计算机没有办法对函 数进行运算。因此,常微分方程的数值解并不是求函数的近似, 而是求解函数在某些节点的近似值。 要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值 yi y( xi ) ( i 1, ... , n)
为了考察数值方法提供的数值解,是否有实用价值, 需要知道如下几个结论: ① 步长充分小时,所得到的数值解能否逼近问题的 真解;即收敛性问题 ② 误差估计
③产生得舍入误差,在以后得各步计算中,是否 会无限制扩大;稳定性问题
n 0 1 2 3
xn 0 0.02 0.04 0.06
yn 1.0000 0.9820 0.9650 0.9489
y(xn) 1.0000 0.9825 0.9660 0.9503
n = y(xn) - yn
0 0.0005 0.0005 0.0014
1.483240 1.549193 1.612452 1.673320 1.732051
10 1
9.2.4. 单步法的局部截断误差与阶
显式单步法一般形式为 yn 1 yn h ( xn , yn , h) 而隐式单步法一般形式为 yn 1 yn h ( xn , yn , xn 1 , yn 1 , h) 函数与f ( x, y )有关,称为增量函数。
f ( x, y ) , x [ a , b ] dx y ( a ) y0 为了使解存在唯一,一般,要加限制条件在f上,要求f对y 满足Lipschitz条件:
f ( x, y1 ) f ( x, y2 ) L y1 y2
常微分方程的解是一个函数,但是,计算机没有办法对函 数进行运算。因此,常微分方程的数值解并不是求函数的近似, 而是求解函数在某些节点的近似值。 要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值 yi y( xi ) ( i 1, ... , n)
为了考察数值方法提供的数值解,是否有实用价值, 需要知道如下几个结论: ① 步长充分小时,所得到的数值解能否逼近问题的 真解;即收敛性问题 ② 误差估计
③产生得舍入误差,在以后得各步计算中,是否 会无限制扩大;稳定性问题
数值分析课件第9章
同法解得
y(0.4) y2 2.020118, y(0.8) y4 2.8565830,
y(0.6) y3 2.451578 y(1.0) y5 3.243224
工科研究生公共课程数学系列
机动 上页 下页 首页 结束
4、单步法的局部截断误差与阶
单步法的一般表示形式
yn1 yn h(xn , yn , yn1, h) 其中与f (x, y)有关,称为增量函数,当含有yn1时,方法是隐式的,
f
( xn
ih,
y( xn
ih))
或表示为 yn1 yn h(xn , yn , h)
其中
r
(xn, yn, h) ci Ki i 1
K1 f (xn , yn )
i 1
Ki f (xn ih, yn h ij K j ) j 1
这里ci , i , ij均为常数。称为r级显式龙格 - 库塔(Runge Kutta)法,
简称R - K方法。
工科研究生公共课程数学系列
机动 上页 下页 首页 结束
2、二阶显式R-K方法
r 2 的R - K方法, 计算公式如下 :
yn1 yn h(c1K1 c2K2 ) K1 f (xn , yn )
K2 f (xn 2h, yn 21hK1)
这里c1, c2 , 2 , 21均为待定常数。
上的近似值 y1, y2 , , yn , yn1, 。相邻两节点间的间距 hn xn1 xn称为步长。假定hi h为定数,这时节点 为xn x0 nh, n 0,1, 2,
初值问题数值解法的基本特点:它们都采用 “步进式”,即求解 过程顺着节点排列的次序一步一步地向前推进。描述这类算法, 只要给出已知信息yn , yn-1, yn-2, 计算yn1的递推公式。
《数值分析》李庆杨,第五版第9章课件
n
9 表 −1
xn
yn 1.5090 1.5803 1.6498 1.7178
yn+1 = yn + h( yn −
0.2 0.3 1.2774
0.1 1.1000 2xn 0.6 1.1918 yn
).
0.7 0.8 0.9
取步长 h = 0.1,计算结果见表9-1.
0.4 1.3582
0.5 1.4351 1. ,按这个解析式 初值问题(2.2)的解为 y = 1+ 2x0 1.7848
∂f (x,ξ ) y(x, y1) − y(x, y2 ) ≤ y1 − y2 , ξ在 1, y2之 . y 间 ∂y
若假定 ∂f (x, y) 在域 D 内有界,设 ∂f (x, y) ≤ L,则
∂y
∂y
y(x, y1) − y(x, y2 ) ≤ L y1 − y2 .
4
它表明 f 满足利普希茨条件,且 L 的大小反映了右端函 数 f 关于 y变化的快慢,刻画了初值问题(1.1)和(1.2)式是否 是好条件. 求解常微分方程的解析方法只能用来求解一些特殊类 型的方程,实际中归结出来的微分方程主要靠数值解法.
yn+1 = yn + hf (xn+1, yn+1),
(2.5)
称为后退的欧拉法 后退的欧拉法. 后退的欧拉法 它也可以通过利用均差近似导数 y′(xn+1) ,即
y(xn+1) − y(xn ) ≈ y′(xn+1) = f (xn+1, y(xn+1)) xn+1 − xn
直接得到.
16
欧拉公式是关于 yn+1 的一个直接的计算公式,这类公 式称作是显式的 显式的; 显式的 后退欧拉公式的右端含有未知的 yn+1,它是关于 yn+1 的一个函数方程,这类公式称作是隐式的 隐式的. 隐式的
9 表 −1
xn
yn 1.5090 1.5803 1.6498 1.7178
yn+1 = yn + h( yn −
0.2 0.3 1.2774
0.1 1.1000 2xn 0.6 1.1918 yn
).
0.7 0.8 0.9
取步长 h = 0.1,计算结果见表9-1.
0.4 1.3582
0.5 1.4351 1. ,按这个解析式 初值问题(2.2)的解为 y = 1+ 2x0 1.7848
∂f (x,ξ ) y(x, y1) − y(x, y2 ) ≤ y1 − y2 , ξ在 1, y2之 . y 间 ∂y
若假定 ∂f (x, y) 在域 D 内有界,设 ∂f (x, y) ≤ L,则
∂y
∂y
y(x, y1) − y(x, y2 ) ≤ L y1 − y2 .
4
它表明 f 满足利普希茨条件,且 L 的大小反映了右端函 数 f 关于 y变化的快慢,刻画了初值问题(1.1)和(1.2)式是否 是好条件. 求解常微分方程的解析方法只能用来求解一些特殊类 型的方程,实际中归结出来的微分方程主要靠数值解法.
yn+1 = yn + hf (xn+1, yn+1),
(2.5)
称为后退的欧拉法 后退的欧拉法. 后退的欧拉法 它也可以通过利用均差近似导数 y′(xn+1) ,即
y(xn+1) − y(xn ) ≈ y′(xn+1) = f (xn+1, y(xn+1)) xn+1 − xn
直接得到.
16
欧拉公式是关于 yn+1 的一个直接的计算公式,这类公 式称作是显式的 显式的; 显式的 后退欧拉公式的右端含有未知的 yn+1,它是关于 yn+1 的一个函数方程,这类公式称作是隐式的 隐式的. 隐式的
数值分析 第9章 常微分方程初值问题数值解法
9 .2 .2 梯形方法/* trapezoid formula */— 显、隐式两种算法的平均 为得到比欧拉法精度高的计算公式, 在等式( 2.4) 右端积分 中若用梯形求积公式近似, 并用yn 代替y ( xn ) , yn+1 代替y ( xn+1 ) ,则得
h yn 1 yn [ f ( xn , yn ) f ( xn 1 , yn 1 )], 2
yn 1 yn f ( xn , yn ), xn 1 xn
即 yn+1 = yn + hf ( xn , yn ) . ( 2 .1)
这就是著名的欧拉( Euler ) 公式.
• 若初值y0 已知, 则依公式( 2.1)可逐步算出
• y1 = y0 + hf ( x0 , y0 ) ,
为了分析迭代过程的收敛性, 将( 2. 7) 式与(2. 8 )式相减, 得
h ( k 1) (k ) yn 1 yn [ f ( x , y ) f ( x , y 1 n 1 n 1 n 1 n 1 )] 2
于是有
| yn 1 y
( k 1) n 1
hL (k ) | | yn 1 yn 1 |, 2
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 |, y1, y2 R,
定理1 设f在区域D={(x,y)|a≤x ≤b,y∈R}上连续, 关于y满足利普希茨条件,则对任意x0 ∈[a,b], y0 ∈R,常微分方程初值问题(1.1)式和(1.2)式当x ∈[a,b]时存在唯一的连续可微解y(x). 定理2 设f在区域D上连续,且关于y满足利 普希茨条件,设初值问题
1 2 1 2 dy x ydy xdx y x c 2 2 dx y y (0) 2 y2 x2 4
第9章 常微分方程初值问题数值解法
2
数值分析
第9章 常微分方程初值问题数值解法
《常微分方程》中介绍的微分方程主要有:
(1)变量可分离的方程 (2)一阶线性微分方程(贝努利方程) (3)可降阶的一类高阶方程 (4)二阶常系数齐次微分方程 (5)二阶常系数非齐次微分方程 (6)全微分方程 本章主要介绍一阶常微分方程初值问题的数值解法。
进一步: 令
y n1 y n
xn 1 xn
y n 1 y( x n 1 ) , y n y( x n )
f ( x , y( x ))dx h f ( x n , y n )
宽
9
高
实际上是矩形法
数值分析
第9章 常微分方程初值问题数值解法
(3)
用Taylor多项式近似并可估计误差
解决方法:有的可化为显格式,但有的不行 18
数值分析
第9章 常微分方程初值问题数值解法
与Euler法结合,形成迭代算法 ,对n 0,2, 1,
( yn0 )1 yn hf x n , yn ( k 1) h ( yn1 yn f x n , yn f x n1 , ynk )1 2
7
数值分析
第9章 常微分方程初值问题数值解法
建立数值解法的常用方法
建立微分方程数值解法,首先要将微分方程离散 化. 一般采用以下几种方法: (1) 用差商近似导数
dy yx yx x x dx x y
n 1 n n 1 n
n
,
n
进一步: 令
yn1 y( xn1 ) , yn y( xn )
由 x0 , y0 出发取解曲线 y y x 的切线(存在!),则斜率
数值分析
第9章 常微分方程初值问题数值解法
《常微分方程》中介绍的微分方程主要有:
(1)变量可分离的方程 (2)一阶线性微分方程(贝努利方程) (3)可降阶的一类高阶方程 (4)二阶常系数齐次微分方程 (5)二阶常系数非齐次微分方程 (6)全微分方程 本章主要介绍一阶常微分方程初值问题的数值解法。
进一步: 令
y n1 y n
xn 1 xn
y n 1 y( x n 1 ) , y n y( x n )
f ( x , y( x ))dx h f ( x n , y n )
宽
9
高
实际上是矩形法
数值分析
第9章 常微分方程初值问题数值解法
(3)
用Taylor多项式近似并可估计误差
解决方法:有的可化为显格式,但有的不行 18
数值分析
第9章 常微分方程初值问题数值解法
与Euler法结合,形成迭代算法 ,对n 0,2, 1,
( yn0 )1 yn hf x n , yn ( k 1) h ( yn1 yn f x n , yn f x n1 , ynk )1 2
7
数值分析
第9章 常微分方程初值问题数值解法
建立数值解法的常用方法
建立微分方程数值解法,首先要将微分方程离散 化. 一般采用以下几种方法: (1) 用差商近似导数
dy yx yx x x dx x y
n 1 n n 1 n
n
,
n
进一步: 令
yn1 y( xn1 ) , yn y( xn )
由 x0 , y0 出发取解曲线 y y x 的切线(存在!),则斜率
《数值分析教程》课件
总结词
一种适用于大规模计算的数值方法
详细描述
谱方法适用于大规模计算,通过将问题分解为较小的子问 题并利用多线程或分布式计算等技术进行并行计算,可以 有效地处理大规模的计算任务。
感谢您的观看
THANKS
具有简单、稳定和可靠的优点。
05
数值积分与微分
牛顿-莱布尼兹公式
要点一
总结词
牛顿-莱布尼兹公式是数值积分中的基本公式,用于计算定 积分。
要点二
详细描述
牛顿-莱布尼兹公式基于定积分的定义,通过选取一系列小 区间上的近似值,将定积分转化为一系列小矩形面积之和 ,从而实现了数值积分。
复化求积公式
总结词
算机实现各种算法,为各个领域的科学研究和技术开发提供了强有力的支持。
数值分析的应用领域
总结词
数值分析的应用领域非常广泛,包括科学计算、工程 、经济、金融、生物医学等。
详细描述
数值分析的应用领域非常广泛,几乎涵盖了所有的科学 和工程领域。在科学计算方面,数值分析用于模拟和预 测各种自然现象,如气候变化、生态系统和地球科学等 。在工程领域,数值分析用于解决各种复杂的工程问题 ,如航空航天、机械、土木和电子工程等。在经济和金 融领域,数值分析用于进行统计分析、预测和优化等。 在生物医学领域,数值分析用于图像处理、疾病诊断和 治疗等。总之,数值分析已经成为各个领域中不可或缺 的重要工具。
03
线性方程组的数值解法
高斯消去法
总结词
高斯消去法是一种直接求解线性方程组的方法,通过一系列 行变换将系数矩阵变为上三角矩阵,然后求解上三角方程组 得到解。
详细描述
高斯消去法的基本思想是将系数矩阵通过行变换化为上三角 矩阵,然后通过回带求解得到方程组的解。该方法具有较高 的稳定性和精度,适用于中小规模线性方程组的求解。
一种适用于大规模计算的数值方法
详细描述
谱方法适用于大规模计算,通过将问题分解为较小的子问 题并利用多线程或分布式计算等技术进行并行计算,可以 有效地处理大规模的计算任务。
感谢您的观看
THANKS
具有简单、稳定和可靠的优点。
05
数值积分与微分
牛顿-莱布尼兹公式
要点一
总结词
牛顿-莱布尼兹公式是数值积分中的基本公式,用于计算定 积分。
要点二
详细描述
牛顿-莱布尼兹公式基于定积分的定义,通过选取一系列小 区间上的近似值,将定积分转化为一系列小矩形面积之和 ,从而实现了数值积分。
复化求积公式
总结词
算机实现各种算法,为各个领域的科学研究和技术开发提供了强有力的支持。
数值分析的应用领域
总结词
数值分析的应用领域非常广泛,包括科学计算、工程 、经济、金融、生物医学等。
详细描述
数值分析的应用领域非常广泛,几乎涵盖了所有的科学 和工程领域。在科学计算方面,数值分析用于模拟和预 测各种自然现象,如气候变化、生态系统和地球科学等 。在工程领域,数值分析用于解决各种复杂的工程问题 ,如航空航天、机械、土木和电子工程等。在经济和金 融领域,数值分析用于进行统计分析、预测和优化等。 在生物医学领域,数值分析用于图像处理、疾病诊断和 治疗等。总之,数值分析已经成为各个领域中不可或缺 的重要工具。
03
线性方程组的数值解法
高斯消去法
总结词
高斯消去法是一种直接求解线性方程组的方法,通过一系列 行变换将系数矩阵变为上三角矩阵,然后求解上三角方程组 得到解。
详细描述
高斯消去法的基本思想是将系数矩阵通过行变换化为上三角 矩阵,然后通过回带求解得到方程组的解。该方法具有较高 的稳定性和精度,适用于中小规模线性方程组的求解。
第9章 常微分方程初值问题数值解法
oa
b
a f ( x)dx (b a) f (b)
中矩形公式
b
ab
a f ( x)dx (b a) f ( 2 )
计算方法
梯形公式
bx
右矩形公式 中矩形公式 左矩形公式
§ 欧拉方法几何意义
y y y(x)
y0 y1 y2 0 x0 x1 x2
计算方法
x
§ 隐式欧拉方法
➢隐式欧拉法 /* implicit Euler method */
初 值 问 题 的 解 必 存 在 且唯 一 。
计算方法
§9.1 引言
三. 数值解法含义
所谓数值解法, 就是设法将常微分方程离散化, 建 立差分方程, 给出解在一些离散点上的近似值。
微分方程的数值解: 设方程问题的解y(x)的存在区 间是[a,b], 令a= x0< x1<…< xn =b, 其中hk=xk+1-xk, 如是等距节点h=(b-a)/n, h称为步长。
yi1 yi1 2h f ( xi , yi ) i 1, ... , n 1
计算方法
预估-校正法
三. 预估 — 校正法
/* predictor-corrector method */
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单
稳定性最好
精度提高
精度低
精度低, 计算量大
计算量大
精度提高, 显式
在x0 x X上的数值解法。
四. 误差估计、收敛性
和稳定性
计算方法
§9.2 简单的数值方法与基本概念
一. 欧拉(Euler)格式
设 节 点 为xi a ih (i 0,1,2 , n) 方 法 一 :Taylor展 开 法
数值分析李庆扬第9章常微分方程初值问题数值解法讲义.
得到离散点:x0 , x1 , , xn , ;
② 由 x0 , y0 f x0 , y0 切线 P0P1 ,
切线与 x x1 交点 P1 : y1 的近似值 ;
③ 再由 x1 , y1 向前推进到 P2 , 得到折线 P0P1 Pn ,近似 y yx 。
7
2021年5月4日
《数值分析》 黄龙主讲
h
yxn
yxn1
yn1 yn f
h
xn1 , yn1
yn1 yn h f xn1 , yn1
——后退的欧拉公式(隐式)
注意:① 显式计算方便,隐式稳定性较好;
② 上式隐含 yn1 ? ,采用迭代法求解。
12
2021年5月4日
《数值分析》 黄龙主讲来自欧拉公式的另一种理解:
将常微分方程 y f x, y 改写 dy f t , ytdt
“步进式”:顺着节点排列顺序,一步一步地向前推进。
步长:常用等步长 hn xn1 xn ,节点为 xn x0 nh 单步法:计算 yn1 时,只用到前一点的值 yn k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk1
5
2021年5月4日
《数值分析》 黄龙主讲
对微分方程从 xn 到 xn1 积分
y xn1 yxn
xn1 f t , yt dt
xn
由积分左矩形公式得
xn1 xn
f
t ,
yt dt
hf
xn ,
yxn
例如:
lim
h0
yxn1
h
yxn
yxn
yxn1
h
yxn
yxn
f xn , yxn
② 由 x0 , y0 f x0 , y0 切线 P0P1 ,
切线与 x x1 交点 P1 : y1 的近似值 ;
③ 再由 x1 , y1 向前推进到 P2 , 得到折线 P0P1 Pn ,近似 y yx 。
7
2021年5月4日
《数值分析》 黄龙主讲
h
yxn
yxn1
yn1 yn f
h
xn1 , yn1
yn1 yn h f xn1 , yn1
——后退的欧拉公式(隐式)
注意:① 显式计算方便,隐式稳定性较好;
② 上式隐含 yn1 ? ,采用迭代法求解。
12
2021年5月4日
《数值分析》 黄龙主讲来自欧拉公式的另一种理解:
将常微分方程 y f x, y 改写 dy f t , ytdt
“步进式”:顺着节点排列顺序,一步一步地向前推进。
步长:常用等步长 hn xn1 xn ,节点为 xn x0 nh 单步法:计算 yn1 时,只用到前一点的值 yn k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk1
5
2021年5月4日
《数值分析》 黄龙主讲
对微分方程从 xn 到 xn1 积分
y xn1 yxn
xn1 f t , yt dt
xn
由积分左矩形公式得
xn1 xn
f
t ,
yt dt
hf
xn ,
yxn
例如:
lim
h0
yxn1
h
yxn
yxn
yxn1
h
yxn
yxn
f xn , yxn
数值分析(09)用矩阵分解法解线性代数方程组ppt课件
l31
l32
1
j1
1
ln1 ln2 ln,n1 1 yn bn
数值分析 2
数值分析
第 二 步: 求 解 上 三 角 方 程 组Ux Y ,向 后 回 代 求 出x
xn yn unn
n
xk ( yk ukj x j ) ukk j k 1
(k n 1, n 2, ,1)
x(i)=(y(i)-LU(i,i+1:n)*x(i+1:n)')/LU(i,i); end
数值分析10
数值分析
三、用全主元的三角分解PAQT LU求解Ax b Ax b PAQT (Qx) Pb LU(Qx) Pb
lupqdsv.m
%功能:调用全主元三角分解函数[LU,p,q]=lupqd(A)
1 2 0
1
2 7
1
1 2 17 0 1
数值分析 6
数值分析
P为排列阵,在计算机中用向量表示
例 P (1 2 3 4)T , P1 (3 2 1 4)T ,
P2 (3 4 1 2)T ,
P (3 4 1 2)T
Ax b, PA LU ,
PAx Pb,
LUx Pb f
f (i) b(P(i))
1
2
0
1
数值分析 8
数值分析
lupdsv.m %功能:调用列主元三角分解函数 [LU,p]=lupd(A) % 求解线性方程组Ax=b。 %解法:PA=LU, Ax=b←→PAx=Pb % LUx=Pb, y=Ux % Ly=f=Pb, f(i)=b(p(i)) %输入:方阵A,右端项b(行或列向量均可) %输出:解x(行向量)
y1
数值分析课件第9章5-6节
k i 1 i 0
k 1
(5.6)
即为欧拉法.
从(5.4)可求得 且局部截断误差为
c2 1 / 2 0,故方法为一阶精度,
1 q q q 3 cp [ k 1 2 2 2 ( k 1) k 1 ] ( 1 Tn 1! h y ( xn ) O ( h ), q 2 1 q 1 [ 1 2 2 这和第2节给出的定义及结果是一致的. k q 1 k ] ( q 1)!
k
y n k y n k 1 h i f n i
i 0
(5.7)
Hale Waihona Puke 的 k 步法,称为阿当姆斯(Adams)方法. 为隐式方法,通常称为阿 k 0 为显式方法, k 0 当姆斯显式与隐式公式,也称Adams-Bashforth公式与Adams -Monlton公式. 这类公式可直接由对方程
q! 1 q 1 q 1 h [ 1 2 2 k k ] yn 1 ( n )! ( f f n 1 ), q y 1 2
即为梯形法. 由(5.4)可求得 c3
1 / 12 ,
故
p 2 ,所以梯形法
3
是3阶方法, 其局部截断误差主项是 这与第2节中的讨论也是一致的.
局部截断误差是
3 4 ( 4) 5 Tn 3 h y ( xn ) O ( h ). 8 h yn 3 yn 2 ( 23 f n 2 16 f n 1 5 f n ). 12 若 3 0,则可解得
(5.8)
3 8
0
1 24
, 1
5 24
2
(5.1)逐次求出 yk , yk 1 , .
k 1
(5.6)
即为欧拉法.
从(5.4)可求得 且局部截断误差为
c2 1 / 2 0,故方法为一阶精度,
1 q q q 3 cp [ k 1 2 2 2 ( k 1) k 1 ] ( 1 Tn 1! h y ( xn ) O ( h ), q 2 1 q 1 [ 1 2 2 这和第2节给出的定义及结果是一致的. k q 1 k ] ( q 1)!
k
y n k y n k 1 h i f n i
i 0
(5.7)
Hale Waihona Puke 的 k 步法,称为阿当姆斯(Adams)方法. 为隐式方法,通常称为阿 k 0 为显式方法, k 0 当姆斯显式与隐式公式,也称Adams-Bashforth公式与Adams -Monlton公式. 这类公式可直接由对方程
q! 1 q 1 q 1 h [ 1 2 2 k k ] yn 1 ( n )! ( f f n 1 ), q y 1 2
即为梯形法. 由(5.4)可求得 c3
1 / 12 ,
故
p 2 ,所以梯形法
3
是3阶方法, 其局部截断误差主项是 这与第2节中的讨论也是一致的.
局部截断误差是
3 4 ( 4) 5 Tn 3 h y ( xn ) O ( h ). 8 h yn 3 yn 2 ( 23 f n 2 16 f n 1 5 f n ). 12 若 3 0,则可解得
(5.8)
3 8
0
1 24
, 1
5 24
2
(5.1)逐次求出 yk , yk 1 , .
数值分析 李庆扬 第9章 常微分方程初值问题数值解法
15
2017年1月4日
《数值分析》 黄龙主讲
讨论迭代的收敛性:
因函数
f x , y 对 y 满足利普希茨条件
f x , y1 f x , y2 L y1 y2 , y1 , y2 R
比较欧拉的后退公式和其 k 1 次迭代结果
yn1 yn h f xn1 , yn1
k 1 k yn y h f x , y 1 n n1 n1
两式相减得
k 1 k k yn y h f x , y f x , y hL y 1 n1 n1 n1 n1 n1 n1 yn1
由此可知:只要 hL 1 迭代法就收敛到解
yn1 时,只用到前一点的值 yn
k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk 1
5
2017年1月4日
《数值分析》 黄龙主讲
9.2
9.2.1
简单的数值方法
欧拉法与后退欧拉法
初值问题:
y f x , y
y x0 y0
解的形式:
由利普希茨条件,有
yn1 yn1
若选取 h 充分小,使得
20
k 1
hL k yn1 yn1 2
k hL 2 1 ,则 k 时有 yn1 yn1
2017年1月4日
《数值分析》 黄龙主讲
9.2.3
改进欧拉公式
① 先用向前欧拉公式,求得一个初步的近似值 预测:
称
f 关于 y 满足利普希茨条件, L 为 f 的利普希茨常数。
2017年1月4日
《数值分析》 黄龙主讲
讨论迭代的收敛性:
因函数
f x , y 对 y 满足利普希茨条件
f x , y1 f x , y2 L y1 y2 , y1 , y2 R
比较欧拉的后退公式和其 k 1 次迭代结果
yn1 yn h f xn1 , yn1
k 1 k yn y h f x , y 1 n n1 n1
两式相减得
k 1 k k yn y h f x , y f x , y hL y 1 n1 n1 n1 n1 n1 n1 yn1
由此可知:只要 hL 1 迭代法就收敛到解
yn1 时,只用到前一点的值 yn
k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk 1
5
2017年1月4日
《数值分析》 黄龙主讲
9.2
9.2.1
简单的数值方法
欧拉法与后退欧拉法
初值问题:
y f x , y
y x0 y0
解的形式:
由利普希茨条件,有
yn1 yn1
若选取 h 充分小,使得
20
k 1
hL k yn1 yn1 2
k hL 2 1 ,则 k 时有 yn1 yn1
2017年1月4日
《数值分析》 黄龙主讲
9.2.3
改进欧拉公式
① 先用向前欧拉公式,求得一个初步的近似值 预测:
称
f 关于 y 满足利普希茨条件, L 为 f 的利普希茨常数。
数值分析--09
a
得 y ( xn1 ) y ( xn ) hf ( x n , y ( x n )) 用 y ( xn ) 的近似值 y n 代替 y ( xn ) , 近似等号 “≈” 代替等号 “=” , 也可以得与(9.2.3)相同的的显式欧拉法递推公式 y n1 y n h f ( x n , y n ) n 0,1,2, y 0 y ( x0 ) 从欧拉法的计算公式可以看出,欧拉法是采用递推的方 式进行计算的(如图 9.1 所示)
- 13 -
河南农业大学《数值计算方法》教案
汪松玉
二
差商替代法
在区间 [ xn , x n1 ] 上,由导数定义可知,当 h 充分小时,在 初值问题(9.0.1)中用差商代替导数 y ( xn 1 ) y ( xn ) y( xn ) f xn , y ( xn ) (9.2.4) h 可得与(9.2.3)相同的的显式欧拉法递推公式 y n1 y n h f ( xn , y n ) n 0,1,2, y 0 y ( x0 ) 三 数值积分法
dy dx
.
x xn
求初值问题(9.0.1)的数值解方法都是逐步迭代递推进行 的,即先计算出 y n 后,再计算 y n1 .可进行如下分类: 根据计算 y n1 时所用到以前计算结果的个数,可划分为 ① 计算 y n1 时只用到前一步递推计算的结果 y n 的数值 方法,称为单步法;
-6-
-9-
河南农业大学《数值计算方法》教案
汪松玉
注 9.1 定理 9.1.1 中的条件是初值问题(9.0.1)存在唯一 解 y ( x) 的充分条件. 定义 9.1.1 若初值问题(9.0.1)满足以下条件 (1) 初值问题(9.0.1)的解 y ( x) 存在唯一; (2) 存在 0 ,使得 z f ( x, z ) ( x ) x [ x0 , x1 ] (9.1.1) z ( x0 ) y0 对任意 | | , | ( x ) | ,都存在唯一解 z ( x) ; (3) 存在常数 R ,使得 z ( x ) y ( x ) R x [ x0 , x1 ]
得 y ( xn1 ) y ( xn ) hf ( x n , y ( x n )) 用 y ( xn ) 的近似值 y n 代替 y ( xn ) , 近似等号 “≈” 代替等号 “=” , 也可以得与(9.2.3)相同的的显式欧拉法递推公式 y n1 y n h f ( x n , y n ) n 0,1,2, y 0 y ( x0 ) 从欧拉法的计算公式可以看出,欧拉法是采用递推的方 式进行计算的(如图 9.1 所示)
- 13 -
河南农业大学《数值计算方法》教案
汪松玉
二
差商替代法
在区间 [ xn , x n1 ] 上,由导数定义可知,当 h 充分小时,在 初值问题(9.0.1)中用差商代替导数 y ( xn 1 ) y ( xn ) y( xn ) f xn , y ( xn ) (9.2.4) h 可得与(9.2.3)相同的的显式欧拉法递推公式 y n1 y n h f ( xn , y n ) n 0,1,2, y 0 y ( x0 ) 三 数值积分法
dy dx
.
x xn
求初值问题(9.0.1)的数值解方法都是逐步迭代递推进行 的,即先计算出 y n 后,再计算 y n1 .可进行如下分类: 根据计算 y n1 时所用到以前计算结果的个数,可划分为 ① 计算 y n1 时只用到前一步递推计算的结果 y n 的数值 方法,称为单步法;
-6-
-9-
河南农业大学《数值计算方法》教案
汪松玉
注 9.1 定理 9.1.1 中的条件是初值问题(9.0.1)存在唯一 解 y ( x) 的充分条件. 定义 9.1.1 若初值问题(9.0.1)满足以下条件 (1) 初值问题(9.0.1)的解 y ( x) 存在唯一; (2) 存在 0 ,使得 z f ( x, z ) ( x ) x [ x0 , x1 ] (9.1.1) z ( x0 ) y0 对任意 | | , | ( x ) | ,都存在唯一解 z ( x) ; (3) 存在常数 R ,使得 z ( x ) y ( x ) R x [ x0 , x1 ]
数值分析9(迭代法收敛性证明)
X (k1) X *
B( X (k) X * ) B2 ( X (k1) X * ) L Bk1( X (0) X * )
由X(0) 的任意性知
B* =lim Bk O (B) 1。
k
05:00
8/34
充分性 k
X (k1) BX (k) f B(BX (k1) f ) f L Bk1 X (0) B j f j0 则(I B)(I B B2 L Bk ) I Bk1,
(B) 1 lim Bk 0 k (I B)-1 = B j。 j0
lim X (k) (I B)1 f 说明迭代法产生的序列收敛。
k
05:00
9/34
谱半径小于1是迭代收敛的充要条件,但它不 易计算,所以在实际使用中通常并不好用。
由性质( A) A ,我们有如下推论 :
推论4.1 若||B||<1,则对任意的f和任意的初始向量 X(0)迭代法 X(k+1) =B X(k) +f 收敛。
是实对称正定矩阵时, Gauss-Seidel迭代法收敛。
定理 方程组 Ax=b 中, 若 A 是实对称正定矩阵,则
Jacobi迭法收敛?(反例)
05:00
20/34
定理4.5 设BJ元素均非负, 则下列关系有且 只有一个成立:
(1) (BJ ) (BGS ) 0; (2) 0<(BGS ) (BJ ) 1; (3) (BJ ) (BGS ) 1; (4) 1<(BJ ) (BGS )。
1 || B ||
证 X(k+1)–X* =B(X(k) – X* )
|| X(k+1) – X* || ≤ ||B(X(k) – X*) || ≤ ||B|| || X(k) – X* ||
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(隐式欧拉公式 )
11
由于未知数yn+1同时出现在等式的两边, 不能直接得到,故称为隐式欧拉公式,而前 者称为显式欧拉公式. 一般先用显式计算一个初值,再迭代求解.
隐式欧拉法的局部截断误差:
T n 1y (x n 1)y % n 1 h 2 2y(x n) O (h 3)O (h 2)
即隐式欧拉公式具有1阶精度.
欧拉法的局部截断误差:
T n 1 y (x n 1 ) y % n 1 [y (x n ) h y (x n ) h 2 2y (x n ) O (h 3 )] [y (x n ) h f(x n ,y (x n ))]
h 2 2y (x n ) O (h 3) O (h 2)
所以欧拉法具有 1 阶精度. 7
要求T n 1y (x n 1)y n 1 O (h 3), 则必须有:
12 1, 2p12
这里有 3 个未知 数, 2 个方程。
所以存在无穷多个解! 25
所有满足上式的统称为2阶Runge-Kutta格式.
yn1 yn h[1 K 1 2 K 2 ]
K1
f ( xn , yn )
Lipschitiz条件:若存在正数L,使得对一切 x, y1, y2有 |f(x ,y 1 ) f(x ,y 2 )| L |y 1 y 2 | 则称f(x, y)满足Lipschitiz条件.
欧拉法的总体截断误差:
en1y(xn1)yn1
设 y % n 1 y ( x n ) h f( x n ,y ( x n ) ) , 那么
yy0y(x 0)(xx 0)y0f(x 0,y0)(xx 0)
当x=x1时,代入有 y1y0hf(x0,y0) 这样得到y(x1)的近似值y1的方法.
4
重复上述方法,当 x=x2 时 y2y1hf(x1,y1) 依次可以计算出x3, x4, …处的近似值y3, y4, … 由此得到Euler公式:
14
梯形公式的局部截断误差
T n 1y(x n 1)y % n 1 h
y(x n 1)y(x n )2[f(x n ,y(x n ))f(x n 1 ,y(x n 1 ))]
hy'(xn)h22 y(xn)h63 y(xn)O(h4) h 2y'(xn)h 2[y'(xn)hy(xn)h22 y(xn)O(h3)]
h y (x n 1 ) y (x n ) 2 [f(x n ,y (x n )) f(x n 1 ,y (x n 1 ))]
用yn来近似y(xn),用yn+1来近似y(xn+1), 得 梯形公式
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)]
梯形公式是隐式的,可以用迭代法求解.
考察改进的欧拉法,可以将其改写为:
yn1
yn
h
1 2
K1
1 2
K2
K1 f ( xn , yn )
斜率 一定取K1 K2 的平均值吗?
K2 f ( xn h, yn hK1 ) 步长一定是一个h 吗?
22
1 二阶Runge-Kutta方法 将改进欧拉法推广为:
K yn 1 1fy(n xn ,h y[n)1K12K2]
由 y(1) = y0 =1 计算得
y1 0.63171 y(1.2) 0.715488
y2 0.47696 y(1.4) 0.52611
21
二、Runge-Kutta方法
建立高精度的单步递推格式. 单步递推法的基本思想是从(xn , yn )点出发,以 某一斜率沿直线达到(xn+1 , yn+1 )点. 欧拉法及 其各种变形所能达到的最高精度为2阶.
(2)再将y n 1 代入梯形公式的右边作校正,得到
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)]
y n 1 y n h 2 f(x n ,y n ) fx n 1 ,y n h f(x n ,y n )
注:此法亦称为预测-校正法.可以证明该算 法具有2阶精度,同时可以看到它是个单步递 推格式,比隐式公式的迭代求解过程简单.
18
例 用梯形公式求解初值问题(步长h=0.2)
y 8 3 y (1x2)
y(1) 2
解: 梯形公式为
于是
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)] yn1yn02 .2[83yn83yn1]
整理得
7 16 yn1 13 yn 13
由 y(1) = y0 = 2 依次可得 y1, y2, y3, y4, y5.
ym y(xm)
也就是说,ym收敛到方程的准确解 y ( x m )
10
后退Euler公式(隐式欧拉法) 利用向后差商近似导数
y(x1)y(x1) hy(x0)
y (x 1 ) y (x 0 ) h f(x 1 ,y (x 1 ) ) y ( x n 1 ) y ( x n ) h f ( x n 1 ,y ( x n 1 ) )
00.1 ((0.1)2100(0)2) 0.001
y(0.2) y3 y2hf(x2,y2)
0 0 .1 ((0 .2 )2 1 0 0 (0 .0 0 1 )2 ) 0.005
Euler公式的截断误差
局部截断误差:一步Euler公式产生的误差; 总体截断误差:Euler公式的累积总误差;
6
定义 在假设yn = y(xn),即第i步计算是精确的 前提下,考虑的截断误差Rn = y(xn+1) yn+1 称 为局部截断误差. 定义 若某算法的局部截断误差为O(hp+1),则 称该算法有p 阶精度.
d
x
f (x, y)
y ( x 0 ) y 0
的数值解法,就是寻求解y(x)在一系列离散点
x 0 x 1 L x m x处的近似值 y0,y1,L,ym的方法. 相邻两个节点间的距离 hxn1xn称为步长.
3
一、 Euler方法 1 欧拉公式 由初值条件 y(x0) y0 表示积分曲线从 P0(x0, y0 ) 出发,并在 P0(x0, y0 ) 处的切线斜率为 f ( x0 , y0 ) 因此可以设想积分曲线在 x=x0 附近可以用切 线近似的代替曲线. 切线方程为
yn1ynhf(xn,yn)
由于用折线近似代替方程的解析解,所以 Euler方法也称为Euler折线法.
例 用Euler法计算初值问题的解在x=0.3时的 近似值,取步长h=0.1 .
y x2 100 y2 y(0) 0
5
解:y(0.1) y1 y0hf(x0,y0)
00.1((0)2100(0)2) 0 y(0.2) y2 y1hf(x1,y1)
而前面的三种算法都是单步法.
16
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单 稳定性最好 精度提高
精度提高, 显式
精度低
精度低, 计算量大 计算量大
多一个初值, 可能影响精度
有没有一种方法,既有这些方法的优点,而 没有它们的缺点?
17
改进欧拉法 (1)先用显式欧拉公式作预测,算出
yn1ynhf(xn,yn)
9
特别当n=m-1时,有
|em||y(xm)ym|O(h)[(1hL)m1]
1
Q lim ( 1 h L ) m lim [ ( 1 h L )h L ] L (x m x 0 ) e L (x m x 0 )
h 0
h 0
|em|O(h) 总体误差与h是同阶的.
上式还说明,当 h 0 时,有 em 0 即
y ( x n ) ( 1 2 ) h y ( x n ) 2 p h 2 y ( x n ) O ( h 3 )
(3) 将yn+1与y( xn+1 )在xn点的泰勒展开作比较
y n 1 y ( x n ) ( 1 2 ) h y ( x n ) 2 p h 2 y ( x n ) O ( h 3 ) y (x n 1 ) y (x n ) h y (x n ) h 2 2y (x n ) O (h 3 )
19
例 用改进欧拉法求解初值问题
y y y2 sinx 0 y(1) 1
要求步长h=0.2,并计算y(1.2)和y(1.4)
解:改进欧拉法公式为
yn1ynhf(xn,yn)
h
即
yn1yn2[f(xn,yn)f(xn1,yn1)]
y y n n 1 1 y y n n 0 0 ..1 2 [(y y n n y y n 2 n 2s siin n x x n n) yn 1yn 2 1sin x n 1] 20
1 1 2y(xn)h3O (h4)O (h3)
具有2阶精度.
15
中点欧拉公式
中心差商近似导数
y(x1)y(x2)2hy(x0)
y (x 2 ) y (x 0 ) 2 h f(x 1 ,y (x 1 ))
y n 1 y n 1 2 h f(x n ,y n )
假设yn 1y(x n 1),yny(x n ), 则可以导出 即中点公R n 式 具y 过(需有x 程n 要 1 ,22)个阶 这y 初样精n 值1 的度 算y.O 0和法(h 称3 y)1来为启双动步递法推,
y (x n ) p h y (x n ) O (h 2 )
y(x)ddxf(x,y)fx(x,y)fy(x,y)ddxy fx(x,y)fy(x,y)f(x,y)
K1f(xn,yn)
(2) 将 K2 代入第1式,得到
24
y n 1 y n h { 1 y ( x n ) 2 [ y ( x n ) p h y ( x n ) O ( h 2 ) ] }
K2f(xnph,ynphK1)
首先希望能确定系数 1、2、p,使得到的
11
由于未知数yn+1同时出现在等式的两边, 不能直接得到,故称为隐式欧拉公式,而前 者称为显式欧拉公式. 一般先用显式计算一个初值,再迭代求解.
隐式欧拉法的局部截断误差:
T n 1y (x n 1)y % n 1 h 2 2y(x n) O (h 3)O (h 2)
即隐式欧拉公式具有1阶精度.
欧拉法的局部截断误差:
T n 1 y (x n 1 ) y % n 1 [y (x n ) h y (x n ) h 2 2y (x n ) O (h 3 )] [y (x n ) h f(x n ,y (x n ))]
h 2 2y (x n ) O (h 3) O (h 2)
所以欧拉法具有 1 阶精度. 7
要求T n 1y (x n 1)y n 1 O (h 3), 则必须有:
12 1, 2p12
这里有 3 个未知 数, 2 个方程。
所以存在无穷多个解! 25
所有满足上式的统称为2阶Runge-Kutta格式.
yn1 yn h[1 K 1 2 K 2 ]
K1
f ( xn , yn )
Lipschitiz条件:若存在正数L,使得对一切 x, y1, y2有 |f(x ,y 1 ) f(x ,y 2 )| L |y 1 y 2 | 则称f(x, y)满足Lipschitiz条件.
欧拉法的总体截断误差:
en1y(xn1)yn1
设 y % n 1 y ( x n ) h f( x n ,y ( x n ) ) , 那么
yy0y(x 0)(xx 0)y0f(x 0,y0)(xx 0)
当x=x1时,代入有 y1y0hf(x0,y0) 这样得到y(x1)的近似值y1的方法.
4
重复上述方法,当 x=x2 时 y2y1hf(x1,y1) 依次可以计算出x3, x4, …处的近似值y3, y4, … 由此得到Euler公式:
14
梯形公式的局部截断误差
T n 1y(x n 1)y % n 1 h
y(x n 1)y(x n )2[f(x n ,y(x n ))f(x n 1 ,y(x n 1 ))]
hy'(xn)h22 y(xn)h63 y(xn)O(h4) h 2y'(xn)h 2[y'(xn)hy(xn)h22 y(xn)O(h3)]
h y (x n 1 ) y (x n ) 2 [f(x n ,y (x n )) f(x n 1 ,y (x n 1 ))]
用yn来近似y(xn),用yn+1来近似y(xn+1), 得 梯形公式
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)]
梯形公式是隐式的,可以用迭代法求解.
考察改进的欧拉法,可以将其改写为:
yn1
yn
h
1 2
K1
1 2
K2
K1 f ( xn , yn )
斜率 一定取K1 K2 的平均值吗?
K2 f ( xn h, yn hK1 ) 步长一定是一个h 吗?
22
1 二阶Runge-Kutta方法 将改进欧拉法推广为:
K yn 1 1fy(n xn ,h y[n)1K12K2]
由 y(1) = y0 =1 计算得
y1 0.63171 y(1.2) 0.715488
y2 0.47696 y(1.4) 0.52611
21
二、Runge-Kutta方法
建立高精度的单步递推格式. 单步递推法的基本思想是从(xn , yn )点出发,以 某一斜率沿直线达到(xn+1 , yn+1 )点. 欧拉法及 其各种变形所能达到的最高精度为2阶.
(2)再将y n 1 代入梯形公式的右边作校正,得到
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)]
y n 1 y n h 2 f(x n ,y n ) fx n 1 ,y n h f(x n ,y n )
注:此法亦称为预测-校正法.可以证明该算 法具有2阶精度,同时可以看到它是个单步递 推格式,比隐式公式的迭代求解过程简单.
18
例 用梯形公式求解初值问题(步长h=0.2)
y 8 3 y (1x2)
y(1) 2
解: 梯形公式为
于是
h yn 1yn2[f(xn,yn)f(xn 1,yn 1)] yn1yn02 .2[83yn83yn1]
整理得
7 16 yn1 13 yn 13
由 y(1) = y0 = 2 依次可得 y1, y2, y3, y4, y5.
ym y(xm)
也就是说,ym收敛到方程的准确解 y ( x m )
10
后退Euler公式(隐式欧拉法) 利用向后差商近似导数
y(x1)y(x1) hy(x0)
y (x 1 ) y (x 0 ) h f(x 1 ,y (x 1 ) ) y ( x n 1 ) y ( x n ) h f ( x n 1 ,y ( x n 1 ) )
00.1 ((0.1)2100(0)2) 0.001
y(0.2) y3 y2hf(x2,y2)
0 0 .1 ((0 .2 )2 1 0 0 (0 .0 0 1 )2 ) 0.005
Euler公式的截断误差
局部截断误差:一步Euler公式产生的误差; 总体截断误差:Euler公式的累积总误差;
6
定义 在假设yn = y(xn),即第i步计算是精确的 前提下,考虑的截断误差Rn = y(xn+1) yn+1 称 为局部截断误差. 定义 若某算法的局部截断误差为O(hp+1),则 称该算法有p 阶精度.
d
x
f (x, y)
y ( x 0 ) y 0
的数值解法,就是寻求解y(x)在一系列离散点
x 0 x 1 L x m x处的近似值 y0,y1,L,ym的方法. 相邻两个节点间的距离 hxn1xn称为步长.
3
一、 Euler方法 1 欧拉公式 由初值条件 y(x0) y0 表示积分曲线从 P0(x0, y0 ) 出发,并在 P0(x0, y0 ) 处的切线斜率为 f ( x0 , y0 ) 因此可以设想积分曲线在 x=x0 附近可以用切 线近似的代替曲线. 切线方程为
yn1ynhf(xn,yn)
由于用折线近似代替方程的解析解,所以 Euler方法也称为Euler折线法.
例 用Euler法计算初值问题的解在x=0.3时的 近似值,取步长h=0.1 .
y x2 100 y2 y(0) 0
5
解:y(0.1) y1 y0hf(x0,y0)
00.1((0)2100(0)2) 0 y(0.2) y2 y1hf(x1,y1)
而前面的三种算法都是单步法.
16
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单 稳定性最好 精度提高
精度提高, 显式
精度低
精度低, 计算量大 计算量大
多一个初值, 可能影响精度
有没有一种方法,既有这些方法的优点,而 没有它们的缺点?
17
改进欧拉法 (1)先用显式欧拉公式作预测,算出
yn1ynhf(xn,yn)
9
特别当n=m-1时,有
|em||y(xm)ym|O(h)[(1hL)m1]
1
Q lim ( 1 h L ) m lim [ ( 1 h L )h L ] L (x m x 0 ) e L (x m x 0 )
h 0
h 0
|em|O(h) 总体误差与h是同阶的.
上式还说明,当 h 0 时,有 em 0 即
y ( x n ) ( 1 2 ) h y ( x n ) 2 p h 2 y ( x n ) O ( h 3 )
(3) 将yn+1与y( xn+1 )在xn点的泰勒展开作比较
y n 1 y ( x n ) ( 1 2 ) h y ( x n ) 2 p h 2 y ( x n ) O ( h 3 ) y (x n 1 ) y (x n ) h y (x n ) h 2 2y (x n ) O (h 3 )
19
例 用改进欧拉法求解初值问题
y y y2 sinx 0 y(1) 1
要求步长h=0.2,并计算y(1.2)和y(1.4)
解:改进欧拉法公式为
yn1ynhf(xn,yn)
h
即
yn1yn2[f(xn,yn)f(xn1,yn1)]
y y n n 1 1 y y n n 0 0 ..1 2 [(y y n n y y n 2 n 2s siin n x x n n) yn 1yn 2 1sin x n 1] 20
1 1 2y(xn)h3O (h4)O (h3)
具有2阶精度.
15
中点欧拉公式
中心差商近似导数
y(x1)y(x2)2hy(x0)
y (x 2 ) y (x 0 ) 2 h f(x 1 ,y (x 1 ))
y n 1 y n 1 2 h f(x n ,y n )
假设yn 1y(x n 1),yny(x n ), 则可以导出 即中点公R n 式 具y 过(需有x 程n 要 1 ,22)个阶 这y 初样精n 值1 的度 算y.O 0和法(h 称3 y)1来为启双动步递法推,
y (x n ) p h y (x n ) O (h 2 )
y(x)ddxf(x,y)fx(x,y)fy(x,y)ddxy fx(x,y)fy(x,y)f(x,y)
K1f(xn,yn)
(2) 将 K2 代入第1式,得到
24
y n 1 y n h { 1 y ( x n ) 2 [ y ( x n ) p h y ( x n ) O ( h 2 ) ] }
K2f(xnph,ynphK1)
首先希望能确定系数 1、2、p,使得到的