常微分方程初值问题的的数值解法

合集下载

常微分方程打靶法

常微分方程打靶法

常微分方程打靶法
常微分方程打靶法是一种解常微分方程初值问题的数值解法。

它的基本思想是通过将初值问题转化为一个对参数的非线性方程,然后使用数值迭代的方法来逼近该非线性方程的解。

具体步骤如下:
1. 将常微分方程的初值问题表示为一个一阶方程组的形式。

2. 假设参数的初值,并将问题转化为一个求解非线性方程的问题。

3. 对于每个猜测的参数值,使用常微分方程的数值解法(例如欧拉法或龙格-库塔法)来求解对应的一阶方程组。

4. 根据数值解的结果,计算逼近解的误差。

5. 使用数值迭代的方法(如牛顿法)来更新参数的值,直到逼近解的误差满足预设的要求。

6. 重复步骤3~5,直到得到满足要求的逼近解。

通过常微分方程打靶法,可以有效地求解一些常微分方程初值问题,尤其是对于无解析解的情况。

然而,该方法的收敛性和稳定性需要根据具体的问题来评估,并且在实际应用中需要对参数的初值选择和迭代过程进行合理的调整。

微分方程初值问题的数值解法

微分方程初值问题的数值解法

积分法:
yk 1 yk h f ( xk , yk ) y ( x0 ) y0
积分项利用矩形公式计算
(1) y( xk 1 ) y( xk )
xk 1
xk
f (t , y(t ))dt
(★)

xk 1
xk
f (t , y(t ))dt h f ( xk , yk ) y( xk 1 ) y( xk ) h f ( xk , yk )
引言
初值问题的数值解法:求初值问题的解在一系列节点的值 y ( xn )的近似值 yn 的方法.本章数值解法的特点:都是采用“步进 式”,即求解过程顺着节点排列的次序一步步向前推进. 常微分方程初值问题: dy f ( x, y ), x [a, b] dx y ( x0 ) y0
替 f (x , y)关于 y 满足Lipschitz条件. 除了要保证(1)有唯一解外,还需保证微分方程本身是稳定的,即 (1)的解连续依赖于初始值和函数 f (x , y). 也就是说, 当初始值 y0 及函数 f (x , y)有微小变化时, 只能引起解的微小变化.
注: 如无特别说明,总假设(1)的解存在唯一且足够光滑. 在 f 连续有界, 则 f (x , y)对变量 y 可微的情形下, 若偏导数 y 可取L为
也称折线法 x
2. 梯形法
若采用梯形公式计算(★)中的积分项,则有 h y ( xk 1 ) y ( xk ) [ f ( xk , y ( xk )) f ( xk 1 , y ( xk 1 ))] 2 h yk 1 yk [ f ( xk , yk ) f ( xk 1 , yk 1 )] 2 称之为梯形公式.这是一个隐式公式,通常用迭代法求解.具体做 法: (0) (0) 先用Euler法求出初值 yk ,1 即 ,将其代入梯形公式 yk 1 yk h f ( xk , yk ) 的右端,使之转化为显式公式,即 h ( l 1) (l ) yk 1 yk [ f ( xk , yk ) f ( xk 1 , yk (☆ ) 1 )] 2

第五章 常微分方程初值问题数值解法

第五章 常微分方程初值问题数值解法

则有
yn 1 yn hf ( xn , yn )
( 5.2 ) Euler格式
例5.1 用Euler格式解初值问题
2x y y y y (0) 1
取步长h=0.1.
(0 x 1)
Euler格式的具体形式为
y n 1 y n hf ( x n , y n ) 2 xn yn 0.1( yn ) yn 0.2 xn 1.1 yn yn
计算公式的精度 常以Taylor展开为工具来分析计算公式的精度. 为简化分析,假定yn是准确的,即在 yn y ( xn ) 的前提下估计误差 y ( xn 1 ) yn 1 Euler格式的局部截断误差 由 从而 局部截断误差
f ( xn , yn ) f ( xn , y ( xn )) y '( xn ) y ( xn 1 ) yn 1 y ( xn 1 ) ( yn hf ( xn , yn )) y ( xn 1 ) y ( xn ) hy '( xn )
y ( xn ), y ( xn 1 ), 的近似值 y1 , y2 , , yn , yn 1 ,
相邻两个节点的间距 h xi 1 xi 称为步长,步 长可以相等,也可以不等.本章总是假定h为定数, 称为定步长,这时节点可表示为
xn x0 nh , n 0,1, 2,
由f ( xn 1 , yn 1 ) f ( xn 1 , y ( xn 1 )) f y ( xn 1 , )( yn 1 y ( xn 1 )) f ( xn 1 , y ( xn 1 )) y '( xn 1 )(在xn点Taylor展开) h2 y '( xn ) hy ''( xn ) y '''( xn ) ... 2 3 2 h h 因此yn 1 y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 4 h f y ( xn 1 , )( yn 1 y ( xn 1 )) 2 h2 h3 y ( xn 1 ) y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 3!

课题10常微分方程初值问题的数值方法

课题10常微分方程初值问题的数值方法

课题10. 常微分方程初值问题的数值方法一.问题提出(1)利用欧拉方法和改进的欧拉方法求解初值问题:dy/dx=4*x/y-x*y; y(0)=3; 其中0<x<=2二.问题算法、c语言编程和上机运算结果1.欧拉法算法:输入微分方程f(x,y);输入积分部数n;输入初值x0,y0;输入步长h;利用k1=f(xn,yn)y(n+1)=yn+k1*h;n=0,1,2……采取不断循环计算;输出x1,x2,……xn.程序:/*微分方程*/float f(x,y)float x,y;{float z;z=4*x/y-x*y;return(z);}/* 欧拉法*/float EULAR(f)float (*f)();{int i,n;float x0,y0,x,y,k1,h;printf("\n请输入积分步数n:");scanf("%d",&n);printf("\n请输入初值x(0) y(0):");scanf("%f%f",&x0,&y0);printf("\n请输入步长h:");scanf("%f",&h);printf("\n x y"); printf("\n %f %f",x0,y0); for(i=1;i<=n;i++){x=x0+h;k1=(*f)(x0,y0);y=y0+h*k1;printf("\n %f %f",x,y); x0=x;y0=y;}}main(){EULAR(f);}结果:(1)h=0.1时(2)h=0.2时(3)h=0.4时2.改进的欧拉法算法:输入微分方程f(x,y);输入积分部数n;输入初值x0,y0;输入步长h;利用k1=f(xn,yn)k2=f(xn+h,yn+h*k1)y(n+1)=yn+(k1+k2)/2;n=0,1,2……采取不断循环计算;输出x1,x2,……xn.程序:/*微分方程*/float f(x,y)float x,y;{float z;z=y-2.0*x/y;return(z);}/* 改进欧拉法*/float EULAR(f)float (*f)();{int i,n;float x0,y0,x,y,k1,k2,h;printf("\n请输入积分步数n:");scanf("%d",&n);printf("\n请输入初值x(0) y(0):");scanf("%f%f",&x0,&y0);printf("\n请输入步长h:");scanf("%f",&h);printf("\n x y"); printf("\n %f %f",x0,y0); for(i=1;i<=n;i++){x=x0+h;k1=(*f)(x0,y0);k2=(*f)(x,y0+h*k1);y=y0+h*(k1+k2)/2.0;printf("\n %f %f",x,y); x0=x;y0=y;}}main(){EULAR(f);}结果:(1)当h=0.1时(2)当h=0.2时(3)当h=0.4时三.结果分析讨论1.对比欧拉法,改进的欧拉法和精确解的结果可知,改进的欧拉法所得到结果的精度比欧拉法的大,这是因为改进的欧拉法融入了属于隐式公式的梯形公式,它的计算数值解的精度要比欧拉公式好。

常微分方程数值解法

常微分方程数值解法
n

h
2
所以,只要令
2
f
xn
f n f yn O ( h )
3
1+2=1, 2=1/2, 2=1/2
(7.4)
若取=1,则得1=2=1/2,=1,此时公式(8.3)就是改进的 Euler公式; 若取1=0,则得2=1,==1/2,公式(8.3)为
y n 1 y n hK 2 K 1 f (xn , yn ) K f ( x 1 h, y 2 n n 2
……
……
f ( x n P h, y n h
i 1
p 1
pi
Ki)
其中i,i,ij为待定参数. 若此公式的局部截断误差为
O(h3),称此公式为p阶Runge-kutta方法,简称p阶R-K方法.
对于p=2的情形, 应有
K 1 f (xn , yn ) K f ( x h , y hK ) n n 1 2
显式表示出来,称这类差分公式为显式公式,而梯形公式中,
需要更多的计算量,但其计算稳定性较好.
§2 改进的Euler方法和Taylor展开方法
§2.1 改进的Euler方法 从数值积分的角度来看,梯形公式
y0
y n 1 y n h 2 , n 0 ,1, 2 , N 1 [ f ( x n , y n ) f ( x n 1 , y n 1 )]
2
1
分别取步长h=0.2 ,0.1 ,0.05,计算结果如下
h
h=0.2
h=0.1
h=0.05
xn 0.00 0.40 0.80 1.20 1.60 2.00 0.00 0.40 0.80 1.20 1.60 2.00 0.00 0.40 0.80 1.20 1.60 2.00

计算方法 第七章常微分数值解

计算方法 第七章常微分数值解

1. 整体截断误差和局部截断误差 整体截断误差:数值解 yn和精确解 y(xn) 之差
dy f (x, y) dx
(1)
y(x0 ) y0
en y( xn ) yn
整体截断误差除与 xn步计算有关外,还与 xn1,, x1的计算
有关
分析计算中的某一步,显式单步法的一般形式可写为:
yn1 yn hQ(xn , yn , h)
x0
解 : f ( x, y) y x 1,由Euler公式
yn1 yn h( yn xn 1)
代入h 0.1,有yn1 0.9 yn 0.1( xn 1), 依次算得果如下:
n0 1 2 3
4
5
xn 0 0.1 0.2 0.3 0.4
0.5
yn 1.0 1.0 1.01 1.029 1.0561 1.09049
一、Runge-Kutta法的基本思想(1)
若用p阶Taylor多项式近似函数y( xn1 )有:
yn1
y( xn1 )
y( xn )
hy'( xn )
h2 2!
y"( xn )
hp P!
y( p)( xn )
其中y'( x)
f ( x, y),
y'' ( x)
f
' x
(
x,
y
)
f
' y
(例:考察初值问题来自y( x) 30y( x) 在区间[0, 0.5]上的解。
y(0) 1
分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。
节点 xi 0.0 0.1
0.2 0.3 0.4
0.5
欧拉显式 欧拉隐式

常微分方程初值问题的数值解法

第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。

在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。

在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。

常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。

在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。

通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。

在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。

二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。

数值分析李庆扬第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

第六章_常微分方程初值问题的数值解法_习题课


h2 h3 y ( x n ) y ( x n ) O(h 4 ) 2 6 而且 y ( x n ) f ( x n , y ( x n )) , y ( x n 1 ) f ( x n 1 , y ( x n 1 )) ,对 y ( x n 1 ) 也在 x n 处作 Talor 展开, y ( x n 1 ) y ( x n ) hy ( x n )
湖北民族学院理学院《数值计算方法》教学辅导材料
陈以平编写
h2 h3 y ( x n ) y ( x n ) O(h 4 ) 2 6 h h h2 h3 y ( x n ) y ( x n ) y ( x n ) y ( x n ) y ( x n ) O(h 4 ) 2 2 2 12 h3 y ( x n ) O(h 4 ) O(h 3 ) 12 h3 所以,梯形公式是 2 阶方法,其截断误差的主项是 y ( x n ) 。 12 y ( x n ) hy ( x n )
y k (0.9 0.1y k sin x k ) 0.1( y k 1 y k 1 sin x k 1 )
2
当 k=0,x0=1, y0=1 时,x1=1.2,有 y y (. . y sin x ) (. sin ) .
y f ( x, y ) 3.求解初值问题 欧拉法的局部截断误差是( y ( x ) y 改进欧拉法的局部截断误差是( ); 四阶龙格-库塔法的局部截断误差是( ). (A)O(h2) (B)O(h3) (C)O(h4) (D)O(h5)
4. 改进欧拉法的平均形式公式是( ) y p y k hf ( x k , y k ) y p y k hf ( x k , y k ) (B) y c y k hf ( x k , y p ) .(A) y c y k hf ( x k , y p ) y k ( y p y c ) y k ( y p y c ) y p y k hf ( x k , y k ) y p y k hf ( x k , y k ) (C) y c y k hf ( x k , y p ) (D) y c y k hf ( x k , y p ) y k h ( y p y c ) y k ( y p y c ) (D) 答案:

第7章-常微分方程初值问题的数值解法

由于f(x0,y0)及(x0,y0) 已知,必有切线方程。
由 点 斜 式 写 出 切 线 方 程 :
dy yy0(xx0)dx(x0,y0) y0(xx0)f(x0,y0)
等 步 长 为 h , 则 x x 0 h , 可 由 切 线 算 出 y 1
y1y0hf(x0,y0)
2021/4/9
10
其 中 , y n 1 是 当 y n y (x n )(精 确 解 )时 由 E u le r法 求 出 的 值 , 即 y n 无 误 差 。
将 y (x n 1 )在 x n 点 T a y lo r展 开 :
y (x n 1 ) y (x n h ) y (x n ) h f(x n ,y (x n )) (h 2 x2 n y ()xn1)
ax0 x1 x2 xn b 在节点上用离散化方法将连续型微分方程 转化成离散型代数方程即差分方程来求解。
具 体 作 法 : 利 用 y(x0)求 出 y(x1)的 近 似 值 y1, 再 由
y1求 出 y2,, 直 到 求 出 yn为 止 。 该 算 法 称 为 步 进
式 或 递 推 式 算 法 。
积 分 用 梯 形 公 式 , 且 令 : yn1y(xn1),yny(xn) 则 得 : yn1ynh 2(f(xn,yn)f(xn1,yn1))
R n 1 y (x n 1 ) y n 1 1 h 2 3y () x n x n 1
与Euler法结合,形成迭代算法,对n0, 1, 2,
yn(0)1ynhf(xn,yn) (75)
y 2021/4/9
(k1) n1
ynh2(f(xn,yn)f(xn1,yn(k1))k0,1,2,
12
2. Euler方法的截断误差
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本章讨论常微分方程初值问题的数值解法
2
考虑一阶常微分方程的初值问题
⎧ dy ⎪ = f ( x, y ) ⎨ dx ⎪ ⎩ y (a ) = y0
x ∈ [a, b]
只要 f (x, y) 在[a, b] × R1 上连续,且关于 y 满足 Lipschitz 条 件,即存在与 x, y 无关的常数 L 使对任意x∈[a, b] ,和y1, y2 ∈ R1 都有 | f ( x, y1) − f ( x, y2 ) | ≤ L| y1 − y2 | 在唯一解。 成立, 则上述问题存
⎧ ⎪ ⎨ ⎪ ⎩ y n +1 = yn + hf ( xn , yn ), h yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , y n +1 )] 2
改进的Euler方法:y0=1,
y1=y0+hf (x0, y0) =1.1, y1=1+01./2 ×[(1−2 ×0/1)+(1.1−2 ×0.1/1.1)] =1.095909, …… y11=…… y11=1.737869.
1 yn +1 = yn + h[ f ( xn , yn ) + f ( xn +1 , yn +1 )] 2
12
称之为梯形公式。这是一个隐式的计算公式,欲求的yn+1需 解一个方程。
3.截断误差
定义 在假设 yn = y(xn),即第 n 步计算是精确的前提下,考 虑的截断误差 εn+1 = y(xn+1) − yn+1 称为局部截断误差
⎧ y n +1 = y n + k1 ⎨ ⎩k1 = hf ( xn ,y n )
n = 0,1,2, ... n = 0,1,2, ...
考察改进的欧拉法,可以将其改写为:
⎧ y n +1 = yn + hf ( xn , yn ) ⎪ ⎨ h ⎪ yn +1 = yn + [ f ( xn , yn ) + f ( xn +1 , y n +1 )] 2 ⎩ 1 ⎧ ⎪ y n +1 = y n + 2 ( k 1 + k 2 ) ⎪ = hf ( x n , y n ) ⎨ k1 ⎪k = hf ( x n + h , y n + k 1 ) 2 ⎪ ⎩
第八章 常微分方程初值问题的数值解法
实际中,很多问题的数学模型都是微分方程。利用微 分方程理论,我们可以研究它们的一些性质。但是,只有 极少数特殊的方程有解析解。对于绝大部分的微分方程是 没有办法求出它的解析解的。 常微分方程作为微分方程的基本类型之一,在自然界 与工程界有很广泛的应用。很多问题的数学表述都可以归 结为常微分方程的定解问题。很多偏微分方程问题,也可 以化为常微分方程问题来近似求解。
求解方法即采用离散化方法,(通常用数值积分、微 分、泰勒展开等)将上述初值问题化成关于离散变量 的相应问题。把这个相应问题的解yn作为y(xn)的近似 值。这样求得的yn就是上述初值问题在节点xn上的数 值解。 不同的离散化导致不同的求解方法。
6
1. 欧拉(Euler)方法(折线法)
几何 意义
a
x1 x2 x3 b
3
方程的几何意义:寻找积分曲线
y0
a
b
4
求解思路:
要计算出解函数 y(x)比较困难,改求曲线上的离散点 a = x0< x1<…< xn= b处的近似函数值
y i ≈ y ( xi ) ( i = 1, ... , n )
y(x)
a
x1
x2
x3
b
5
通常采用等距节点,步长
h = xi+1 − xi (i = 0, ... , n −1)
20
龙格 - 库塔法
高精度的单步递推格式
单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一斜 率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所 能达到的最高精度为2阶。
21
考察欧拉法,可以将其改写为:
y n +1 = y n + hf ( xn ,y n )
定义 若某算法的局部截断误差为 O(hp+1),则称该算法有p 阶精度或称p阶方法。
13
) 欧拉法的局部截断误差:
将 y ( x n +1 )在 x n点展开成泰勒级数: y ( x n +1 ) = y ( x n ) + h y ′ ( x n ) +
h2 2
y ′′(ξ )
欧拉公式: y n +1 = y n + hf ( x n , y n )
n = 0,1,2, ...
8
例 用欧拉法求初值问题
0 .9 ⎧ y ⎪ y' = − 1+ 2x ⎨ ⎪ y( x0 ) = 1 x0 = 0 ⎩
当h = 0.02时在区间[0, 0.10]上的数值解。 方程真解:y( x ) = (1 + 2 x ) −0.45
y n +1 = y n + hf ( xn ,y n )
f ( xn , y n ) 1 h ⎞ ⎛ f ⎜ x n + h, y n + k1 ⎟ 2 2 ⎠ ⎝ 1 h ⎞ ⎛ f ⎜ xn + h, y n + k 2 ⎟ 2 2 ⎠ ⎝ f (x n + h, y n + hk 3 )
2 ⎧k1 = xn − yn ⎪ 2 = + − ( yn + 0.05k1 ) ( 0 . 05 ) k x ⎪ 2 n ⎨ 2 = + − ( yn + 0.05k 2 ) ( 0 . 05 ) k x ⎪ 3 n ⎪k = ( x + 0.1) 2 − ( y + 0.1k ) n n 3 ⎩ 4
T1 = y( xn+1 ) − yn+1 =
h2 2
y′′(ξ )
若y ( x)在[ a, b]充分光滑,令 M = max y′′( x) ,
a < x <b
h2 则 T1 ≤ M ⋅ = O (h 2 ) 2
欧拉法具有 1 阶精度。
14
) 梯形法的局部截断误差:
T2 = y( xn+1 ) − yn+1 = O(h3 )
改进欧拉法yn 1 1.095909 1.184096 1.260201 1.343360 1.416102 1.482956 1.552515 1.616476 1.678168 1.737869 1.795822 1.852242 1.907323 1.961253 2.014207
准确解 1 1.095445 1.183216 1.264911 1.341641 1.414214 1.483240 1.549193 1.612452 1.673320 1.732051 1.788854 1.843909 1.897367 1.949359 2.000000
问题: 为获得更高的精度,应该如何进一步推广?
23
将改进欧拉法推广为:
r ⎧ ⎪ y n +1 = y n + ∑ ω i k i i =1 ⎪ ⎪ ⎨ k 1 = hf ( x n , y n ) ⎪ i −1 ⎪ k i = hf ( x n + α i h , y n + ∑ β ij k j ), ( i = 2 ,3, " , r ) ⎪ j =1 ⎩
y ( xn +1 ) ≈ y ( xn ) + hf ( xn , y ( xn ))
yn +1 = yn + hf ( xn , yn ) ——Euler公式
2. 用梯形公式

则有
xn+1
xn
h f ( x, y ( x))dx ≈ { f ( xn , y ( xn )) + f ( xn +1 , y ( xn +1 ))} 2
22
类似的有三阶Runge-Kutta公式:
⎧ ⎪ y n +1 ⎪ ⎪ k1 = ⎨ ⎪k = ⎪ 2 ⎪k = ⎩ 3 h = yn + (k1 + 4 k 2 + k 3 ) 6 f (xn , yn ) 1 1 f (xn + h, yn + hk 1 ) 2 2 f ( x n + h , y n − hk 1 + 2 hk 2 )
3
)
截断误差阶为 O(h5)。
25
例题: 取步长h = 0.1, 用四阶龙格―库塔法解初值问题的数 值解 y′ = x2 – y (0≤x≤1) y(0) = 1
解 :初值问题的精确解为 y=x2−2x+2−e− x
用四阶龙格―库塔公式
⎧ k1 = ⎪ ⎪k 2 = ⎪ ⎨ ⎪k = ⎪ 3 ⎪ ⎩k 4 =
0 0.0005 0.0005 0.0014 0.0018 0.0021
10
2.梯形公式
一阶方程的初值问题与积分方程
y ( xn +1 ) = y ( xn ) + ∫
是等价的
xn+1
xn
f ( x, y ( x))dx
借助于数值积分,求y(xn+1)的值
11
1. 用左矩形公式

xn+1
xn
f ( x, y ( x))dx ≈ hf ( xn , y ( xn ))
梯形法具有 2 阶精度。
相关文档
最新文档