-1-
常微分方程初值问题的欧拉方法及其改进的欧拉方法
的 Matlab 实现
纪秀浩
辽宁工程技术大学理学院,辽宁阜新(123000)
E-mail:jixiuhao@163.com
摘 要:欧拉(Euler)方法及改进的欧拉方法是解决常微分方程初值问题常用的数值解法,
但 Matlab 的工具箱中没有 Euler 方法的功能函数。本文在简要介绍 Euler 方法及其改进的
Euler 方法的基础上,通过编写 Matlab 程序实现两种数值解法,并通过作图形式对比其精度,
加深对两种方法的认识。
关键词:欧拉方法;改进的欧拉方法;matlab 实现
1.引言
常微分方程是解决工程实例的常用的工具
[1]
,建立微分方程只是解决问题的第一步,通
常需要求出方程的解来说明实际现象,并加以检验。如果能得到解析形式的解固然是便于分
析和应用的,但是我们知道,虽然求解常微分方程有各种各样的解析方法,但解析方法只能
用来求解一些特殊类型的方程,实际问题终归结出来的微分方程主要靠数值解法
[2]
。数值解
法就是一个十分重要的手段,而欧拉方法又是数值解法最基础最常用的方法。
2. 欧拉方法、改进的欧拉方法及 Matlab 实现
下面主要讨论一阶常微分方程的初值问题,其一般形式为:
'
00
(, )
()
yfxy
yx y
⎧
=
⎨
=
⎩
(1)
我们知道,只要函数
(, )
xy适当光滑——譬如关于 y 满足利普希茨(Lipschitz)条件
(, ) (, )
xy f xy Ly y
≤−
理论上就可以保证初值问题(1)的解
()yyx
存在并且唯一
[3]
。
所谓数值解法,就是求问题(1)在某些离散点
01 N
ax x x b
<< =" 的近似值
012
,,,
N
yyy y" 的方法。
012
,,,
N
yyy y" 就称为问题(1)的数值解。
1nn n
hx x
+
− 成为
n
到
n
的步长,我们为了方便取为常量 h 。
2.1. 欧拉方法
2.1.1 欧拉方法
将微分方程离散化,用向前差商
1
()()
nn
yx yx
h
+
代替微分
'
()
n
yx ,代入(1)中的微分方
程,可得
1
()()
(,()) ( 1,2,3,)
nn
nn
yx yx
fx yx n
h
+
−
=="
化简可得
1
( ) () (,()) ( 1,2,3,)
nnnn
yx yx f x yx h n
+
=+ ="
http://www.paper.edu.cn
中国科技论文在线
评论1