-
欧拉法解常微分方程
错误
!
未定义书签。
数学与计算科学学院
实
验
报
告
实验项目名称
Eular
方法求解一阶常微分方程数值解
所属课程名称
偏微分方程数值解
实
验
类
型
验证性
实
验
日
期
2
< br>01
5-
3-26
班
级
学
号
姓
名
成
绩
0
/
14
欧拉法解常微分方程
一、实验概述
:
【实验目的】
熟练掌握应用显性
Eul
a
r
法和隐式
p>
Eul
a
r
法求解
一般一阶常微分方程的近似
数值解。
【实验原理】
虽然求解常微分方程有
各种各样的解析方法
,
但解析方法只能用来求解一些特
殊类型的方程。求解从实际问题当中归结出来的微分方程主要靠数值解法。欧拉方
法是一类重要的数值解法。这类方法回避解y
(x
)的
函数表达式,而是寻求它在一
系列离散节点上的近似值,相邻的两个节点的间距称作步长
。假定步长为定数。
欧拉方法是一类离散化方法,这类方法将
寻求解
y
(x
)
的分析问题转化为计算
离散值值的代数问题
,
从而使问题获得了实质性的简化。然而随之带来的困难是,由
于数据量往往很大
,
差分方法所归结出的可能是个大规模的代数方程组。
【实验环境】
1.
硬件环境
2.
2<
/p>
.
软件环境
MATLAB7.
0
二、
实验内容
:
欧拉法解常微分方程
【实验过程】(实验步骤)
(
一
)
实验任务
描
述某种化学反应过程的方程,利用显性和隐形
Eualar
方法
求解下列一阶线
性微分方程组的近似数值解
:
< br>
?
dy
1
?
?
0
.
04
y
?
10
4
y
y
1
1<
/p>
2
?
dt
?
p>
dy
4
7
2
?
2
dt
?
0
.
04
y
1
?
10
y
1
y
2
?
< br>3
?
10
y
2
?
?
dy<
/p>
3
7
2
?
3
?
10
y
2
?
dt
?
y
(
0
)
?
1
,
y
(
0
)
?
0
,
y
(
0<
/p>
)
?
0
2
3
?
1
(
二
)
求解过程
Eular
p>
方法
:
一阶线性微分方程初值问题
?
y
'
?
f
(
x
,
y
),
a
?
x
< br>?
b
?
?
y
(
a
)
?
y
0
a
?
x
0
?
x
1
?
....
?
< br>x
n
?
b
(1
)
x
n
?
x
0
< br>?
nh
,
h
为步长
方程离散化
:
差分和差商<
/p>
y
'
(
x
0
)
?
p>
y
1
?
y
0
y
1
?
y
0
?
< br>x
1
?
x
0
h
y
1
?
y
0
h
< br>y
1
?
y
0
?
hf
(
x
0
,
y
0<
/p>
)
(
2
)
p>
f
(
x
0
,
y
0
)
?
y
n
?
< br>1
?
y
n
?
hf
(
x
0
,
y
0
)<
/p>
通过初始值
< br>y
0
,
依据递推公式
(2)
逐步算出
y
1
p>
,
y
2
,....
,
y
n
就为显性的
E
u
lar
方
法。
隐形
Eu
l
a
r方法:
?
y
1
?
y
0
?
hf
(
x
1
,
y
1
)
?
(3
)
y<
/p>
?
y
?
hf
p>
(
x
,
y
)
n
n
?
1
n
?
1
< br>?
n
?
1
公式(
3)
即为隐式
Eu
lar公式。
p>
2
/
14
欧拉法解常微分方程
(
三
)
程序算法
1.
利用显式
Eul
ar法方求解
利用
MAT
L
AB
进行求解,编写脚本文件如下
:
文件名
:hql.m
%显性
E
ular方法
f0=
1
;
g0
=0;z0
=
0
d
e
l
t
a
=0
.
01
;
tim
e
=1
;
t=
0
:
d
elta:time
;
f=zero
< br>s
(size(t
))
;
g
p>
=zeros(s
i
z
e
(
t
));
z=zer
o
s(s
i
ze(t
)
);
f
1
=z
eros(size(t
)
)
;
g1=zer
o
s(s
i
z
e
(
t)
);
z1=z
er
os(si<
/p>
z
e(
t
))<
/p>
;
f
(1
)=
f
0;
g(1
)=
g0
;
z
(
1
)
=z0;
for
i
=2:length
(t
)
f
1
(i-1) = -
0
.04*f
(i
-1
p>
)
+ 1
0
00
0*f
(
i
-
1
)*
g(
i
-1)
;
f(i
)
=f
(
i-1)+f1(i-1
)
*d
e<
/p>
l
t
a;
g
1(i-1)
=
0.
0<
/p>
4
*f(i-1) -
10
0
00
*
f(i-1)<
/p>
*g
(i-1)-3*10^7*g(i-1)^2
;
g
(i)=
g(
i-
1
)+g1(i-1)*delt
a
;
z1(i-
1
)=3
*
10^7*
g
(i-1
)
^2;
3
/
14
欧拉法解常微分方程
z(
i
)=z(i-1
)+z(
i
-1)*del
t
a
;
Fun=f+g+z
e
n
d
f
ig
u
r
e<
/p>
p
l
o
t(
t
,
f,
'o
'
);
xlabel
(
't'
);
y
< br>l
a
b
el(
< br>'
y
1'
);
< br>
titl
e
(
't-
y
1
变化图
'
)
f
ig
ur
e
plot(t,g,
'
p>
o
'
)
;
x
label(
't'
)
;
yl
a
be
l(
'y2
'
);
titl
e
(
< br>'
t-
y
2变化图'
)
figur
e
pl
o
t
(
t,z,
'
o'
)
;
xlabel(
't
'
)
;
y
l
a
bel
(
'
y
3
'
);
tit
l
e
(
'
t
-y
3变化图
'
)
fi
gu
re
plo
t(
t
,
Fun
< br>)
;
xla
b
el
(
'
t
'
);
yl
ab
p>
e
l(
'
y
1+y2
+
y3'
)
;
title(
'
t
-y
1+y2
+
y3
变化图
p>
'
)
4
/
14
欧拉法解常微分方程
【实验结论】
A
步长
h
=
0
.001
时进行数据测试。结果如下:
迭代第一次时,
结果与方程描述内容相符。
迭代第二次时
,
结果与方程描述内容基本相符。
迭代三次时
,
结果与方程描述内容基本相符。
5
/
14
欧拉法解常微分方程
迭代
100
0次时
,
模拟结
果已经严重脱离事实,故当选择
de
l
ta
为
0.001
时
< br>,
该迭代方法不收敛。
时间与
个变量直接的变化关系如图所示
:
6
/
14
-
-
-
-
-
-
-
-
-
上一篇:万元俱乐部表彰会议主持词.
下一篇:802.11n帧聚合