当前位置:文档之家› 欧拉法与龙格库塔法比较分析

欧拉法与龙格库塔法比较分析

欧拉法与龙格库塔法比较分析
欧拉法与龙格库塔法比较分析

解微分方程的欧拉法,龙格-库塔法简单实例比较 欧拉方法(Euler method)用以对给定初值的常微分方程(即初值问题)求解分为前EULER 法、后退EULER 法、改进的EULER 法。

缺点:

欧拉法简单地取切线的端点作为下一步的起点进行计算,当步数增多时,误差会因积累而越来越大。因此欧拉格式一般不用于实际计算。

改进欧拉格式(向前欧拉公式):

为提高精度,需要在欧拉格式的基础上进行改进。采用区间两端的斜率的平均值作为直线方程的斜率。改进欧拉法的精度为二阶。

算法:

微分方程的本质特征是方程中含有导数项,数值解法的第一步就是设法消除其导数值。对于常微分方程:

(,)dy f x y dx

= [,]x a b ∈ 0()y a y =

可以将区间[,]a b 分成n 段,那么方程在第i x 点有'()(,())i i i y x f x y x =,再用向前差商近似代替导数则为:

((1)())(,())i i i i y x y x f x y x h

+-= 在这里,h 是步长,即相邻两个结点间的距离。因此可以根据i x 点和i y 的数值计算出1i y +来:

1(,)i i i i y y h f x y +=+?0,1,2,i L =

这就是向前欧拉公式。

改进的欧拉公式:

将向前欧拉公式中的导数(,)i i f x y 改为微元两端导数的平均,即上式便是梯形的欧拉公式。

可见,上式是隐式格式,需要迭代求解。为了便于求解,使用改进的欧拉公式: 数值分析中,龙格-库塔法(Runge-Kutta )是用于模拟常微分方程的解的重要的一类隐式或显式迭代法。实际上,龙格-库塔法是欧拉方法的一种推广,向前欧拉公式将导数项简单取为(,)n n f x y ,而改进的欧拉公式将导数项取为两端导数的平均。

龙格-库塔方法的基本思想:

在区间1[,]n n x x +内多取几个点,将他们的斜率加权平均,作为导数的近似。 龙格库塔法的家族中的一个成员如此常用,以至于经常被称为“RK4”或者就是“龙格库塔法”。

令初值问题表述如下。

'(,)y f t y =00()y t y =

则,对于该问题的RK4由如下方程给出:

11234(22)6

n n h y y k k k k +=++++ 其中

1(,)n n k f t y =

21(,)22

n n h h k f t y k =++ 32(,)22

n n h h k f t y k =++ 43(,)n n k f t h y hk =++

这样,下一个值1n y +由现在的值n y 加上时间间隔h 和一个估算的斜率的乘积决

定。该斜率是以下斜率的加权平均:

1k 是时间段开始时的斜率;

2k 是时间段中点的斜率,通过欧拉法采用斜率1k 来决定y 在点2

n h t +的值;

3k 也是中点的斜率,但是这次采用斜率2k 决定y 值;

4k 是时间段终点的斜率,其y 值用3k 决定。

当四个斜率取平均时,中点的斜率有更大的权值: 1234226

k k k k slope +++= RK4法是四阶方法,也就是说每步的误差是5h 阶,而总积累误差为4

h 阶。注

意上述公式对于标量或者向量函数(y 可以是向量)都适用。 例子:0.2;0::4h x h ==

下面给出了数值求解该微分方程的简单程序。

其中1234,,,y y y y 分别为向前欧拉公式,改进的欧拉公式,4级4阶龙格-库塔公式及精确解。

结果分析:

图1中显示在2x <时,3种算法与精确值较接近,即误差不大,但当x 继续增加时则4级4阶龙格库塔法较精确,但也有一定限度,当 3.5x >时,计算值与精确值得差别将越来越大。从图2中可以清楚的看到这一结果,其中141''y y y →-,242''y y y →-,343''y y y →-。

图1

图2

瑞刷https://www.doczj.com/doc/a23830728.html,/Ytv4f988JQod

初值问题

《计算机数学基础(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.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ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.63171 y(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.47697 y(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)的近似值。至少保留四位小数。 解此处f(x,y)=8-3y,四阶龙格――库塔法公式为 其中κ1=f(x k,y k);κ2=f(x k+ 0.5h,y k+ 0.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ2);

数值计算方法复习题9

习题九 1. 取步长h = 0.1,分别用欧拉法与改进的欧拉法解下列初值问题 (1);(2) 准确解:(1);(2); 欧拉法:,,, 改进的欧拉法:,,, 2. 用四阶标准龙格—库塔法解第1题中的初值问题,比较各法解的精度。,,, 3. 用欧拉法计算下列积分在点处的近似值。 0.5000,1.1420,2.5011,7.2450 4. 求下列差分格式局部截断误差的首项,并指出其阶数。 (1),2 (2),3; (3),4 (4),4 5.用Euler法解初值问题取步长h=0.1,计算到x=0.3(保留到小数点后4位).

解: 直接将Eulerr法应用于本题,得到 由于,直接代入计算,得到 6.用改进Euler法和梯形法解初值问题取步长 h=0.1,计算到x=0.5,并与准确解相比较. 解:用改进Euler法求解公式,得 计算结果见下表 用梯形法求解公式,得 解得 精确解为 7.证明中点公式(7.3.9)是二阶的,并求其局部截断误差主项. 证明根据局部截断误差定义,得 将右端Taylor展开,得

故方法是二阶的,且局部截断误差主项是上式右端含h3的项。 8.用四阶R-K方法求解初值问题取步长 h=0.2. 解直接用四阶R-K方法 其中 计算结果如表所示: 9.对于初值问题 解因f'(y)=-100,故由绝对稳定区间要求(1)用Euler法解时, (2)用梯形法解时,绝对稳定区间为,由因f 对y是线性的,故不用迭代,对h仍无限制。(3)用四阶R-K方法时, 10. (1) 用Euler法求解,步长h应取在什么范围内计算才稳定?(2) 若用梯形法求解,对步长h有无限制? (3) 若用四阶R-K方法求解,步长h如何选取?

计算方法及答案汇总

《计算方法》练习题一 一、填空题 1. 14159.3=π的近似值3.1428,准确数位是( )。 2.满足d b f c a f ==)(,)(的插值余项=)(x R ( )。 3.设)}({x P k 为勒让德多项式,则=))(),((22x P x P ( )。 4.乘幂法是求实方阵( )特征值与特征向量的迭代法。 5.欧拉法的绝对稳定实区间是( )。 6. 71828.2=e 具有3位有效数字的近似值是( )。 7.用辛卜生公式计算积分 ?≈+1 01x dx ( ) 。 8.设)()1()1(--=k ij k a A 第k 列主元为) 1(-k pk a ,则=-)1(k pk a ( )。 9.已知?? ? ? ??=2415A ,则=1A ( )。 10.已知迭代法:),1,0(),(1 ==+n x x n n ? 收敛,则)(x ?'满足条件( )。 二、单选题 1.已知近似数,,b a 的误差限)(),(b a εε,则=)(ab ε( )。 A .)()(b a εε B.)()(b a εε+ C.)()(b b a a εε+ D.)()(a b b a εε+ 2.设x x x f +=2 )(,则=]3,2,1[f ( )。 A.1 B.2 C.3 D.4 3.设A=?? ? ? ??3113,则化A为对角阵的平面旋转=θ( ). A. 2π B.3π C.4π D.6 π 4.若双点弦法收敛,则双点弦法具有( )敛速. A.线性 B.超线性 C.平方 D.三次 5.改进欧拉法的局部截断误差阶是( ). A .)(h o B.)(2h o C.)(3h o D.)(4 h o 6.近似数2 1047820.0?=a 的误差限是( )。 A. 51021-? B.41021-? C.31021-? D.2102 1 -? 7.矩阵A满足( ),则存在三角分解A=LR 。 A .0det ≠A B. )1(0det n k A k <≤≠ C.0det >A D.0det

证明隐式Euler方法稳定性

第六章数值积分 6.1数值积分基本概念 6.1.1引言 在区间上求定积分 (6.1.1) 是一个具有广泛应用的古典问题,从理论上讲,计算定积分可用Newton-Leibniz公式 (6.1.2) 其中F(x)是被积函数f(x)的原函数.但实际上有很多被积函数找不到用解析式子表达的原函数,例如等等,表面看它们并不复杂, 但却无法求得F(x).此外,有的积分即使能找到F(x)表达式,但式子非常复杂,计算也很困难.还有的被积函数是列表函数,也无法用(6.1.2)的公式计算.而数值积分则只需计算f(x) 在节点xi(i=0,1,…,n)上的值,计算方便且适合于在计算机上机械地实现. 本章将介绍常用的数值积分公式及其误差估计、求积公式的代数精确度、收敛性和稳定性以及Romberg求积法与外推原理等. 6.1.2插值求积公式 根据定积分定义,对及都有 (极限存在)若不取极限,则积分I(f)可近似表示为 (6.1.3) 这里称为求积节点,与f无关,称为求积系数,(6.1.3)称为机械求积公式. 为了得到形如(6.1.3)的求积公式,可在上用Lagrange插值多项式 ,则得

其中 (6.1.4) 这里求积系数由插值基函数积分得到,它与f(x)无关.如果求积公式(6.1.3)中的系数由(6.1.4)给出,则称(6.1.3)为插值求积公式.此时可由插值余项得到 (6.1.5) 这里ξ∈,(6.1.5)称为插值求积公式余项. 当n=1时,,此时 由(6.1.4)可得 于是 (6.1.6) 称为梯形公式.从几何上看它是梯形A bB(见图6-1)的面积近似曲线y=f(x)下的曲边梯形面积,公式(6.1.6)的余项为 (6.1.7)

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法 2

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法. 2.龙格-库塔法。 3.单步法的收敛性与稳定性。 重点、难点 一、微分方程的数值解法 在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。本章我们主要 讨论常微分方程初值问题?????==00 )() ,(y x y y x f dx dy 的数值解法。 数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。 二、欧拉法与改进欧拉法 欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。 将常微分方程),(y x f y ='变为() *+=?++1 1))(,()()(n x n x n n dt t y t f x y x y 1.欧拉法(欧拉折线法) 欧拉法是求解常微分方程初值问题的一种最简单的数值解法。 欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:N a b h N n y x hf y y n n n n -= -=+=+)1,...,1,0(),(1 欧拉法局部截断误差 11121 )(2 ++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。

数值分析--6微分方程数值解习题课

微分方程 初值问题数值解 习题课

一、应用向前欧拉法和改进欧拉法求由如下积分 2 x t y e dt -=? 所确定的函数y 在点x =0.5,1.0,1.5的近似值。 解:该积分问题等价于常微分方程初值问题 2 '(0)0x y e y -?=??=?? 其中h=0.5。其向前欧拉格式为 2 ()100ih i i y y he y -+?=+?? =?? 改进欧拉格式为 22()2(1)10()20 ih i h i i h y y e e y --++? =++???=? 将两种计算格式所得结果列于下表

二、应用4阶4步阿达姆斯显格式求解初值问题 '1(0)1y x y y =-+??=? 00.6x ≤≤ 取步长h=0.1. 解:4步显式法必须有4个起步值,0y 已知,其他3个123,,y y y 用4阶龙格库塔方法求出。 本题的信息有: 步长h=0.1;结点0.1(0,1, ,6)i x ih i i ===; 0(,)1,(0)1f x y x y y y =-+== 经典的4阶龙格库塔公式为

11234(22)6 i i h y y k k k k +=++++ 1(,)1i i i i k f x y x y ==-+ 121(,)0.05 1.0522 i i i i hk h k f x y x y k =++=--+ 232(,)0.05 1.0522 i i i i hk h k f x y x y k =++=--+ 433(,)0.1 1.1i i i i k f x h y hk x y k =++=--+ 算得1 1.0048375y =,2 1.0187309y =,3 1.0408184y = 4阶4步阿达姆斯显格式 1123(5559379) 24i i i i i i h y y f f f f +---=+-+- 1231 (18.5 5.9 3.70.90.24 3.24)24 i i i i i y y y y y i ---=+-+++ 由此算出 4561.0703231, 1.1065356, 1.1488186y y y === 三、用Euler 方法求 ()'1,0101 x y e y x x y =-++≤≤= 问步长h 应该如何选取,才能保证算法的稳定性? 解:本题 (),1x f x y e y x =-++ (),0,01x y f x y e x λ'==-<≤≤

数值分析习 题 六 解 答

习 题 六 解 答 1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。 (1)210(1)(0)2y y y '?=--?=?(2)sin (0)0 x y x e y -'?=+?=? 解:(1)取h=0.1,本初值问题的欧拉公式具体形式为 21(1)(0,1,2,)n n n y y y n +=--= 由初值y 0=y(0)=2出发计算,所得数值结果如下: x 0=0,y 0=2; x 1=0.1,2100(1)211y y y =--=-= x 2=0.2,2211(1)101y y y =--=-= 指出: 可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为 21(sin )(0,1,2,)n x n n n y y h x e n -+=++= 由初值y 0=y(0)=0出发计算,所得数值结果如下: x 0=0,y 0=0; x 1=0.1, 02 1000 (sin )00.1(sin 0)00.1(01)0.1x y y h x e e -=++=+?+=+?+= x 2=0.2, 12 2110.1 (sin )0.10.1(sin 0.1)0.10.1(0.10.9)0.2 x y y h x e e --=++=+?+=+?+= 指出: 本小题的求解过程中,函数值计算需要用到计算器。 2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。 22(00.5) (0)1 y x y x y '?=-≤≤? =? 解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为 2 1(2)(0,1,2,)n n n n y y h x y n +=+-= 由初值y 0=y(0)=1出发计算,所得数值结果如下: x 0=0,y 0=1; x 1=0.1,2 21000(2)10.1(021)0.8y y h x y =+-=+?-?= x 2=0.2,222111(2)0.80.1(0.120.8)0.641y y h x y =+-=+?-?=

数值计算方法复习题9

习题九 1. 取步长h = ,分别用欧拉法与改进的欧拉法解下列初值问题(1);(2) 准确解:(1);(2); 欧拉法:,,, 改进的欧拉法:,,, 2. 用四阶标准龙格—库塔法解第1题中的初值问题,比较各法解的精度。,,, 3. 用欧拉法计算下列积分在点处的近似值。 ,,, 4. 求下列差分格式局部截断误差的首项,并指出其阶数。(1),2 (2),3;(3),4 (4),4 5.用Euler法解初值问题取步长h=,计算到x=(保留到小数点后4位).

解:直接将Eulerr法应用于本题,得到 由于,直接代入计算,得到 6.用改进Euler法和梯形法解初值问题取步长h=,计算到x=,并与准确解相比较. 解:用改进Euler法求解公式,得 计算结果见下表 用梯形法求解公式,得 解得 精确解为 7.证明中点公式(7.3.9)是二阶的,并求其局部截断误差主项. 证明根据局部截断误差定义,得 将右端Taylor展开,得

故方法是二阶的,且局部截断误差主项是上式右端含h3的项。 8.用四阶R-K方法求解初值问题取步长h=.解直接用四阶R-K方法 其中 计算结果如表所示: 9.对于初值问题 解因f'(y)=-100,故由绝对稳定区间要求(1)用Euler法解时, (2)用梯形法解时,绝对稳定区间为,由因f对y是线性的,故不用迭代,对h仍无限制。(3)用四阶R-K方法时, 10. (1) 用Euler法求解,步长h应取在什么范围内计算才稳定(2) 若用梯形法求解,对步长h有无限制(3) 若用四阶R-K方法求解,步长h如何选取 解:用四阶显式Adams公式先要算出,而,其余3点可用四阶R-K方法计算。由,得

浅论费马小定理

独创性声明 本人声明所呈交的学位论文是本人在老师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:日期: 学位论文版权使用授权书 本学位论文作者授权长江师范学院可以将学位论文的全部或部分内容编入有关数据库进行检索,允许论文被查阅和借阅,可以采用影印、缩印或其它复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名:指导教师签名: 日期:日期:

摘要 费马小定理是数论中重要定理之一。它不仅仅可以解决很多数论中的问题,还可以证明很多数论中的重要定理,它在素性检验中也有很多应用。 本论文第一章简单阐述了费马小定理的历史背景以及要证明费马小定理的准备知识,用六种不同方法对费马小定理进行了证明。第二章阐述了主要阐述了费马小定理在素性检验中的应用,给出了Strassen Solovay 素性测试算法。 关键词:费马;费马小定理;素性判别;素数

ABSTRACT Fermat's little theorem is one of most important theorems in number theory. It can not only solve many problems, but also can prove a lot of important theorems in number theory. It has a lot of applications in primality test. In this paper, the first chapter simply expounds the historical background and prepared knowledge of Fermat's little theorem. We use six different methods to prove Fermat's little theorem. And the second chapter mainly expounds the applications of the Fermat's little theorem, Solovay - Strassen primality test is presented. Key words:Fermat; Fermat's little theorem; primality test;prime number

相关主题
相关文档 最新文档