计算方法 14 欧拉公式-常微分方程
常微分方程数值解法的误差分析汇总

淮北师范大学2013届学士学位论文常微分方程数值解法的误差分析学院、专业数学科学学院数学与应用数学研究方向计算数学学生姓名李娜学号 20091101070指导教师姓名陈昊指导教师职称讲师年月日常微分方程数值解法的误差分析李娜(淮北师范大学数学科学学院,淮北,235000)摘要自然界与工程技术中的很多现象,往往归结为常微分方程定解问题。
许多偏微分方程问题也可以化为常微分方程问题来近似求解。
因此,研究常微分方程的数值解法是有实际应用意义的。
数值解法是一种离散化的数学方法,可以求出函数的精确解在自变量一系列离散点处的近似值。
随着计算机计算能力的增强以及数值计算方法的发展,常微分方程的数值求解方法越来越多,比较成熟的有Euler 法、后退Euler法、梯形方法、Runge—Kutta方法、投影法和多步法,等等.本文将对这些解的误差进行分析,以求能够得到求解常微分数值解的精度更好的方法。
关键词:常微分方程, 数值解法, 单步法, 线性多步法, 局部截断误差Error Analysis of Numerical Method for Solving theOrdinary Differential EquationLi Na(School of Mathematical Science, Huaibei Normal University, Huaibei, 235000)AbstractIn nature and engineering have many phenomena , definite solution of the problem often boils down to ordinary differential equations. So study the numerical solution of ordinary differential equations is practical significance. The numerical method is a discrete mathematical methods, and exact solution of the function can be obtained in the approximation of a series of discrete points of the argument.With the enhanced computing power and the development of numerical methods,ordinary differential equations have more and more numerical solution,there are some mature methods. Such as Euler method, backward Euler method, trapezoidal method, Runge-Kutta method, projection method and multi-step method and so on.Therefore, numerical solution of differential equation is of great practical significance. Through this paper, error of these solutions will be analyzed in order to get a the accuracy better way to solve the numerical solution of ordinary differential.Keywords:Ordinary differential equations, numerical solution methods, s ingle ste p methods, l inear multi-step methods, local truncation error目录引言 (1)一、常微分方程 (1)1、定义 (1)2、常微分方程初值问题描述 (2)3、数值解法的基本思想与途径 (2)4、数值解的分类 (3)5、问题(1)解的存在惟一性定理 (4)二、几种常用的数值解法及其误差分析 (4)1、单步法 (4)(一)、欧拉法 (5)(二)、向后EuIer方法 (6)(三)、- 法 (7)(四)、改进欧拉法 (7)(五)Runge—Kutta方法 (9)2、线性多步法 (14)总结 (16)参考文献: (17)引 言自然界中很多事物的运动规律可用微分方程来刻画。
初值问题——精选推荐

初值问题《计算机数学基础(2)》辅导六第14章常微分⽅程的数值解法⼀、重点内容1.欧拉公式:(k=0,1,2,…,n-1)局部截断误差是O(h2)。
2. 改进欧拉公式:或表⽰成:平均形式:局部截断误差是O(h3)。
3. 四阶龙格――库塔法公式:其中κ1=f(x k,y k);κ2=f(x k+0.5h,y k+0.5hκ1);κ3=f(x k+0.5h,y k+0.5hκ2);κ4=f(x k+h,y k+hκ3)局部截断误差是O(h5)。
⼆、实例例1⽤欧拉法解初值问题取步长h=0.2。
计算过程保留4位⼩数。
解h=0.2,f(x,y)=-y-xy2。
⾸先建⽴欧拉迭代格式=0.2y k(4-x k y k) (k=0,1,2)当k=0,x1=0.2时,已知x0=0,y0=1,有y(0.2)≈y1=0.2×1(4-0×1)=0.8当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有y(0.4)≈y2=0.2×0.8×(4-0.2×0.8)=0.6144当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有y(0.6)≈y3=0.2×0.6144×(4-0.4×0.6144)=0.4613 例2 ⽤欧拉预报-校正公式求解初值问题取步长h=0.2,计算y(1.2),y(1.4)的近似值,⼩数点后⾄少保留5位。
解步长h=0.2,此时f(x,y)=-y-y2sin x欧拉预报-校正公式为:有迭代格式:当k=0,x0=1,y0=1时,x1=1.2,有=y0(0.8-0.2y0sin x0)=1×(0.8-0.2×1sin1)=0.63171y(1.2)≈y1=1×(0.9-0.1×1×sin1)-0.1(0.63171+0.631712sin1.2)=0.71549 当k=1,x1=1.2,y1=0.71549时,x2=1.4,有=y1(0.8-0.2y1sin x1)=0.71549×(0.8-0.2×0.71549sin1.2)=0.47697y(1.4)≈y2=0.71549×(0.9-0.1×0.71549×sin1.2)-0.1(0.47697+0.476972sin1.4)=0.52611例3写出⽤四阶龙格――库塔法求解初值问题的计算公式,取步长h=0.2计算y(0.4)的近似值。
计算方法 常微分方程初值问题数值解法-Euler公式-龙格-库塔法

[xi , xi 1 ]上积分得,
y(xi 1 ) y(xi )
xi 1
xi
f[x, y(x)]dx
(9.4 )
改用梯形方法计算其积分项,即
xi 1
x i 1 x i [f(x i , y(x i )) f(x i 1 , y(x i 1 ))] 2
xi
f[x, y(x)]dx
0 1 n1 n
… , y(xn ) (未知) 处的函数值 y(x 0 ), y(x1 ),
, yn 的近似值 y 0 , y1 ,…
y=y(x)
a=x0 x1
x2
x3
xn=b
• 相邻两个节点的间距 h xi 1 xi 称为步长,
步长可以相等,也可以不等。
• 本章总是假定h为定数,称为定步长,这时节 点可表示为
第9章 常微分方程初值问题数值解法
§9.1 引言
包含自变量、未知函数及未知函数的导数的方程称 为微分方程。
自变量个数只有一个的微分方程称为常微分方 程。
微分方程中出现的未知函数最高阶导数的阶数 称为微分方程的阶数。 如果未知函数y及其各阶导数
y, y, … , y
(n)
都是一次的,则称其为线性的,否则称为非线性的。
• 如下是一些典型方程求解析解的基本方法 可分离变量法、 常系数齐次线性方程的解法、 常系数非齐次线性方程的解法等。
• 但能求解的常微分方程仍然是很少的,大多数
的常微分方程是不可能给出解析解。例如,一
阶微分方程
y x y
2
2
的解就不能用初等函数及其积分来表达。
• 从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。 • 本章主要讨论一阶常微分方程初值问题
第五章:常微分方程数值解法第一节欧拉法

欧拉近似方法求常微分方程

欧拉近似方法求常微分方程朱翼1、编程实现以下科学计算算法,并举一例使用之。
“欧拉近似方法求常微分方程”算法说明:欧拉法是简单有效的常微分方程数值解法,欧拉法有多种形式的算法,其中简单欧拉法是一种单步递推算法。
其基本原理为对简单的一阶方程的初值问题:y’=f(x,y)其中y(x0 )=y0欧拉法等同于将函数微分转换为数值微分,由欧拉公式可得y n+1 =y n+hf(x n ,y n)程序代码:function [tout,yout]=myeuler(ypfun,t0,tfinal,y0,tol,trace) %初始化pow=1/3;if nargin<5,tol=1.e-3;endif nargin<6,trace=0;endt=t0;hmax=(tfinal-t)/16;h=hmax/8;y=y0(:);chunk=128;tout=zeros(chunk,1);yout=zeros(chunk,length(y));k=1;tout(k)=t;yout(k,:)=y.';if trace %绘图 clc,t,h,yendwhile (t<tfinal)&(t+h>t) %主循环if t+h>tfinal,h=tfinal-t;end% Compute the slopesf=feval(ypfun,t,y);f=f(:);%估计误差并设定可接受误差delta=norm(h*f,'inf');tau=tol*max(norm(y,'inf'),1.0);%当误差可接受时重写解if delta<=taut=t+h;y=y+h*f;k=k+1;if k>length(tout)tout=[tout;zeros(chunk,1)];yout=[yout;zeros(chunk,length(y))];endtout(k)=t;yout(k,:)=y.';endif tracehome,t,h,yend% Update the step sizeif delta~=0.0h=min(hmax,0.9*h*(tau/delta)^pow);endendif (t<tfinal)dish('Singularity likely.')tendtout=tout(1:k);yout=yout(1:k,:);流程图:用欧拉法求y’=-y+x+1,y(0)=1。
计算方法-常微分方程初值问题数值解法-Euler公式-龙格-库塔法市公开课获奖课件省名师示范课获奖课

这么就取得了P1点旳坐标: (x1, y1) 。将y1作为y(x1)旳 近似值(想象(x1, y1) 在积分曲线y=y(x)上)
过点P1(x1,y1),作积分曲线y=y(x)旳切线交直线x=x2于
P2点。注意切线 P1P2 旳斜率(近似)为 y(x1 ) f(x1 , y1 )
第9章 常微分方程初值问题数值解法
§9.1 引言
➢ 包括自变量、未知函数及未知函数旳导数旳方程称 为微分方程。
➢ 自变量个数只有一种旳微分方程称为常微分方 程。
微分方程中出现旳未知函数最高阶导数旳阶数 称为微分方程旳阶数。
假如未知函数y及其各阶导数
y, y, … , y(n)
都是一次旳,则称其为线性旳,不然称为非线性旳。
xi1 xi1 f[xi , y(xi )]
代入上式,并用yi近似替代式中y(xi)即可得到 两步欧拉公式
yi1 yi1 2hf(xi , yi ) ( 9.7 )
【注】欧拉措施和梯形措施,都是单步法,其特点是 在计算yi+1时只用到前一步旳信息yi; 而两步欧拉公式 (9.7)中除了yi外,还用到更前一步旳 信息yi-1,即调用了前两步旳信息。
当 x xi1 时,得
yi1 yi f(xi , yi )(xi1 xi )
这么,从x0逐一算出 x1 , x2 , … xn
相应旳数值解
y1 , y 2 , … yn
就取得了一系列旳点: P1, P1,…,Pn。 从图形上看,就取得了一条近似于曲线y=y(x)
旳折线 P1P2P3 … Pn 。
xi x0 ih, i 1,2, … , n
数值解法需要把连续性旳问题加以离散化,从 而求出离散节点旳数值解。
常微分方程的解法

常微分方程的离散化
欧拉(Euler)方法 改进的Euler 方法 龙格—库塔(Runge—Kutta)方法 线性多步法
机动
目录
上页
下页
返回
结束
建立微分方程只是解决问题的第一步,通常需要 求出方程的解来说明实际现象,并加以检验。如 果能得到解析形式的解固然是便于分析和应用的, 但是我们知道,只有线性常系数微分方程,并且 自由项是某些特殊类型的函数时,才可以肯定得 到这样的解,而绝大多数变系数方程、非线性方 程都是所谓“解不出来”的,即使看起来非常简 单的方程 d y = y + x
(15)
其 中 k 2 在 点 ( x n ,y( x n ) 作 了 T ylor 展 开 。 ) 又 可 表 为 (15
2 y n + 1 = y ( x n )+ ( 1 + 2 )h y ( x n )+ 2 h ( f x +
若一种算法的局部截断误差为 ( h
p +1
), 称 该 算 法 具 有 p 阶 精 度 。
显然 p 越大,方法的精度越高。式(9)说明,向前Euler 方法是一阶方法,因此它的精度不高。
§3改进的 欧拉(Euler)方法
3.1 梯形公式 利用数值积分方法将微分方程离散化时,若用梯形公式 计算式(4)中之右端积分,即
将 y ( x ) 在 x n 处 展 开 , 取 一 次 T aylor 多 项 式 近 似 , 得
y ( x n +1 )- y ( x n )=
x n +1 xn
f ( x , y ( x ))dx
( n = 0,1, )
(4)
y ( x n +1 ) y ( x n )+h y ( x n )= y ( x n )+h f ( x n ,y( x n ))
第一章_常微分方程

作业
1. 求方程y2y3y=0的通解。
2. 求方程y2yy0满足初始条件y|x04、 y| x02的特解。
3. 求方程y2y5y 0的通解。
1.2 常系数非齐次线性微分方程
方程
y+py+qy = f(x) (3) 称为二阶常系数非齐次线性微分方程,其
中p、q均为常数,f (x)为非齐次项
一、常数变易法
将方程(3)的特解记为 y(x) c1(x) y1(x) c2(x) y2 (x)
其中y1(x)和 y2 (x)为对应齐次方程的一对线性无关 解。将上述特解带入方程(3)可求解 c1(x)和c2 (x)。
由于 y c1y1 c2 y2 c1 y1 c2 y2 ,若令
c1 y1 c2 y2 0 则 y c1 y1 c2 y2 ,
齐次方程,有
2a1 3a0 3a1x 3x 1 由同幂次系数相等求解得
a1
1
a0
1 3
则非齐次方程的一个特解为
y* x 1 3
B.特殊情况
➢ 如果方程(3)的非齐次项 f(x)正好是对应齐次 方程的解,即各个非齐次项对应的指数
i 0 i
是原方程对应齐次方程的m重特征根,则方 程(3)的特解在原表达式上乘以xm 。
A.基本解法
【例 1.2.2】 求非齐次方程 y 2 y y 3e2x 的通解。 解:假设方程的一个特解为 y*(x) Ae2x ,代入非齐
次方程,有 4Ae2x 2Ae2x Ae2x 3e2x
求得 A 1。因此,方程的一个特解为 y* (x) e2x
又对应齐次方程的通解为 y(x) (c0 +c1x)ex ,因此 非齐次方程的通解为
是方程(1)的两个线性无关的解,方程的通解为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f
(
xn1
,
y(k) n1
)
hL y y 这里,L 是 f(x,y) 关于 y 的利普希茨常数,如果 (k )
n1
n1
选取 h 充分小,使得 hL<1,则当
时,有
,这说明以上迭代公式是收敛的。
y( k 1) n1
yn1
k
梯形公式
对方程
y从 f到( x,积y分) ,得 xn
yn
y( xn1) y( xn )
记
y(0)
0
,取
则 f ( x, y) ex2
h 0.5
于是欧拉x计0 算公0式, x:1 0.5, x2 1.0, x3 1.5, x4 2.0
可得:
yi
1
yi
0.5e x2
(i
0,1, 2, 3)
y0 0
y(0.5) y(1.5)
y1 y3
0.5, 1.07334,
例题
例:利用欧拉方法、改进欧拉方法求解以下初值 问题,其中步长 h 0.1。
y x y, x 0, 0.6
y(0) 0
例题
解:
f (x, y) x y
y0
0
欧拉 h计算公0式.1:
改进欧拉计算公式:
yi1 0.1xi 0.9 yi (i 0,1, 2,L , 6)
理论上就可以保证初值问题的解 y=y(x) 存在并f ( x, y) f ( x, y) L y y
且唯一。
显式欧拉公式
x 在 处的导数 n
可以近似y地(表x示n )成差商
用
y( xn
近似地代替
)
y( xn1 ) y( xn ) ,可将x初n值1 问题x离n散化成
y( xn1) y( xn ) h
P 4
P 3
P 2
P 1
P 0
x
x
x
x
x
0
1
2
3
4
在显式欧拉公式中,除了
外,有 y0 y( x0 )
和
。因此,用显式欧拉公式计算
所得到点f列( x的n散,点y图n ),是一y条(近xn似)欧拉折线。
yn y( xn )Biblioteka 隐式欧拉公式x 在
处的导数
n1
,可以近y似(表x示n成1差) 商
用 代替 ,
的近似
值 ,称这个值为预报值,预报值的精度可能
y 较差,再将n该1预报值代入梯形公式,求得 ,
称这个值为校正值,校正值的精度会有所提高,
如此建立的计算公式称为改进的欧拉公式。
yn1 yn1
yn1
yn
hf
( xn ,
yn )
yn1
yn
h 2
f
xn , yn f
xn1 , yn1
改进的欧拉公式
y 问题离散化n 成为
即
y( xn1 )
y( xn1 ) h
y( xn )
代替
,可将初值
y( xn ) yn1
y( xn1 )
f ( xn1, yn1 )
yn1 yn h
以上公式称为隐式欧拉公式。 yn1 yn hf ( xn1 , yn1 )
(2)
欧拉公式
公式 (1) 和 (2) 均为欧拉公式,但有本质的区
欧拉公式
隐式公式不能直接求解,需采用迭代法求解。用 显式欧拉公式提供迭代初值,其迭代公式为:
y(0) n1
yn hf ( xn , yn )
因为
y( k 1) n1
yn
hf
( xn1,
y ( k 1) n1
)
(k 0,1,L )
yn1
y( k 1) n1
=h
f ( xn1, yn1 )
在实际计算中,通常将改进欧拉公式表述称以下 形式:
yn1
yn
hf
( xn ,
yn )
预报:yn1
yn
h 2
f
xn , yn f
xn1 , yn1
校正: 改进:
y p yn hf ( xn , yn ) yc yn hf ( xn1 , y p )
1
yn1 2 y p yc
0.300 0
0.400 0
0.500
0.000000 0.000000 0.010000 0.029000 0.056100 0.090490
0.000000 0.004837 0.008731 0.011818 0.014220 0.016041
0.000000 0.005000 0.019025 0.041218 0.070802 0.107076
利用数值积分中的梯形公式
f xn1
xn
t, y(t) dt
f xn1
并将x式n 中的
t,
用y(t )代d替t,
h 2
用f
x代n ,替y( xn ) f
xn1, y( xn1 )
可导出
y( xn ) yn
y( xn1 )
yn1
称是此显公式式和为隐梯式形欧公拉yn式公1式。的容易算y看术n 出平,均h2梯。形f公式x实n际, yn f xn1 , yn1
别。式 (1) 是关于
y 的一个可直接进行的计算 n1
公式,这类公式称作显式的;而式 (2) 的右端含
有未知的 ,它实际上是一个关于
y 方程,这类公式称作隐n式1的。
的计算
yn1
yn1 yn hf ( xn , yn )
yn1
yn hf ( xn1 , yn1 )
(n 0,1,L ) (1) (n 0,1,L ) (2)
改进的欧拉公式
可以不难看到,梯形公式虽然提高了精度,但其 算法复杂,在应用迭代公式进行实际计算时,每 迭代一次,都要重新计算函数 f(x,y) 的值,而迭 代又要反复进行若干次,计算量很大。为了控制 计算量,通常只迭代一次就转入下一步的计算, 这样就简化了算法。
改进的欧拉公式
具体的说,先用显式欧拉公式求得
y(1.0) y2 0.88940 y(2.0) y4 1.2604
0.000000 -0.000163 -0.000294 -0.000400 -0.000482 -0.000545
例题
例:利用欧拉方法求以下公式在给出点处的近似
值(取 h 0.5 )。
y( x) x et2 dt
0
x 0.5,1.0,1.5, 2.0
例题
解:问题等价于求解
y e x2 , x 0, 2
为 yn
y( xn )
即
yn1 h
yn
f ( xn , yn )
以上公式y称n为1显式欧y拉n 公式h。f ( xn , yn )
(n 0,1,L )
(1)
为了不引起混淆 表示解
在处
的精确值,而
表示其近似值。
y( xn ) yn
y y(x) xn
显式欧拉公式几何意义
解曲线 欧拉节点 欧拉折线 近似欧拉节点 近似欧拉折线
2016/2017 学年 第一学期(16周)
欧拉公式 – 常微分方程
微分方程数值解法
在科学与工程技术领域中,常需要求解常微分方 程的定解问题。这类问题的最简单形式,是一阶 常微分方程的初值问题。
y f (x, y) 我们知y道( x,0只) 要右y端0函数 f(x,y) 适当光滑,如关
于 y 满足利普希茨条件
yi1 yi1
0.1xi 0.9 yi yi 0.05 ( xi
yi ) ( xi1
(i yi1 )
0,1, 2,L
, 6)
例题
解:计算结果如表所示。
xi yi (欧拉) y(xi ) yi yi (改进欧拉) y( xi ) yi
0.000 0
0.100 0
0.200 0