《数值分析》第五章课件
合集下载
数值分析课件 第五章2

1 M4 = 5
f ′( x ) = − ∫ t sin txdt = ∫ t cos( tx +
0 0 1 2 1 2
1
1
π
2
)dt
2π f ′′( x ) = − ∫ t cos txdt = ∫ t cos( tx + )dt 0 0 2 1 kπ (k ) k 归纳法知 由归纳法知 f ( x ) = t cos( tx + )dt ∫0 2 1 1 kπ 1 (k ) k k f ( x ) ≤ ∫ t cos( tx + ) dt ≤ ∫ t dt = 0 0 2 k +1
xi
f ( xi )
1/2
0.958851 0.936156 0.908858 0.877193 0.841471
复化梯形公式 复化梯形公式(n=8) 梯形公式( )
h= 1
1 1 3 1 T8 ( f ) = f (0) + 2 f ( ) + f ( ) + f ( ) 2×8 4 8 8
b−a 2 Rn ( f ) = I − Tn ( f ) = − h f ′′(η ),η ∈ [a , b] 12
设 M 2 = max] | f ′′( x ) |,则 x∈[ a , b
b−a 2 | Rn ( f ) |≤ h M2 12
2
复化梯形公式是收敛的 复化梯形公式是收敛的,误差阶是O ( h 公式是收敛 以通过 M 2 求出 n 。
在区间[ xk , xk +1 ] , k
b a
b−a 将积分区间 [ a , b ] n等分 分点 xk = a + kh, h = 等分: 等分 n
清华第五版数值分析第5章课件

第一步:选 ai ,1 max ai 1 ,交换第1行和第i1行,
1 i n
然后进行消元,得
( a111 ) [ A( 2 ) , b ( 2 ) ]
( 1 a121 ) a1( n ) ( (2 a222 ) a2 n )
( an 2 ) 2
(2 ann )
三
高斯列主元消去法
基本思想:在每轮消元之前,选列主元素 (绝对值最大的元素)
设方程组 AX b的增广矩阵为 a11 a (1) (1) 21 [ A , b ] [ A , b] an1 具体步骤为:
1
b1 a22 a2 n b2 an 2 ann bn a12 a1 n
如此至多经过n-1步,就得到与之同解的上三角形方 程组的增广矩阵,再用回代过程即可得方程组的解.
例:用Gauss列主元消去法解方程组 2 4 6 x1 3 4 9 2 x 5 2 1 1 3 x3 4
(1)
1 2 n
a (1) 0 0
a (1) a (1)
12 1n
(2 ( a22 ) a22 ) n
( (2 an22) ann)
b(1) ( 2) b2 ( 2) bn
1
则
a 令m i 1 , i 2,3,...,n a
n
a (1) 0 0
11
a (1) a (1)
12
(2 ( a22 ) a22 ) n
( (2 an22) ann)
数值分析ppt

由插值多项式的唯一性, Newton基本插值公式的余项为 基本插值公式的余项 由插值多项式的唯一性, Newton基本插值公式的余项为
f ( n +1) (ξ ) Rn ( x ) = f ( x ) − N n ( x ) = ω n +1 ( x) (n + 1)!
若将x ≠ xi , (i = 0 ,1,L , n)视为一个节点, 则
因此, 因此,可以作为插值基函数 线性无关, 线性无关,
设插值节点为 xi ,
函数值为 f i , i = 0 ,1,L , n
hi = xi + 1 − xi , i = 0 ,1,2 ,L , n − 1
插值条件为 P( xi ) = f i , i = 0 ,1,L , n
设插值多项式 P ( x )具有如下形式
一、均差 二、Newton插值公式 三、等距节点的Newton插值公式 四、Newton插值算法
均差) 引入差商 (均差) 的目的 我们知道,Lagrange插值多项式的插值基函数为 我们知道,Lagrange插值多项式的插值基函数为 ,Lagrange
( x − xi ) l j (x ) = ∏ i = 0 ( x j − xi )
0.28000 0.35893 0.43348 0.52493 0.19733 0.21300 0.22863 0.03134 0.03126 −0.00012
15
从均差表看到4阶均差近似常数,5阶均差近似为0. 故取4次插值多项式 N4(x)做近似即可. 按牛顿插值公式,将数据代入
N4(x) = 0.41075+1.116(x −0.4) +0.28(x −0.4)(x −0.55)
数值分析第五章

输出:有根区间为(3.3,3. 4)且区间(3.6,3.7)内无实根 。
8
§2
设有非线性方程
二 分 法
其中,f (x)为 [a,b] 上连续函数且设 f (a) ⋅ f (b) < 0 (不妨设方程(2.1)于 (2.1)
f (x) = 0
(2.1) 2.1)
[a,b] 内仅有一个实根。
y
求方程(2.1)实根 x* 的二分法过程,就是将含根区间 [a,b] 逐步分 (2.1) 半,检查函数符号的变化,以便确定含根的充分小区间。
a ←x
k ≤ N0
否
输出
图5-3
分半 N0 次还没有到 达精度要求信息
15
§3 迭代法
迭代法是一种逐次逼近法。它是求解代数方法,超越方程及方程组 的一种基本方法,但存在收敛性及收敛快慢问题。 为了用迭代法求非线性方程 f (x) = 0的近似值,首先需要将此方 程转化为等价的方程 3.1) (3.1)
x >b
≤
f1 ← f2
< 输出有根区间
(x − ∆x, x)
L2
图 5-1
L 1
7
+ 若 f (x) 于 [a, ∞) 某点 xs 分为两支曲线且 x → xs 时 f (x) →+∞或 − ∞ , − 当 x → xs 时 f (x) → −∞ 或
[注] 当 f (x) 于 [a,b] 连续时,输出区间 (x − ∆x, x) 内一定有实根, 注
f (xk ) < ε1 或 h < ε2则输出 xk , f (xk ), k;
ak+1 = xk ,bk+1 = bk
其中 N0 表示给定的最大分半次数,当 f (x) < ε1 或 h < ε2 时分半终止, fmax为一大数。
数值分析第五章插值法精品PPT课件

证明 R n ( x i ) f ( x i ) n ( x i ) 0 ,
故 R n ( x ) K ( x ) x x ( 0 ) x x ( 1 ) ( x x n ).
其中 K (x)是与 x有关的待定函数.
如何求 K (x) ?
8
现把x看成是[a, b]上的固定点, 作辅助函数
x22
x2n
a2
f
(x2
)
1 xn xn2 xnnan f (xn)
系数矩阵A的行列式是Vandermonde行列式,其值为
n
deA t() (xj xi)
i,j0,ij
当插值节点xi (i=0, 1, 2, …, n)互不相同时,此行列
式不为0, 即系数矩阵A可逆. 因此ai (i=0, 1, 2, …, n),
11 2181.031 3 03.
抛物线插值. 取x0=11, x1=12, x1=13, 插值多项式为
L2(x)2.39((1 7x 1 91 1))2 21 x (( 111)3 )32.48((1 4x 2 91 1))1 11 x (( 211)3 )3 2.56(4x 91)1x (1)2 (1 31)11 ( 31)2
xx0xx11y0xx1xx00y1
x0
x1
l0 ( x)
xi x0 x1
1次多项式
10
l0 (x )y 0 l1 (x )y 1
l1( x)
xi x0 x1
1次多项式
01
13
➢ 二次插值多项式
已知
xi
x0 x1 x2
yi f(xi) y 0 y 1 y 2
求 L2(x)
(1) 至多2次多项式; (2) L 2 ( x i ) f ( x i ) y i ( i 0 , 1 , 2 ).
故 R n ( x ) K ( x ) x x ( 0 ) x x ( 1 ) ( x x n ).
其中 K (x)是与 x有关的待定函数.
如何求 K (x) ?
8
现把x看成是[a, b]上的固定点, 作辅助函数
x22
x2n
a2
f
(x2
)
1 xn xn2 xnnan f (xn)
系数矩阵A的行列式是Vandermonde行列式,其值为
n
deA t() (xj xi)
i,j0,ij
当插值节点xi (i=0, 1, 2, …, n)互不相同时,此行列
式不为0, 即系数矩阵A可逆. 因此ai (i=0, 1, 2, …, n),
11 2181.031 3 03.
抛物线插值. 取x0=11, x1=12, x1=13, 插值多项式为
L2(x)2.39((1 7x 1 91 1))2 21 x (( 111)3 )32.48((1 4x 2 91 1))1 11 x (( 211)3 )3 2.56(4x 91)1x (1)2 (1 31)11 ( 31)2
xx0xx11y0xx1xx00y1
x0
x1
l0 ( x)
xi x0 x1
1次多项式
10
l0 (x )y 0 l1 (x )y 1
l1( x)
xi x0 x1
1次多项式
01
13
➢ 二次插值多项式
已知
xi
x0 x1 x2
yi f(xi) y 0 y 1 y 2
求 L2(x)
(1) 至多2次多项式; (2) L 2 ( x i ) f ( x i ) y i ( i 0 , 1 , 2 ).
数值分析课件 (第5、6章)

(1 ( La1n) b11) (2) (2) a L 2n b2 = A(3) : b(3) LM M (3) (3) Lamn bn
[
]
( ( ( aij3) = aij2) −mij a22) j (3) ( bi = bi(2) −mi2b22)
(i = 3,L m j = 3,L n) , ; , (i = 3,L m) ,
[
]
( ( ( aij2) = aij1) − mij a11) j (2) bi = bi(1) − mi1b(1) 1
研究生公共课程数学系列
(i = 2,L m j = 2,L n) , ; , (i = 2,L m) ,
机动 上页 下页 首页 结束
(2)
[A
(2)
: b(2)
]
(1 (1 a11) a12) (2 0 a22) = M M (2) 0 am2
(n)
续 述 程 到 成 s 消 计 。 继 上 过 , 直 完 第步 元 算
后 到 原 程 等的 单 程 A 最 得 与 方 组 价 简 方 组 (s+1) x = b,(s+1) 中( ) 上 形 其 A s+1 为 梯 。
(1 (1 (1 a11) a12) L a1n) (2 ( a22) L a22) n = O M (n ann)
( a2k ) k m = (k ) ik akk
(k (akk ) ≠0)
−−−−−→
(i=k+1,Lm) ,
(1 (1 ( a11) a12) L a11) k (2 ( a22) L a22) k O M (k akk ) M 0
数值分析第五章线性方程组-数值分析课件
(1) 1n ( 2) 2n (1) 1 ( 2) 2
即
(1) (1) (1) (1) a11 x1 a12 x 2 a1n x n b1 ( 2) ( 2) ( 2) a 22 x 2 a 2 n x n b2 (n) (n) a x b nn n n
3.2 解线性方程组的直接法(高斯消去法) 3.2.1 高斯消去法的基本思想 先用一个简单实例来说明Gauss法的基本思想 例3.1 解线性方程组
2 x1 x 2 3 x3 1 4 x1 2 x 2 5 x 3 4 x 2x 7 2 1
① ② ③
解: 该方程组的求解过程实际上是将一个方程乘或 除以某个常数,然后将两个方程相加减,逐步减少方 程中的未知数,最终使每个方程只含有一个未知数, 从而得出所求的解。整个过程分为消元和回代两个 部分。
( 3.3 )
解线性方程组(3.1)的高斯(Gauss)消去法的消元 过程就是对( 3.3 )的增广矩阵进行初等行变换。将例 3.1中解三阶线性方程组的消去法推广到一般的 n n 阶线性方程组并记 (1) aij aij , bi(1) bi (i, j 1,2,, n)
则高斯消去法的算法构造归纳为:
需要(n-1)2次乘法运算及(n-1)2次加减法运
算,
第k 步
1 2 3 … n-1 合计
加减法次 数 (n-1)2 (n-2)2 (n-3)2 … 1 n(n-1) (2n-1)/6
乘法次数
(n-1)2 (n-2)2 (n-3)2 … 1 n(n-1) (2n-1)/6
除法次数
(n-1) (n-2) (n-3) … 1 n(n-1)/2
(k ) 只要 akk 0 ,消元过程就可以进行下去,直到 经过n-1次消元之后,消元过程结束,得到与 原方程组等价的上三角形方程组,记为 A(n) x b 1) 11
即
(1) (1) (1) (1) a11 x1 a12 x 2 a1n x n b1 ( 2) ( 2) ( 2) a 22 x 2 a 2 n x n b2 (n) (n) a x b nn n n
3.2 解线性方程组的直接法(高斯消去法) 3.2.1 高斯消去法的基本思想 先用一个简单实例来说明Gauss法的基本思想 例3.1 解线性方程组
2 x1 x 2 3 x3 1 4 x1 2 x 2 5 x 3 4 x 2x 7 2 1
① ② ③
解: 该方程组的求解过程实际上是将一个方程乘或 除以某个常数,然后将两个方程相加减,逐步减少方 程中的未知数,最终使每个方程只含有一个未知数, 从而得出所求的解。整个过程分为消元和回代两个 部分。
( 3.3 )
解线性方程组(3.1)的高斯(Gauss)消去法的消元 过程就是对( 3.3 )的增广矩阵进行初等行变换。将例 3.1中解三阶线性方程组的消去法推广到一般的 n n 阶线性方程组并记 (1) aij aij , bi(1) bi (i, j 1,2,, n)
则高斯消去法的算法构造归纳为:
需要(n-1)2次乘法运算及(n-1)2次加减法运
算,
第k 步
1 2 3 … n-1 合计
加减法次 数 (n-1)2 (n-2)2 (n-3)2 … 1 n(n-1) (2n-1)/6
乘法次数
(n-1)2 (n-2)2 (n-3)2 … 1 n(n-1) (2n-1)/6
除法次数
(n-1) (n-2) (n-3) … 1 n(n-1)/2
(k ) 只要 akk 0 ,消元过程就可以进行下去,直到 经过n-1次消元之后,消元过程结束,得到与 原方程组等价的上三角形方程组,记为 A(n) x b 1) 11
数值分析第五版李庆扬王能超课件第5章(2)
xk
xk+1
f ( xk ) x k 1 [ x k ] (1 ) xk f ( xk ) xk f ( xk ) f ( xk )
xk 1 (1 ) xk , [0, 1]
注: = 1 时就是Newton’s Method 公式。 当 = 1 代入效果不好时,将 减半计算。
§1.牛顿法
定理 (收敛的充分条件)设 f C2[a, b],若
(1) f (a) f (b) < 0;(2) 在整个[a, b]上 f ”不变号且 f ’(x) 0;
(3) 选取 x0 [a, b] 使得 f (x0) f ”(x0) > 0;
则Newton’s Method产生的序列{ xk } 收敛到f (x) 在 [a, b] 的 唯一根。 产生的序列单调有 有根 根唯一 定理 (局部收敛性)设 f C2[a, b]界,保证收敛。 ,若 x* 为 f (x) 在[a, b] 上的根,且 f ’(x*) 0,则存在 x* 的邻域 B ( x*) 使得任取初 值 x0 B ( x*),Newton’s Method产生的序列{ xk } 收敛到x*, 且满足 x * x k 1 f ( x*) lim k ( x * x ) 2 2 f ( x*) k
f ( x) 其中 g( x ) x ,则 f ( x ) f ( x*)2 f ( x*) f ( x*) 1 | g( x*) | 1 1 1 2 f ( x*) n
A1: 有局部收敛性,但重数 n 越高,收敛越慢。 Q2: 如何加速重根的收敛? A2: 将求 f 的重根转化为求另一函数的单根。
这是一个充分条件。 g ( p ) ( k )
数值分析第五章%282012%29
( a , b ), 时 :
b a
f ( x)dx
a
i0
i
f ( xi )
h
n2
f
( n 1)
( )
( n 1) !
n 0
t ( t 1)...( t n ) d t
结论是什么?
b
结论:应用高阶型插值求积公式计算 f ( x )d x 会出现 数值不稳定,而低阶公式(如梯形、辛普生公式) 又因积分区间步长过大使得离散误差大
二次插值求积公式(即Simpson公式)
先 将[a, b] 区 间 二 等 分 : a , 再 作 二 次 la g ra n g e插 值 P2 ( x ) (x (a
抛物型求积公式: ab
, b 2
2
f ( x k )l k ( x ) )( x b ) f (a ) )( a b ) ( ( x a )( x ) ( b a )( b ab 2 ab 2 ) f (b ) )
第五章 数值积分
问题的提出:
f(x)的原函数没有具体的解析表达式或表达式 很复杂不适宜计算,只有f(x)的离散数据点。 如何求
a f ( x )d x ?
I
b
寻找近似计算方法
a f ( x )d x
f (x)
b
思路: 利用插值多项式Pn ( x )
,则积分易算。
5.1 插值型积分公式
b a
b-a ab P2 ( x ) d x f (b ) f (a ) 4 f 6 2
当 f ( x ) 1时
b a
f ( x ) ( b - a ),
数值分析 第5章haha
, 其中
1 m k 1, k m n ,k 1
1
最后, L n 1 L 2 L1 A
(1 )
A
(n)
U , L n 1 L 2 L1b
(1 )
b
(n)
.
A L1 L 2 L n 1U LU ,其中 1 m 21 m 31 m n1 1
2
结束
关于线性方程组的解法一般分为两大类,一类是直接法, 即经过有限次的算术运算,可以求得(5.1)的精确解(假定计 算过程没有舍入误差).如线性代数课程中提到的克莱姆算
法就是一种直接法.但该法对高阶方程组计算量太大,不是
一种实用的算法.实用的直接法中具有代表性的算法是高斯 消元法,其它算法都是它的变形和应用. 另一类是迭代法,它将(5.1)变形为某种迭代公式,给出初 始解 x0 ,用迭代公式得到近似解的序列{xk},k=0,1,2, ,在一定的条件下 xk→x* (精确解).迭代法显然有一个收 敛条件和收敛速度问题. 这两种解法都有广泛的应用,我们将分别讨论,本章介绍 直接法. 3 结束
(5.3) (5.6) (5.8)
回代:解(5.8)得x3,将x3 代入(5.6)得x2,将x2, x3 代入(5.3) 得x1,得到解 x*=(2,1,-1)T
容易看出第一步和第二步相当于增广矩阵[A:b]在作 行变换,用ri表示增广阵[A:b]的第i行: 6 结束
1 A : b 2 1
(1)
(1) x1 b1 (k ) xk b k ( k 1) . x k 1 bk 1 ( k 1) x n bn
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
可以期望,以上式估计的误差作为计算结果 的补偿,可以提高计算精度.
以 pn 及 cn 分别表示第 n 步的预测值和校正值, 则 有以下的“预测-改进-校正-改进”方案(其 中 在 p n+1 与 c n +1 尚 未 计 算 出 来 的 前 提 下 , 以
p n − c n 代替 p n +1 − c n +1 :
对于一个常微分方程: dy y' = = f ( x, y ) , x ∈ [ a , b] dx
为了使解存在,一般要对函数 f 施加限制条件, 例如要求 f 对 y 满足 Lipschitz 条件:
f ( x, y1 ) − f ( x, y2 ) ≤ L y1 − y2
5
6
同时, 一个有解的微分方程通常会有无穷多个解 例如
y ( xn +1 ) − y ( x n ) 代替 h
相对于以上可以直接计算 y n +1 的 Euler 公式(显 式) ,上式是隐式公式. 一般来讲,显式容易计 算,而隐式具有更好的稳定性.
y ' ( x n+1 ) , 则得到后退的 Euler 公
求解上述公式,通常使用迭代法:对于给定的 初值 y n +1 ,计算
差分方程:关于未知序列的方程.
例如: y n +3 = 5 y n + 2 − 3 y n +1 + 4 y n
例如: y ' ' ( x) − a ( x) y '+b( x) y + c( x) = 0
3
4
微分方程的应用情况
实际中,很多问题的数学模型都是微分方程. 常微分方程作为微分方程的基本类型之一,在 理论研究与工程实际上应用很广泛. 很多问题 的数学模型都可以归结为常微分方程. 很多偏 微分方程问题,也可以化为常微分方程问题来 近似求解.
dy = cos(x) ⇒ y = sin(x) + a, ∀a ∈ R dx
为了使解唯一,需要加入一个限定条件. 通常会 在端点出给出,如下面的初值问题:
常微分方程的解是一个函数,但是,只有极少数 特殊的方程才能求解出来,绝大多数是不可解的. 并且计算机没有办法对函数进行运算. 一般考虑 其近似解法,一种是近似解析法,如逼近法、级 数解法等,另一种是本章介绍的数值解法.
解差分方程,求出节点上的函数值
11
12
§2 Euler 方法
注意:对常微分方程 y' = f ( x, y) ,有
y ( x ) = f ( x, y( x )) y''( x) = fx ( x, y( x)) + f y ( x, y( x)) y'( x)
'
2-1 Euler 公式
对常微分方程初值问题:
30
' 预测: pn+1 = yn−1 + 2hyn
例 用 Euler 方法求解初值问题
⎧ y ' = − y − xy 2 ⎨ ⎩ y (0) = 1 x ∈ [0, 0.6]
预测的改进: m n +1
4 = p n +1 − ( p n − c n ) 5
计算: mn' +1 =
f ( x n +1 , m n +1 )
局部截断误差:类似于后退 Euler,可计算出
y ( x n +1 ) − y n +1 ≈ −
h ''' y ( xn ) 12
23
3
24
估计上式中第二式当 y n+1 为准确值时的局部截断 误差:
h y ( xn +1 ) − yn +1 = y ( xn +1 ) − ( y ( xn ) + [ y ' ( xn ) + y ' ( xn +1 )]) 2 h3 (3) ≈ − y ( xn ) 12
(k )
Euler 公式.
18
局部截断误差:
假设 y n = y ( x n ) ,则
y n +1 = y ( xn ) + hf ( xn +1 , y n +1 ) .
则有
yn+1 = hf y (xn+1,η)[ yn+1 − y(xn+1)] + y(xn ) + hy' ( xn ) + h2 y'' (xn ) + O(h3 )
因此பைடு நூலகம்
31 32
' 计算: y n +1 = f ( x n +1 , y n +1 )
例 用改进的 Euler 方法求解初值问题
y (0.2) ≈ y1 = 0.8 y0 − 0.2 x0 y = 0.8
2 0
⎧ y '+ y + y 2 sin x = 0 ⎨ y (0) = 1 ⎩
假设第一式中的 y n−1 及 y n ,以及第二式中的 y n 及
y n+1 均是准确值,则有,
27 28
y ( xn+1 ) − y n +1 1 ≈− 4 y ( xn +1 ) − y n+1
从而可得以下的事后估计式,
4 ⎧ y ( xn +1 ) − y n +1 ≈ − ( y n +1 − yn +1 ) ⎪ ⎪ 5 ⎨ ⎪ y( x ) − y ≈ 1 ( y − y ) n +1 n +1 n +1 n +1 ⎪ 5 ⎩
2
2
——单步、隐式格式
21
22
梯形法同样是隐式公式,可用下列迭代公式求解:
(0) ⎧ yn = yn + hf ( xn , yn ) ⎪ +1 ⎨ ( k +1) h (k ) ⎪ yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , yn +1 )] ⎩ 2
2-4 改进的 Euler 公式
h= b−a m
Euler 公式的局部截断误差:
假设 y n = y ( xn ) 情况下, y ( xn+1 ) − y n+1 称为局部 截断误差.
y( xn+1 ) − yn+1 = y( xn ) + hy ' ( xn ) + y'' ( xn ) 2 h + O(h3 ) 2 y'' ( xn ) 2 − y( xn ) − hf ( xn , y( xn )) = h + O(h3 ) 2
y ( xn +1 ) − yn +1 = y ( xn +1 ) − ( y ( xn −1 ) + 2hf ( xn , y ( xn ))) ≈ h3 (3) y ( xn ) 3
此式与梯形公式相结合,得到如下的预测-校正 公式:
⎧ y n +1 = yn −1 + 2hf ( xn , yn ) ⎪ ⎨ h ⎪ yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , y n +1 )] ⎩ 2
上述用迭代法求解梯形公式虽然提高了精度,但 计算量也很大. 实际上常采用的方法是, 用 Euler 公式求得初始值(预测) ,然后迭代法仅施行一 次(校正)——改进的 Euler 公式:
⎧ yn+1 = yn + f ( xn , yn ) ⎪ ⎨ h ⎪ yn+1 = yn + [ f ( xn , yn ) + f ( xn+1, yn+1 )] ⎩ 2
⎧ dy ⎪ = f ( x, y ), x ∈ [a, b] ⎨ dx ⎪ ⎩ y (a) = y0
7 8
常微分方程的数值问题并不是求函数的近 似,而是求解函数在某些节点的近似值.
例:我们对区间[a, b]做等距分割:
h = (b − a) / n, xi = a + ihi , (i = 0, , n)
⎧ y ' = f ( x, y ) ⎨ ⎩ y ( x0 ) = y 0
= ( fx + f y y')( x, y( x)) = ( fx + f y f )( x, y( x))
数值求解的关键在于消除其中的导数项——称 为离散化. 利用差商近似逼近微分是离散化的一 个基本途径.
13 14
现在假设求解节点为 xi = a + ih(i = 0,1, , m) ,其中
且
可得,
y(xn+1) − yn+1 = hf y (xn+1,η)[ y(xn+1) − yn+1] − h2 '' y (xn ) + O(h3 ) 2
f (xn+1, y(xn+1)) = y' (xn+1) = y' (x n ) + hy'' (xn ) + O(h2 )
19
20
2 考虑到 1 − hf y ( xn+1 ,η ) = 1 + hf y ( xn+1 ,η ) + O(h ) ,则有
1
2-3 梯形公式
由于上述两个公式的局部截断误差绝对值相等, 符号相反,故求其算术平均得到梯形公式:
h yn+1 = yn + [ f ( xn , yn ) + f ( xn+1 , yn+1 )] 2
可以期望,以上式估计的误差作为计算结果 的补偿,可以提高计算精度.
以 pn 及 cn 分别表示第 n 步的预测值和校正值, 则 有以下的“预测-改进-校正-改进”方案(其 中 在 p n+1 与 c n +1 尚 未 计 算 出 来 的 前 提 下 , 以
p n − c n 代替 p n +1 − c n +1 :
对于一个常微分方程: dy y' = = f ( x, y ) , x ∈ [ a , b] dx
为了使解存在,一般要对函数 f 施加限制条件, 例如要求 f 对 y 满足 Lipschitz 条件:
f ( x, y1 ) − f ( x, y2 ) ≤ L y1 − y2
5
6
同时, 一个有解的微分方程通常会有无穷多个解 例如
y ( xn +1 ) − y ( x n ) 代替 h
相对于以上可以直接计算 y n +1 的 Euler 公式(显 式) ,上式是隐式公式. 一般来讲,显式容易计 算,而隐式具有更好的稳定性.
y ' ( x n+1 ) , 则得到后退的 Euler 公
求解上述公式,通常使用迭代法:对于给定的 初值 y n +1 ,计算
差分方程:关于未知序列的方程.
例如: y n +3 = 5 y n + 2 − 3 y n +1 + 4 y n
例如: y ' ' ( x) − a ( x) y '+b( x) y + c( x) = 0
3
4
微分方程的应用情况
实际中,很多问题的数学模型都是微分方程. 常微分方程作为微分方程的基本类型之一,在 理论研究与工程实际上应用很广泛. 很多问题 的数学模型都可以归结为常微分方程. 很多偏 微分方程问题,也可以化为常微分方程问题来 近似求解.
dy = cos(x) ⇒ y = sin(x) + a, ∀a ∈ R dx
为了使解唯一,需要加入一个限定条件. 通常会 在端点出给出,如下面的初值问题:
常微分方程的解是一个函数,但是,只有极少数 特殊的方程才能求解出来,绝大多数是不可解的. 并且计算机没有办法对函数进行运算. 一般考虑 其近似解法,一种是近似解析法,如逼近法、级 数解法等,另一种是本章介绍的数值解法.
解差分方程,求出节点上的函数值
11
12
§2 Euler 方法
注意:对常微分方程 y' = f ( x, y) ,有
y ( x ) = f ( x, y( x )) y''( x) = fx ( x, y( x)) + f y ( x, y( x)) y'( x)
'
2-1 Euler 公式
对常微分方程初值问题:
30
' 预测: pn+1 = yn−1 + 2hyn
例 用 Euler 方法求解初值问题
⎧ y ' = − y − xy 2 ⎨ ⎩ y (0) = 1 x ∈ [0, 0.6]
预测的改进: m n +1
4 = p n +1 − ( p n − c n ) 5
计算: mn' +1 =
f ( x n +1 , m n +1 )
局部截断误差:类似于后退 Euler,可计算出
y ( x n +1 ) − y n +1 ≈ −
h ''' y ( xn ) 12
23
3
24
估计上式中第二式当 y n+1 为准确值时的局部截断 误差:
h y ( xn +1 ) − yn +1 = y ( xn +1 ) − ( y ( xn ) + [ y ' ( xn ) + y ' ( xn +1 )]) 2 h3 (3) ≈ − y ( xn ) 12
(k )
Euler 公式.
18
局部截断误差:
假设 y n = y ( x n ) ,则
y n +1 = y ( xn ) + hf ( xn +1 , y n +1 ) .
则有
yn+1 = hf y (xn+1,η)[ yn+1 − y(xn+1)] + y(xn ) + hy' ( xn ) + h2 y'' (xn ) + O(h3 )
因此பைடு நூலகம்
31 32
' 计算: y n +1 = f ( x n +1 , y n +1 )
例 用改进的 Euler 方法求解初值问题
y (0.2) ≈ y1 = 0.8 y0 − 0.2 x0 y = 0.8
2 0
⎧ y '+ y + y 2 sin x = 0 ⎨ y (0) = 1 ⎩
假设第一式中的 y n−1 及 y n ,以及第二式中的 y n 及
y n+1 均是准确值,则有,
27 28
y ( xn+1 ) − y n +1 1 ≈− 4 y ( xn +1 ) − y n+1
从而可得以下的事后估计式,
4 ⎧ y ( xn +1 ) − y n +1 ≈ − ( y n +1 − yn +1 ) ⎪ ⎪ 5 ⎨ ⎪ y( x ) − y ≈ 1 ( y − y ) n +1 n +1 n +1 n +1 ⎪ 5 ⎩
2
2
——单步、隐式格式
21
22
梯形法同样是隐式公式,可用下列迭代公式求解:
(0) ⎧ yn = yn + hf ( xn , yn ) ⎪ +1 ⎨ ( k +1) h (k ) ⎪ yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , yn +1 )] ⎩ 2
2-4 改进的 Euler 公式
h= b−a m
Euler 公式的局部截断误差:
假设 y n = y ( xn ) 情况下, y ( xn+1 ) − y n+1 称为局部 截断误差.
y( xn+1 ) − yn+1 = y( xn ) + hy ' ( xn ) + y'' ( xn ) 2 h + O(h3 ) 2 y'' ( xn ) 2 − y( xn ) − hf ( xn , y( xn )) = h + O(h3 ) 2
y ( xn +1 ) − yn +1 = y ( xn +1 ) − ( y ( xn −1 ) + 2hf ( xn , y ( xn ))) ≈ h3 (3) y ( xn ) 3
此式与梯形公式相结合,得到如下的预测-校正 公式:
⎧ y n +1 = yn −1 + 2hf ( xn , yn ) ⎪ ⎨ h ⎪ yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , y n +1 )] ⎩ 2
上述用迭代法求解梯形公式虽然提高了精度,但 计算量也很大. 实际上常采用的方法是, 用 Euler 公式求得初始值(预测) ,然后迭代法仅施行一 次(校正)——改进的 Euler 公式:
⎧ yn+1 = yn + f ( xn , yn ) ⎪ ⎨ h ⎪ yn+1 = yn + [ f ( xn , yn ) + f ( xn+1, yn+1 )] ⎩ 2
⎧ dy ⎪ = f ( x, y ), x ∈ [a, b] ⎨ dx ⎪ ⎩ y (a) = y0
7 8
常微分方程的数值问题并不是求函数的近 似,而是求解函数在某些节点的近似值.
例:我们对区间[a, b]做等距分割:
h = (b − a) / n, xi = a + ihi , (i = 0, , n)
⎧ y ' = f ( x, y ) ⎨ ⎩ y ( x0 ) = y 0
= ( fx + f y y')( x, y( x)) = ( fx + f y f )( x, y( x))
数值求解的关键在于消除其中的导数项——称 为离散化. 利用差商近似逼近微分是离散化的一 个基本途径.
13 14
现在假设求解节点为 xi = a + ih(i = 0,1, , m) ,其中
且
可得,
y(xn+1) − yn+1 = hf y (xn+1,η)[ y(xn+1) − yn+1] − h2 '' y (xn ) + O(h3 ) 2
f (xn+1, y(xn+1)) = y' (xn+1) = y' (x n ) + hy'' (xn ) + O(h2 )
19
20
2 考虑到 1 − hf y ( xn+1 ,η ) = 1 + hf y ( xn+1 ,η ) + O(h ) ,则有
1
2-3 梯形公式
由于上述两个公式的局部截断误差绝对值相等, 符号相反,故求其算术平均得到梯形公式:
h yn+1 = yn + [ f ( xn , yn ) + f ( xn+1 , yn+1 )] 2