当前位置:文档之家› 最新9常微分方程数值解59382

最新9常微分方程数值解59382


0
0.44
可以看出误差随着计算在积累。
➢ 欧拉公式的改进:
隐式欧拉法 /* implicit Euler method */
向后差商近似导数
y(x1)y(x1) hy(x0) x0
y( x1 ) y0 h f ( x1, y( x1 ))
§1 Euler’s Method x1
yi1 yi h f ( xi1 , yi1 ) (i 0, ... , n 1)
§1 Euler’s Method
梯形公式 /* trapezoid formula */ — 显/隐式两种算法的平均
y i 1 y i h 2 [f( x i,y i) f( x i 1 ,y i 1 )] ( i 0 ,.,.n .1 )
注:的确有局部截断误差 R iy(x i 1)yi 1 O (h 3), 即梯形公式需具要有22个阶初精值度y,0和比y欧1来拉启方动法递有推了进步。 但注意过到程该,公这式样是的隐算式法公称式为,双计步算法时/* 不do得ub不le-用ste到p 迭代法m。ethod */,而前面的三种算法都是单步法 /* single-step method */。
中点欧拉公式 /* midpoint formula */
中心差商近似导数
y(x1)y(x2)2hy(x0)
y (x 2 ) y (x 0 ) 2 h f(x 1 ,y (x 1 ))
x0
x1
x2
y i 1 y i 1 2 h f ( x i,y i)i 1பைடு நூலகம்,.,. n . 1
假设 yi 1y(x i 1),yiy(x i),则可以导出 R iy(xi 1)yi 1O (h 3) 即中点公式具有 2 阶精度。
由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故 称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。 一般先用显式计算一个初值,再迭代求解。
隐式欧拉法的局部截断误差:
R i y(xi1)yi1 h 22 y(xi)O (h3)
即隐式欧拉公式具有 1 阶精度。
例2:dy y2x, y(0)1
dx
y
解:梯形公式为:yk1ykh 2 yk2y x kk yk12y x kk 11
解yk+1出来比较困难,遇到的是一个二次方程,
y 2 k 1 (1 h 2 )y k 1 ((1 h 2 )y k h y x k k) h x k 1 0
改进欧拉法 /* modified Euler’s method */
§1 Euler’s Method
Step 1: 先用显式欧拉公式作预测,算出 yi1 yi h f ( xi , yi )
Step 2: 再将 yi1 代入隐式梯形公式的右边作校正,得到
yi 1
yi
h 2
[
f
(
x
i
,
yi
y5= y4+hf(x4, y4)=-0.3333 y6= y5+hf(x5, y5)=0
xk
y(xk)
yk
ek
1.2
- 0.96
-1
0.04
1.4
-0.84 -0.9333 0.0933
1.6
-0.64
-0.8
0.16
1.8
-0.36
-0.6
0.24
2.0
0
-0.3333 0.3333
2.2
0.44
xk
yk
y(xk)
ek
0.1
1.0959691
1.0954451
0.000464
0.2
1.1840966
1.1832160
0.000881
0.3
1.2662014
1.2649111
0.001290
0.4
1.3433602
1.3416408
0.001719
0.5
1.4164019
1.4142136
0.002188
)
f ( xi1,
yi1 )]
y i 1 y i h 2 f( x i,y i) fx i 1 ,y i h f( x i,y i) ( i 0 ,.,n . 1 .)
注:此法亦称为预测-校正法 /* predictor-corrector method */。 可以证明该算法具有 2 阶精度,同时可以看到它是个单 步递推格式,比隐式公式的迭代求解过程简单。后面将 看到,它的稳定性高于显式欧拉法。
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单 稳定性最好 精度提高
精度提高, 显式
§1 Euler’s Method
精度低 精度低, 计算量大 计算量大
多一个初值, 可能影响精度
withCaaollnft’ththeyiDetoaodpudmioOyvWsgsoaaaKsiudvkenib,levetltlal,ahmeeigcntt?iena’etssalkalgymefeoste?rwmgirtuehleaoduyt…any possible.
9常微分方程数值解59382
例1:
d d
y x
2y x
2
y 1 1
步长h=0.2
解:h=0.2 , xi=1+ih, 精确解为:y=x2-2x
y1= y0+hf(x0, y0)=-1
y2= y1+hf(x1, y1)=-0.9333
y3= y2+hf(x2, y2)=-0.8 y4= y3+hf(x3, y3)=-0.6
0.6
1.4759556
1.4832397
0.002716
0.7
1.5525141
1.5491933
0.003321
0.8
1.6164748
1.6124515
0.004023
0.9
1.6781664
1.6733201
0.004746
1.0
1.7378674
1.7320508
0.005817
§3 龙格 - 库塔法 /* Runge-Kutta Method */
可即以:预测y 校p 正y k方 法h ( y来k 求2:yxky kk )1 y k h 2f(x k,y k) fx k 1 ,y k hf(x k,y k)
y
c
yk
h( y p
2 xk1 ) yp
yk1
1 2
(
y
p
yc)
y k 1 y k h 2 f(x k,y k) fx k 1 ,y k h f(x k,y k)
建立高精度的单步递推格式。
单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一斜 率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所 能达到的最高精度为2阶。
相关主题