第六章常微分方程初值问题初步1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

yn1
yn hfn
h2 2!
f
(1) n
hp p!
f
( n
p1)
,其中
fn
f ( xn, yn ),
f
(k n
)
dy
f
(
后退欧拉公式:
yn1 y( x0
yn ) y0
hf
(
xn1
,
yn1
)
其局部截断误差:Tn1 o(h2 )
后退欧拉公式的求解
(n 0,1, )
欧拉公式是关于 yn1的一个直接的计算公式,这种公式称为显式 的;而后退欧拉公式是隐式的。
根本方法:用迭代法将隐式方程逐步显式化,迭代格式为:
yn(k11) yn hf ( xn1, yn(k)1 ), (k 0,1, ) 后退欧拉公式的精度,后退欧拉公式的局部截断误差:
第六章 常微分方程初值问题初步
6.1 基本理论与Euler方法 6.2 Runge-Kutta方法(龙格-库塔法) 6.3用Matlab求解常微分方程的经典例 6.4常微分方程的解析解 6.5 方程组与高阶问题
6.1 基本理论与Euler方法
6.1.1 常微分方程的初值问题 考虑一阶微分方程的初值问题
6.1.7 梯形方法的求解
梯形方法是隐式的,用迭代求解,用欧拉方法提供
的迭代初值的迭代公式为:
yn(0)1
yn
hf
( xn,
yn )
yn( k11)
yn
h 2 [ f ( xn, yn )
f ( xn1, yn(k)1]
(k 0,1,2, )
此迭代格式是收敛的。
6.2 龙格-库塔方法
6.2.1 泰勒级数法
yn yn
f ( xn, yn )
欧拉公式:
yn1 yn hf ( xn , yn ),其中h xi xi1为 步长
可逐步计算出:
y1 y0 hf ( x0 , y0 )
y2 y1 hf ( x1, y1)
6.1.4 欧拉公式的精度
假设 yn y( xn ),即顶点 Pn落在积分曲线 y y( x)上,按欧拉方 法作出的折线 PnPn1便是 y y( x)过点Pn的切线,定出的顶点 Pn1明显 偏离了原来的积分曲线,可见欧拉方法的确精度不高。
局部截断误差:(利用泰勒展开式可得)
Tn1
y( xn1)
yn1
h2 2
y( )
h2 2
y( xn )
( xn xn1)
假定
y(x)区间[a,b]上允分光滑,并令 M
max
a xb
y( xn )
则 Tn1
h2 M
2
o(h2 ),即欧拉方法的局部截断误差与 h2 同阶。
6.1.5 后退的欧拉公式
Lipschitz 条件,则对任意的 x0 [a,b], y0 R ,常微分方程的初值问题在 x [a,b]存在连续可微解。
6.1.2 Euler 基本思想
由数值微分的基本思想, dy 可用差商代替,所以 dx
y( x0
h) h
y( x0 )
f ( x0 , y0 )
若令 y1 y0 hf ( x0 , y0 ),而且可以得到迭代格式
dy
dx
f (x, y)
y( x0 ) y0
如果存在实数 L 0,使得
| f ( x, y1) f ( x, y2 ) | L | y1 y2 | 则称 f 关于 y满足 Lipschitz 条件,其中 L称为 Lipschitz 常数。
定理 6.1 设 f 在区域 D {( x, y) | a x b, y R} 上连续,关于 y 满足
6.1,6 梯形方法的精度
上图中,设顶点 Pn( xn, yn)在积分曲线 y=y(x)上,用 欧拉公式过点 Pn 以斜率 f ( xn, yn ) 引折线交 x xn1 得顶点 A;而后退的欧拉方法则以点Q( xn1, yn1)的斜率 f ( xn, yn )从 顶点Pn引折线交 x xn1得另一顶点 B,从图中可以看出, A 和 B 两点均偏离点 Q 比较远,然而 AB 的中点Pn1却 相当接近点 Q,梯形方法改善了精度。
从初始点 P0( x0, y0 )出发,先依向量场在该点的方向推进到 x x1上一点
P1,再从 P1依向量场方向推进到 x x2上一点 P2,这样下去便可作出一条折线
P0P1P2 。设已作出折线的顶点为 Pn,过 Pn( xn , yn )依向量场的方向再推进到
Pn1( xn1, yn1 )。
yn1 xn1
yn1 yn hf ( xn , yn )
其中的 yn就是 y( xn )。
function E=euler(f,a,b,ya,N) %f为该问题中的函数f(x,y)。%a,b分别为取值范围的左右端点。 %ya为给定初值y(a)。%N为迭代步数。%h为步长。 %输出值为对应每个节点的近似值。 h=(b-a)/N; T=zeros(1,N+1); Y=zeros(1,N+1); T=a:h:b; Y(1)=ya; for j=1:N
Y(j+1)=Y(j)+h*feval('f',T(j),Y(j)); End
T=[T' Y']
在牛顿-柯特斯公式中取n 1得梯形公式为:
【例 6.1】
利用程序解决初中问题:
y
'
y
2x y
(0
x 1)。
y(0) 1
建立一个 f.m 的文件,
function z=f(x,y)
z=y-2*x/y;
取迭代步骤为 10,在命令窗输入
euler('f',0,1,1,10)
实际上,该问题有解 y 1 2x (通过变量分离法可求出),对近似
计算和精确值进行比较:
在Euler算法程序的最后改为 Y1=sqrt(1+2*T); T=[T' Y' Y1'];
可得到解析解和迭代法计算结果比较
6.1.3 微分方程的几何解释 在 xy 平面上,积分曲线上任一点(x,y)的切线斜率等于函数 f(x,y)的值, 如果按函数 f(x,y)在 xy 平面上建立一个向量场,则积分曲线上每一点的切线 方向与向量场在该点的方向相一致。
假设 yn y( xn )
Baidu Nhomakorabea
y( xn1)
yn1
h2 2
y( xn )
6.1.5 梯形公式
梯形公式: yn1
yn
h 2
[
f
(
xn
,
yn
)
f ( xn1, yn1)]后退欧
实质:将欧拉公式与后退欧拉公式的误差估计式算术平均,消除误
差的主要部分
h2 2
yn
梯形方法的几何意义
用几何直观来说明梯形方法的平均化思想。
相关文档
最新文档