数学实验常微分方程数值解.docx
《数学实验常微分方程数值解.docx》由会员分享,可在线阅读,更多相关《数学实验常微分方程数值解.docx(35页珍藏版)》请在冰豆网上搜索。
数学实验常微分方程数值解
实验4常微分方程数值解
分1黄浩2011011743
一、实验目的
1.掌握用MATLAB软件求微分方程初值问题数值解的方法;
2.通过实例学习用微分方程模型解决简化的实际问题;
3.了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。
二、实验内容
1.《数学实验》第一版(问题2)
问题叙述:
小型火箭初始重量为1400kg,其中包括1080kg燃料。
火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃烧用尽时关闭。
设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。
模型转换及实验过程:
(一)从发射到引擎关闭
设火箭总质量为m,上升高度为h,瞬时速度为v,瞬时加速度为a,由燃料燃烧时间t=60s,可列如下的方程组:
其中
因此,上述方程为二元常微分方程组,选择t为自变量,h和v为因变量进行分析。
初值条件:
对上述模型,使用ode45()函数求数值解(程序见四.1、四.2),结果如下:
x
h(t)
v(t)
a(t)
0.00
0.00
0.00
13.0571
1.00
6.57
13.19
13.3045
2.00
26.44
26.58
13.4533
3.00
59.76
40.06
13.4972
4.00
106.57
53.54
13.4331
5.00
166.79
66.89
13.2613
6.00
240.27
80.02
12.9853
7.00
326.72
92.83
12.6122
8.00
425.79
105.22
12.1520
9.00
536.99
117.11
11.6169
10.00
659.80
128.43
11.0213
11.00
793.63
139.14
10.3800
12.00
937.85
149.18
9.7083
13.00
1091.79
158.55
9.0209
14.00
1254.71
167.23
8.3309
15.00
1425.93
175.22
7.6502
16.00
1604.83
182.55
6.9901
17.00
1790.78
189.22
6.3593
18.00
1983.13
195.27
5.7646
19.00
2181.24
200.75
5.2095
20.00
2384.47
205.70
4.6946
21.00
2592.36
210.18
4.2220
22.00
2804.52
214.19
3.7943
23.00
3020.56
217.79
3.4120
24.00
3240.08
221.01
3.0730
25.00
3462.65
223.92
2.7726
26.00
3687.88
226.56
2.5044
27.00
3915.58
228.97
2.2677
28.00
4145.60
231.14
2.0633
29.00
4377.76
233.11
1.8898
30.00
4611.86
234.91
1.7433
31.00
4847.68
236.57
1.6178
32.00
5085.02
238.14
1.5062
33.00
5323.85
239.61
1.4095
34.00
5564.11
240.99
1.3293
35.00
5805.77
242.28
1.2650
36.00
6048.72
243.50
1.2139
37.00
6292.87
244.68
1.1708
38.00
6538.11
245.83
1.1303
39.00
6784.48
246.96
1.0947
40.00
7031.96
248.05
1.0663
41.00
7280.54
249.10
1.0456
42.00
7530.19
250.12
1.0308
43.00
7780.85
251.14
1.0178
44.00
8032.49
252.15
1.0024
45.00
8285.12
253.16
0.9876
46.00
8538.75
254.15
0.9763
47.00
8793.39
255.12
0.9696
48.00
9049.01
256.07
0.9663
49.00
9305.58
257.03
0.9624
50.00
9563.08
257.99
0.9527
51.00
9821.52
258.95
0.9412
52.00
10080.93
259.90
0.9337
53.00
10341.30
260.83
0.9328
54.00
10602.62
261.75
0.9363
55.00
10864.86
262.67
0.9370
56.00
11127.98
263.61
0.9258
57.00
11392.04
264.54
0.9138
58.00
11657.03
265.46
0.9106
59.00
11922.96
266.35
0.9161
60.00
12189.78
267.26
0.9170
由上表可知,引擎关闭瞬间,火箭的高度为12189.78m,速度为267.26m/s,加速度为0.9170m/s2,火箭至此已飞行60s
而高度、速度、加速度随时间的变化曲线如下:
(二)从引擎关闭到最高点
设引擎关闭时,
,由上一问的结果可知,
,
,
,则可列二元常微分方程组如下:
因此,可选择
为自变量,h、v为因变量进行分析(程序见四.3、四.4),实验结果如下:
0
12190
267.26
-99.085
1
12416
192.70
-56.217
2
12585
147.43
-36.971
3
12716
116.10
-26.650
4
12820
92.80
-20.565
5
12903
74.30
-16.700
6
12969
58.95
-14.145
7
13021
45.79
-12.421
8
13061
34.05
-11.249
9
13090
23.21
-10.473
10
13108
12.99
-10.011
11
13116
3.11
-9.812
12
13114
-6.70
-9.856
13
13102
-16.68
-10.148
14
13081
-27.15
-10.722
15
13048
-38.35
-11.639
16
13004
-50.56
-12.995
17
12947
-64.36
-14.978
18
12874
-80.70
-17.942
19
12784
-100.86
-22.516
20
12670
-126.76
-29.885
由上表可知,当
时,
有零点,即该区间内某时刻火箭达到最高点。
再进行更细致的实验(程序略),设步长为0.01,观察该区间内
的零点,如下表所示:
11.26
13115.35
0.4175
-9.8002
11.27
13115.35
0.3195
-9.8001
11.28
13115.35
0.2215
-9.8001
11.29
13115.36
0.1235
-9.8000
11.30
13115.36
0.0255
-9.8000
11.31
13115.71
-0.0411
-9.8000
11.32
13115.71
-0.1391
-9.8000
可以看出,当
,即总时间
时,火箭达到最高点,高度为13115.36m,加速度为-9.8m/s2。
对
的火箭上升全过程进行作图(程序见四.5):
得出结论:
a)引擎关闭瞬间,火箭的高度为12189.78m,速度为267.26m/s,加速度为0.9170m/s2
b)上升至最高点时,高度为13115.36m,加速度为-9.8m/s2,总时间为71.3s
2.《数学实验》第一版(问题5)
问题叙述:
一只小船度过宽为d的河流,目标是起点A正对着的另一岸B点,已知河水流速
与船在静止的水中的速度
之比为k。
(1)建立描述小船航线的数学模型,求其解析解;
(2)设d=100m,
=1m/s,
=2m/s,用数值方法求渡河所需时间、任意时刻小船位置及航行曲线,作图,并与解析解比较;
(3)若流速
=0,0.5,1.5,2(m/s),结果将如何?
模型转换及实验过程:
(1)小题.
根据题目要求,小船的指向只能正对B点,也就是说,
始终由小船指向B点。
以A点为原点,水流方向为x轴正方向,
方向为y轴正方向,建立直角坐标系,如下图所示:
根据运动学与动力学公式,不难得到如下的二元常微分方程组:
为了求出微分方程的解析解,将2式除以1式,得:
取
,则上式可化为:
由
,得
,代入上式,整理后得:
积分即得:
也即:
解上面的这个方程,再代入x=0,y=0的值,即得到微分方程的解析解:
(2)小题.由d=100m,
=1m/s,
=2m/s,设计程序,对该情况下微分方程的数值解进行分析(程序见四.6、四.7),结果如下:
(省略了前50s的数据)
t
x
y
50
14.47918
89.65979
51
13.83563
90.80182
52
13.15535
91.88601
53
12.43834
92.91235
54
11.68599
93.88014
55
10.90159
94.78280
56
10.08514
95.62033
57
9.23842
96.39241
58
8.36562
97.09313
59
7.46659
97.72296
60
6.54507
98.28035
61
5.60432
98.76148
62
4.64481
99.16760
63
3.67220
99.49534
64
2.68749
99.74418
65
1.69467
99.91433
66
0.69720
99.99889
67
-0.0000000181
100.00000
68
0.0000000221
100.00000
69
0.0000000159
100.00000
70
0.0000000724
100.00000
由上表可见,当出发后67s时,小船已经到达对岸,为了获得更精确的数值解,再设置步长为0.05,细分区间(程序略),结果