全球旧事资料 分类
CENTRALSOUTHUNIVERSITY
数值分析实验报告
fEuler方法与改进的Euler方法的应用
一、问题背景
在工程和科学技术的实际问题中,常需求解微分方程,但常微分方程中往往只有少数较简单和典型的常微分方程(例如线性常系数常微分方程等)可求出其解析解对于变系数常微分方程的解析求解就比较困难,而一般的非线性常微分方程的求解困难就更不用说了。大多数情况下,常微分方程只能用近似方法求解。这种近似解法可分为两大类:一类是近似解析法,如级数解法、逐次逼近法等另一类是数值解法,它给出方程在一些离散点上的近似值。
二、数学模型
在具体求解微分方程时,需具备某种定解条件,微分方程和定解条件合在一起组成定解问题。定解条件有两种:一种是给出积分曲线在初始点的状态,称为初始条件,相应的定解问题称为初值问题。另一类是给出积分曲线首尾两端的状态,称为边界条件,相应的定解问题称为边值问题。在本文中主要讨论的是给定初值条件的简单Euler方法和改进的Euler方法来求解常微分方程。
三、算法及流程
Euler方法是最简单的一种显式单步法。对于方程
dyfxy
dx考虑用差商代替导数进行计算,取离散化点列
则得到方程的近似式即
x
x0
h,
012L
yx
1
h
yx


f
x
yx

y
1y
hfx
y

得到简单Euler方法。具体计算时由x0出发,根据初值,逐步递推二得到系列离
散数值。简单Euler方法计算量小,然而精度却不高,因而我们可以构造梯形公式
y
1

y


h2
f
t
y

f
t
1y
1
y0
其中hbaN。这是一个二阶方法,比Euler方法精度高。但是上述公式右边
有y
1,因而是隐式差分方程,可以用迭代方法计算y
1。初值可以由Euler公式
f提供,一般而言迭代一两次即可。在计算中的迭代公式为
y
0
1

y


hf
x
y

y
k
1
1

y


h2
f
x
y

f
x
1
y
k

1
k012L
容易看出这实际上是一种预估校正方法。改进的Euler方法又称为He
u方法。MATLAB实现过程:(1)简单Euler方法函数
fu
ctio
txEulerfu
t0ttx0N
MyEuler用前向差分的欧拉方法解微分方程
fu
表示f(tx)
t0tt表示自变量的初值和终值
x0表示函数在x0处的值,其可以为向量形式
N表示自变量在t0tt上取得点数
httt0N
步长h
tt00Nh
时间t
x1x0
赋初值
fork1N
ffevalfu
tkxk
ff
xk1xkhf
e
d
将文件以文件名Eulerm保存。
(2)改进的Euler方法函数
fu
ctio
txGjEulerfu
t0ttx0N改进的Euler方法解微分方程httt0N计算所取的两离散点之间的距离tt00Nh表示出r
好听全球资料 返回顶部