欧拉法,梯形法,龙格库塔法

欧拉法,梯形法,龙格库塔法
欧拉法,梯形法,龙格库塔法

数值分析实验报告(6)

实验目的:用欧拉法、梯形法和龙格—库塔法计算例题,分析三种方法的优点和缺点,掌握规律。

实验要求:用不三种方法来解同一个例子,比较误差。

1.欧拉法:

MATLAB程序:

function e=aa(f,a,b,n,x,y0,g)

f=inline(f);

g=inline(g);

h=(b-a)/n;

y(1)=y0;x0=0;

disp(sprintf('i x(i) y(i) yx(i) wucha(i)'));

for i=1:n+1

x(i)=x0+(i-1)*h;

y(i+1)=y(i)+h*f(x(i),y(i));

yx(i)=g(x(i));

wucha(i)=abs(yx(i)-y(i));

disp(sprintf('%d %f %f %f %f',i-1,x(i),y(i),yx(i),wucha(i))); end

运行结果:

>> aa('y-2*x/y',0,1,10,0,1,'(1+2*x)^(1/2)')

i x(i) y(i) yx(i) wucha(i)

0 0.000000 1.000000 1.000000 0.000000

1 0.100000 1.100000 1.095445 0.004555

2 0.200000 1.191818 1.183216 0.008602

3 0.300000 1.277438 1.264911 0.012527

4 0.400000 1.358213 1.341641 0.016572

5 0.500000 1.435133 1.414214 0.020919

6 0.600000 1.508966 1.483240 0.025727

7 0.700000 1.580338 1.549193 0.031145

8 0.800000 1.649783 1.612452 0.037332

9 0.900000 1.717779 1.673320 0.044459

10 1.000000 1.784771 1.732051 0.052720

2.梯形方法

MATLAB程序:

function e=tixingaa(f,a,b,n,x,y0,g)

f=inline(f);

g=inline(g);

h=(b-a)/n;

y(1)=y0;x0=0;

disp(sprintf('i x(i) y(i) yx(i) wucha(i)'));

for i=1:n+1

x(i)=x0+(i-1)*h;

x(i+1)=h+x(i);

s(i+1)=y(i)+h*f(x(i),y(i));

y(i+1)=y(i)+h/2*(f(x(i),y(i))+f(x(i+1),s(i+1)));

yx(i)=g(x(i));

wucha(i)=abs(yx(i)-y(i));

disp(sprintf('%d %f %f %f %f',i-1,x(i),y(i),yx(i),wucha(i))); end

运行结果:

>> tixing('y-2*x/y',0,1,10,0,1,'(1+2*x)^(1/2)')

i x(i) y(i) yx(i) wucha(i)

0 0.000000 1.000000 1.000000 0.000000

1 0.100000 1.095909 1.095445 0.000464

2 0.200000 1.184097 1.183216 0.000881

3 0.300000 1.266201 1.264911 0.001290

4 0.400000 1.343360 1.341641 0.001719

5 0.500000 1.416402 1.414214 0.002188

6 0.600000 1.485956 1.483240 0.002716

7 0.700000 1.552514 1.549193 0.003321

8 0.800000 1.616475 1.612452 0.004023

9 0.900000 1.678166 1.673320 0.004846

10 1.000000 1.737867 1.732051 0.005817

3.三阶R-K方法:

MATLAB程序:

function e=R3(f,a,b,n,x,y0,g)

f=inline(f);

g=inline(g);

h=(b-a)/n;

y(1)=y0;x0=0;

disp(sprintf('i x(i) y(i) yx(i) wucha(i)'));

for i=1:n+1

x(i)=x0+(i-1)*h;

x(i+1)=h+x(i);

k(1)=f(x(i),y(i));

k(2)=f(x(i)+(h/2),y(i)+(h/2)*k(1));

k(3)=f(x(i)+h,y(i)-h*k(1)+2*h*k(2));

y(i+1)=y(i)+(h/6)*(k(1)+4*k(2)+k(3));

yx(i)=g(x(i));

wucha(i)=abs(yx(i)-y(i));

disp(sprintf('%d %f %f %f %f',i-1,x(i),y(i),yx(i),wucha(i))); end

运行结果:

>> R3('y-2*x/y',0,1,5,0,1,'(1+2*x)^(1/2)')

i x(i) y(i) yx(i) wucha(i)

0 0.000000 1.000000 1.000000 0.000000

1 0.200000 1.183244 1.183216 0.000028

2 0.400000 1.341729 1.341641 0.000088

3 0.600000 1.483408 1.483240 0.000169

4 0.800000 1.612727 1.612452 0.000276

5 1.000000 1.732472 1.732051 0.000421

实验结果:经过用三种方法解题可以看出,如果我们用的方法的精度越高,误差越小,我们算出的近似值越接近精确解。可是精度越高计算量也越多。

初值问题

《计算机数学基础(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

相关文档
最新文档