数值计算实验常微分方程初值问题的数值方法-Euler 方法
常微分方程初值问题的数值解法
1 1 2 1 , 2 p 2
这里有 3 个未知 数, 2 个方程。
存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库 塔格式。注意到,p 1, 1 2 1 就是改进的欧拉法。
Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开
K 2 f ( xi ph, yi phK1 ) f ( xi , yi ) phf x ( xi , yi ) phK1 f y ( xi , yi ) O( h2 )
y( xi ) phy( xi ) O(h2 )
d f ( x, y) dx 首先希望能确定系数 1、2、p,使得到的算法格式有 2阶 dy 精度,即在 yi y( xi ) 的前提假设下,使得 f x ( x, y) f y ( x, y) dx Ri y( xi 1 ) yi 1 O(h3 ) f x ( x, y) f y ( x, y) f ( x, y) y( x )
y( x0 ) y0 yk 1 yk h f ( xk , yk 1 )
, k 0,1,...
隐式欧拉法的求解: 利用迭代的思路进行.
yi 1 yi hf ( xi , yi 1 )
变换为
y
( k 1) i 1
yi hf ( xi , y )
y i 1 K1 K2
1 1 y i h K 1 K 2 2 2 f ( xi , yi ) f ( xi h, yi hK 1 )
步长一定是一个h 吗?
§2 Runge-Kutta Method
常微分方程初值问题数值解法
常微分方程初值问题的数值解法在自然科学、工程技术、经济和医学等领域中,常常会遇到一阶常微分方程初值问题:(,),,(),y f x y a x b y a y '=≤≤⎧⎨=⎩ (1) 此处f 为,x y 的已知函数,0y 是给定的初始值。
本章讨论该问题的数值解法,要求f 在区域{(,)|,}G x y a x b y =≤≤<∞内连续,并对y 满足Lipschitz 条件,从而初值问题(1)有唯一的连续可微解()y y x =,且它是适定的。
1 几个简单的数值积分法1.1 Euler 方法(1)向前Euler 公式(显式Euler 公式)10(,),0,1,2,,(),n n n n y y hf x y n y y a +=+=⎧⎨=⎩(2) 其中h 为步长。
由此便可由初值0y 逐步算出一阶常微分方程初值问题(1)的解()y y x =在节点12,,x x 处的近似值12,,y y 。
该公式的局部截断误差为2()O h ,是一阶方法。
(2)向后Euler 公式(隐式Euler 公式)1110(,),0,1,2,,(),n n n n y y hf x y n y y a +++=+=⎧⎨=⎩(3) 这是一个隐格式,也是一阶方法。
这类隐格式的计算比显格式困难,一般采用迭代法求解。
首先用向前Euler 公式提供迭代初值,然后迭代计算:(0)1(1)()111(,),(,),0,1,2,n n n n k k n n n n y y hf x y y y hf x y k +++++⎧=+⎨=+=⎩ (4)1.2 梯形方法1110[(,)(,)],2(),(0,1,2,)n n n n n n h y y f x y f x y y y a n +++⎧=++⎪⎨⎪=⎩= (5) 这也是一个隐格式,是二阶方法。
一般也采用迭代法求解。
迭代公式如下:(0)1(1)()111(,),[(,)(,)],0,1,2,2n n n n k k n n n n n n y y hf x y h y y f x y f x y k +++++⎧=+⎪⎨=++=⎪⎩ (6)1.3 改进的Euler 方法11110(,),[(,)(,)],0,1,2,,2(),n n n n n n n n n n y y hf x y h y y f x y f x y n y y a ++++⎧=+⎪⎪=++=⎨⎪=⎪⎩(7) 为了便于上机编程计算,(7)可改写为110(,),(,),0,1,2,,1(),2(),p n n n cn n p n p c y y hf x y y y hf x y n y y y y y a ++=+⎧⎪=+⎪⎪=⎨=+⎪⎪=⎪⎩(8) 该格式是显式,也是二阶方法。
Euler_法求微分方程的解
L1 L2 L3 L 4
f ( xk , yk ) f ( xk h / 2, yk hL1 / 2) f ( xk h / 2, yk hL2 / 2) f ( xk h, yk hL3 )
9
四阶 R-K 方法源程序
clear; f=sym('y+2*x/y^2'); a=0; b=2; h=0.4; n=(b-a)/h+1; % n=(b-a)/h; x=0; y=1; szj=[x,y]; for i=1:n-1 % i=1:n l1=subs(f,{'x','y'},{x,y}); l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2}); l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2}); l4=subs(f,{'x','y'},{x+h,y+l3*h}); y=y+h*(l1+2*l2+2*l3+l4)/6; x=x+h; szj=[szj;x,y]; end plot(szj(:,1),szj(:,2), 'dg-')
k k
k 0, 1, 2,, n 1
4
Euler 折线法举例
例:用 Euler 法解初值问题
2x dy y 2 y dx y( 0 ) 1 x [0, 2]
解:取步长 h = (2 - 0)/n = 2/n,得差分方程
x 0 0, y 0 1 2 yk 1 yk h f ( xk , yk ) yk h( yk 2 xk / yk ) x x h k k 1
计算方法 常微分方程初值问题数值解法-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
的解就不能用初等函数及其积分来表达。
• 从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。 • 本章主要讨论一阶常微分方程初值问题
课题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.对比欧拉法,改进的欧拉法和精确解的结果可知,改进的欧拉法所得到结果的精度比欧拉法的大,这是因为改进的欧拉法融入了属于隐式公式的梯形公式,它的计算数值解的精度要比欧拉公式好。
计算方法 常微分方程初值问题数值解法-Euler公式-龙格-库塔法
yi1
1 2
(y p
yc)
i 0,1, 2 … , n 1
(9.12)
例9.2 用改进欧拉法解初值问题
y
y
2x y
y(0) 1
区间为0,1,取步长 h=0.1
解:
改进欧拉法公式
y p
yi
0.1(yi
2xi ) yi
课堂练习: x0 = 0, y0 = 1 计算出
欧拉公式的截断误差推导:
在欧拉公式中,假定 yi y(x i ) (近似地相等),则有
yi1 y(x i ) h[f(x i , y(x i ))] y(x i ) hy(xi ) (a)
而将真解y(x)在xi处按二阶泰勒展开,得
y(x i1 )
y(x i ) hy(xi )
h2 2!
y(x0 ) f(x 0 , y0 )
Pn
y
P1(x1 , y1)
P2(x2 , y2)
y=y(x)
Pi(xi , yi) Pi+1(xi+1 , yi+1) y(xn)
P0 y(x0) y(x1)
y(x2) y(xi)
y(xi+1)
x0 x1
x2 xi
xi+1
xn
直线 P0P1 的方程为: y y0 f(x 0 , y0 )(x x0 )
(9.5)式的右端含有未知的yi+1,它是一个关于yi+1的函 数方程,这类数值方法称为隐式方法。相反地,欧拉法 是显式方法。
Home
两步Euler公式
9.2.3 两步欧拉公式
2个区间
对方程 y f( x,y) 两端在区间 [xi1, xi1] 上积分得
解常微分方程初值问题的euler方法的并行计算方法
解常微分方程初值问题的euler方法的并行计算方法
euler数值解常微分方程(ODE)初值问题的并行计算技术是一种在不同进程之间有效分享计算资源的方法,可以帮助快速解决ODES初值问题。
随着计算机硬件和软件的快速发展,为了满足新兴应用,并行计算技术被广泛应用于各个领域,其中也包括ODE。
euler数值解常微分方程初值问题的并行计算方法是通过将计算任务分解为一系列的小任务,然后分配给多个处理器进行求解以节省计算时间,改善计算效率。
该技术能够在大规模系统内构建强大的计算能力,能够快速有效地解决ODEs初值问题,而不需要耗费太多的计算资源。
针对ODEs初值问题,常用的并行计算技术主要有基于迭代的分布式计算和基于消息传递的分布式计算。
基于迭代的分布式计算可以有效利用多处理器,通过连续地迭代求解ODEs,从而克服时间步骤的限制,增加求解的效率。
基于消息传递的分布式计算则将原始Ode分割为数个子问题,并通过网络技术在远程计算机上进行计算,从而减少求解时间步骤,改进求解效率。
总之,euler数值解常微分方程初值问题的并行计算方法,在不同进程之间有效分享计算资源的方法,可以有效地改进ODEs求解效率,减少求解时间,为实际应用提供有效的计算方案。
解常微分方程初值问题的隐式euler方法及并行计算方法
解常微分方程初值问题的隐式euler方法及并行计算方法在现代科学技术发展的今天,为了更加有效地求解复杂的微分方程,隐式Euler方法和并行计算技术都受到了极大的关注。
在本文中,我们将探讨解微分方程初值问题的隐式Euler方法及其并行计算方法。
一、隐式Euler方法
隐式Euler方法是一种数值分析技术,用于求解一类特殊的常微分方程的解。
它的主要思路是利用Euler公式,将微分方程离散化,然后将这个微分方程用某种数值近似方法求解。
在隐式Euler方法中,当我们知道离散生成的差分方程组的当前时刻的状态值时,利用Euler公式可以求出其下一个时刻的状态值。
隐式Euler方法的主要优点在于其具有稳定性,即当生成有限差分方程组后,使用Euler公式求解可以使产生的误差更小,从而更有效地求解问题。
二、并行计算方法
随着计算机的发展,越来越多的计算机资源可以用于解决复杂的模型问题,其中最重要的就是并行计算技术。
并行计算是一种在多台计算机上同时运行的技术,其目的是将一个大的计算任务分解成多个小的计算任务,由不同的计算机同时处理。
实现并行计算的关键是合理、有序地分解任务,使得多台计算机能够更有效地实现任务。
并行计算技术和隐式Euler方法有着很好的结合,可以从计算任务的平衡性和分解粒度等方面充分发挥优势,提高隐式euler方法求
解微分方程的效率。
三、结论
本文介绍了隐式Euler方法和并行计算技术可以更有效地解决微分方程初值问题。
隐式Euler方法具有稳定性,而并行计算技术可以实现任务分解,提高求解效率。
因此,将这两种技术结合,可以大大提高复杂微分方程的求解效率。
常微分方程数值解欧拉方法
yn1
yn
h 2
f (xn , yn ) f ( xn1, yn1)
yn1 yn hf ( xn , yn )
yn1
yn
h 2
f (xn , yn ) f ( xn1, yn1)
也叫预报-校正公式 改进的欧拉公式
例6.1 欧拉公式求解
f(0,0)的处理(也可以 理解为一种近似)
表6-1 图6-1 本身有解析解,可与
想求(近似的)y,但等式的等号左右都有:隐式
还有一种隐式:积分用梯形公式
y(xn1) y(xn )
xn1 f (x, y(x))dx
xn
xn1 f (x, y(x))dx h
xn
2
f (xn , y(xn )) f (xn1, y(xn1))
y( xn1)
y(xn )
h
2
f
( xn ,
6 常微分方程数值解法
常微分方程 欧拉方法 龙格-库塔方法
引子
人口模型(看书上) 人口理论
一阶常微分方程的初值问题 数值解:离散点上的近似值
一阶线性常微分方程初值问题
dy
f
(x,
y)
dx
y(x0 ) y0
a xb
数值方法的基本思想 连续 离散 在解的存在区间上取n + 1个节点
xn1 dydx xn1 f (x, y(x))dx
xn dx
xn
y(xn1) y(xn )
xn1 f (x, y(x))dx
xn
(1)显式差分格式
y(xn1) y(xn )
xn1 f (x, y(x))dx
xn
左矩形公式
xn1 xn
euler法
欧拉法(Euler method)是一种数值方法,用于求解常微分方程的初值问题。
它的基本思想是用一个近似函数来逼近真实的解,然后通过迭代计算来逐步改进这个近似函数,直到达到所需的精度为止。
欧拉法的具体步骤如下:
1. 首先确定一个初始点x0和一个步长h,以及一个函数f(x)表示要求解的微分方程。
2. 计算初始点的函数值f(x0)。
3. 用近似函数y = f(x0) + h * f'(x0)来逼近真实的解。
其中,f'(x0)表示在x0处的导数。
4. 计算新的点x1 = x0 + h,并计算该点的函数值f(x1)。
5. 用近似函数y = y + h * (f(x1) - f(x0))来更新近似函数。
6. 如果达到了所需的精度或者已经到达了要求的终止点,则停止迭代;否则,回到第3步继续迭代。
数值计算方法常微分方程的Euler方法与改进的Euler方法
数值计算方法常微分方程的Euler方法与改进的Euler方法《数值计算方法》实验7报告班级:学号:姓名:成绩:1. 实验名称实验7 常微分方程的Euler 方法与改进的Euler 方法2. 实验题目取步长h =0.2,用Euler 方法和改进的Euler 方法求初值问题2',[0,1](0)1y y x x y y ?=-∈=?的数值解,并将计算结果与解析解y =3. 实验目的掌握求解常微分方程的Euler 方法,熟悉改进的Euler 方法.4. 基础理论对于初值问题0'(,),[,]()y f x y x a b y a y =∈??=?取节点i x a ih =+,则求解其数值解的Euler 公式为1(,),(0,1,,)n n n n y y hf x y n N +=+=改进的Euler 公式(也叫预报-校正法)为111(,)[(,)(,)]2n n n n n n n n n n y y hf x y h y y f x y f x y +++=+=++??5. 实验环境操作系统:Windows xp ;6. 实验过程第一步,确定好初值;先借Euler 公式求得一个初步的近似值,并且称之为预报值。
第二步,因为预报值精度低,所以要用它代替梯形公式右端的值,重新使用梯形公式计算一次,就得到了校正值。
7. 结果与分析精确解 Euler 方法改进Euler 方法x y ye[k] |ye[k]-y|ym[k] |ym[k]-y|0.0 1.000000 1.000000 0.000000 1.0000 00 0.0000000.2 1.095445 1.200000 0.104555 1.186667 0.0912220.4 1.183216 1.373333 0.190117 1.348312 0.1650960.6 1.264911 1.531495 0.266584 1.493704 0.2287930.8 1.341641 1.681085 0.339444 1.627861 0.2862211.0 1.414214 1.826948 0.412735 1.754205 0.339991Press any key to continue根据结果,可以得出,使用Euler公式计算方便,计算量少,然而,它的精度比较低。
解常微分方程初值问题的隐式euler方法及并行计算方法
解常微分方程初值问题的隐式euler方法及并行计算方法解常微分方程初值问题(initialvalueproblem,IVP)在微积分数学中使用非常普遍,它能够表示许多物理和社会现象的发展趋势。
但微分方程的数值解法通常很难解决,而计算复杂度高,计算时间也长,另外,自由边界条件也很难处理。
为了解决这个问题,隐式Euler 方法(implicit Euler Method, IEM)被提出,它是一种改进的数值解法,可以有效地计算出IVP的解。
隐式Euler方法的优点在于,它可以解决较为复杂的方程,并且具有一定的收敛速度。
隐式Euler方法通常用于解决常微分方程初值问题,它可以更有效地求解IVP,而不受自由边界条件的影响,因为它可以对方程进行积分。
然而,隐式Euler方法有一个重要的缺点:它计算出的解并不能完全准确,而且其他方法也不能完全替代它。
此外,由于隐式Euler 方法只能给出局部解,所以当IVP计算范围较大时,它的计算效率也会大大降低。
为了提高隐式Euler方法的效率,并行计算方法也可以用来解决IVP问题。
并行计算是指使用多台计算机或多个CPU来处理IVP问题。
并行计算可以显著降低隐式Euler方法的计算时间,因为它可以将IVP问题分解成多个部分,分别由不同CPU来处理,因此可以协同完成IVP的求解。
隐式Euler方法和并行计算方法是两种有效的求解IVP的方法,它们分别具有自己的优点和缺点。
隐式Euler方法可以有效地求解IVP,而并行计算的优势在于它可以大大减少计算时间。
合理使用这
两种方法,能够有效地求解IVP,提高IVP的求解效率。
euler方法的原理
euler方法的原理摘要:1.Euler方法的定义和原理2.Euler方法的应用场景3.Euler方法的优缺点4.提高Euler方法收敛速度的方法5.总结正文:Euler方法是一种求解常微分方程初值问题的数值方法。
它的基本思想是将微分方程中的导数项用差分的形式表示,然后通过迭代公式逐步逼近解。
Euler方法在许多领域都有广泛的应用,如物理、工程、经济学等。
Euler方法的原理如下:对于常微分方程dy/dx = f(x, y),我们可以将其离散化为差分方程dy[n+1]/dx = f(x[n+1], y[n+1])。
在此基础上,Euler方法通过以下迭代公式求解:y[n+1] = y[n] + h * f(x[n+1], y[n])其中,h为步长,x[n+1] = x[n] + h,y[n]为当前近似解。
Euler方法的应用场景主要包括:1.求解具有连续导数的微分方程,例如物理中的运动方程、电磁学方程等。
2.分析动态系统,如力学、生物学中的模型。
3.金融领域,如利率衍生品定价、风险管理等方面的计算。
Euler方法虽然简单易实现,但也存在一定的优缺点:优点:1.概念清晰,容易理解。
2.计算速度较快,适用于大规模计算。
缺点:1.收敛速度较慢,尤其在区间端点附近。
2.对于非线性方程,收敛性不易保证。
为了提高Euler方法的收敛速度,可以采用以下方法:1.减小步长h,使离散方程更接近原方程。
2.使用复合Euler方法,即在迭代过程中用更高阶的数值方法修正Euler方法。
总之,Euler方法作为一种基本的数值方法,在实际应用中具有重要意义。
常微分方程初值问题的数值解法
常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。
常微分方程初值问题(IVP)即为一种最常见的微分方程求解问题,其求解方法有多种,本文将对常微分方程初值问题的数值解法进行较为详细的介绍。
一、欧拉法欧拉法是最基本的一种数值解法,它采用泰勒级数展开并截断低阶项,从而获得一个差分方程近似求解。
具体来讲,设 t 为独立变量,y(t) 为函数 y 关于 t 的函数,方程为:$$y'(t) = f(t, y(t)), \qquad y(t_0) = y_0$$其中 f(t,y(t)) 为已知的函数,y(t_0) 为已知的初值。
将函数 y(t) 进行泰勒级数展开:$$y(t+h) = y(t) + hf(t, y(t)) + O(h^2)$$其中 h 表示步长,O(h^2) 表示其他高阶项。
为了使误差较小,一般取步长 h 尽可能小,于是我们可以用欧拉公式表示数值解:$$y_{n+1} = y_n + hf(t_n, y_n), \qquad y_0 = y(t_0)$$欧拉法的优点是容易理解和实现,但是由于截取低阶项且使用的单步法,所以误差较大,精度较低,在具体应用时需要慎重考虑。
二、龙格-库塔法龙格-库塔法(Runge-Kutta method)是一种多步法,比欧拉法更加精确。
龙格-库塔法的主要思想是使用不同的插值多项式来计算近似解,并且将时间步长分解,每次计算需要多次求解。
以下简要介绍二阶和四阶龙格-库塔法。
二阶龙格-库塔法将时间步长 h 分解成两步 h/2,得到近似解表达式:$$\begin{aligned} k_1 &= hf(t_n, y_n)\\ k_2 &= hf(t_n+h/2,y_n+k_1/2)\\ y_{n+1} &= y_n+k_2+O(h^3)\\ \end{aligned}$$四阶龙格-库塔法四阶龙格-库塔法是龙格-库塔法中应用最为广泛的一种方法,其需要计算的中间值较多,但是具有更高的精度。
常微分方程数值解法-欧拉方法(1)
课题报告题目:常微分方程的数值解法-欧拉方法院 (系):理学院专业:数学与信息专业指导教师:***组员:艾佳欢(组长) 邓云娜柏茜钟岩刘磊2015 年 5 月 11 日常微分方程数值解法-欧拉方法摘要:从常微分方程数值解的基本概念入手,了解最基本的数值解法--欧拉方法。
并利用欧拉方法显式隐式的特点探究如何求解微分方程,以及欧拉方法的误差分析及校正。
关键词:数值解,欧拉方法,误差,校正ABSTRACT: From the basic concept of numerical solution of ordinary differential equations, and understand the most basic numerical solution of euler method. And by using euler explicitly implicit characteristics and explore how to solve differential equations and the error analysis and correction of euler method.KEYWORDS :arithmetic solution,Euler's method,error,revise1.初值问题数值解基本概念初值问题的数值解法,是通过微分方程离散化而给出解在某些节点上的近似值。
在[]b a ,上引入节点{}),,1(,:1100n k x x h b x x x a x k k k n nk k =-==<<<=-=称为步长。
在多数情况下,采用等步长,即),1,0(,n k kh a x nab h k =+=-=。
记准确解为)(x y ,记)(k x y 的近似值为k y ,记),(k k y x f 为k f .一阶常微分方程的初值问题⎩⎨⎧=∈=')2.1()()()1.1(),())(,()(0 x y a y b a x x y x f x y , 若f 在{}〈+∞≤≤=y b x a D ,内连续,且满足Lip 条件:0≥∃L 使2121),(),(y y L y x f y x f -≤-,则初值问题的连续可微解)(x y 在],[b a 上唯一存在,称解)(x y 在节点i x 处的近似值)(i i x y y =为其数值解,该方法称为数值方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验课程名称数值计算方法
实验项目名称常微分方程初值
问题的数值方法
年级 2010级
专业信计
学生姓名成富
学号1007010167
理学院
实验时间: 2012 年 6月 4日
学生所在学院: 理学院 专业: 信计 班级:101 姓 名 成富 学 号 1007010167 实验组 实验时间
2012.6.4
指导教师
刘轶中
成 绩
实验项目名称 常微分方程初值问题的数值方法-Euler 方法
实验目的及要求:
用数值微分法与数值积分法求一阶常微分方程初值问题0(,)()y f x y a x b
y a y '=≤≤⎧⎨=⎩在离散点
01n a x x x b =<<<= 上的近似值12,,,.n y y y
实验(或算法)原理: 1.算法设计。
2.编写相应的程序上机调试,并对实验结果进行分析和比较。
3.计算实例:
分别用Euler 公式,后退Euler 公式,梯形公式,改进Euler 公式求一阶常微分方程初值问题
201
(0)1x y y x y y ⎧'
=-≤≤⎪
⎨
⎪=⎩
的数值解,0.1h =,并比较各种公式的误差(取相同的步长)。
对同一方
法,改变步长的大小,比较收敛的速度。
准确值:
0.10.20.30.40.50.60.70.80.9 1.0
1.0954 1.1832 1.2649 1.3416 1.4142 1.4832 1.5492 1.6125 1.6733 1.7321
i i x y
实验硬件及软件平台:PC 机, vc++6.0, Internet 网。
实验步骤:
1.根据算法事先写出相应程序。
2.启动PC 机,进入tc 集成环境,输入代码。
3.编译调试。
4.调试通过,计算出正确结果后。
实验内容(包括实验具体内容、算法分析、源代码等等):1.Euler法:
2.后退公式:
3。
梯形公式:
实验结果与讨论:
1各个公式计算的结果有些差别,这是应为各个公式的误差不一样。
2 当改变步长h时,计算的精度不一样,h越小,精度越高。
3 步长h越小,输出的数据个数越多。
指导教师意见:
签名:年月日。