最新常微分方程的数值解演示教学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 常微分方程的数值解
【实验目的】
1.掌握用MATLAB软件求微分方程初值问题数值解的方法;
2.通过实例用微分方程模型解决简化的实际问题;
3.了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。
【实验内容】
题3
小型火箭初始重量为1400kg,其中包括1080kg燃料。火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃料用尽时关闭。设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求
引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点的时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。
模型及其求解
火箭在上升的过程可分为两个阶段,在全过程中假设重力加速度始终保持不变,
g=9.8m/s2。
在第一个过程中,火箭通过燃烧燃料产生向上的推力,同时它还受到自身重力(包括自重和该时刻剩余燃料的重量)以及与速度平方成正比的空气阻力的作用,根据牛顿第二定律,三个力的合力产生加速度,方向竖直向上。因此有如下二式:
a=dv/dt=(F-mg-0.4v2)/m=(32000-0.4v2) /(1400-18t)-9.8
dh/dt=v
又知初始时刻t=0,v=0,h=0。记x(1)=h,x(2)=v,根据MATLAB可以求出0到60秒内火箭的速度、高度、加速度随时间的变化情况。程序如下:
function [ dx ] = rocket( t,x )
a=[(32000-0.4*x(2)^2)/(1400-18*t)]-9.8;
dx=[x(2);a];
end
ts=0:1:60;
x0=[0,0];
[t,x]=ode45(@rocket,ts,x0);
h=x(:,1);
v=x(:,2);
a=[(32000-0.4*(v.^2))./(1400-18*t)] -9.8;
[t,h,v,a];
数据如下:
t h v a
00013.
06
1.0 06.5713.
19
13.
30
2.0 0
26.4
4
26.
58
13.
45
3.0 0
59.7
6
40.
06
13.
50
4.0 0
106.
57
53.
54
13.
43
5.0 0
166.
79
66.
89
13.
26
6.0 0
240.
27
80.
02
12.
99
7.0 0
326.
72
92.
83
12.
61
8.0 0
425.
79
105
.22
12.
15
9.0 0
536.
99
117
.11
11.
62
10.659.12811.
0080.4302
11. 00
793.
63
139
.14
10.
38
12. 00
937.
85
149
.18
9.7
1
13. 00
1091
.79
158
.55
9.0
2
14. 00
1254
.71
167
.23
8.3
3
15. 00
1425
.93
175
.22
7.6
5
16. 00
1604
.83
182
.55
6.9
9
17. 00
1790
.78
189
.22
6.3
6
18. 00
1983
.13
195
.27
5.7
6
19. 00
2181
.24
200
.75
5.2
1
20. 00
2384
.47
205
.70
4.6
9
21. 00
2592
.36
210
.18
4.2
2
22. 00
2804
.52
214
.19
3.7
9
23.3020217 3.4
00.56.791
24. 00
3240
.08
221
.01
3.0
7
25. 00
3462
.65
223
.92
2.7
7
26. 00
3687
.88
226
.56
2.5
27. 00
3915
.58
228
.97
2.2
7
28. 00
4145
.60
231
.14
2.0
6
29. 00
4377
.76
233
.11
1.8
9