第二次报告.docx

上传人:b****6 文档编号:6960858 上传时间:2023-01-13 格式:DOCX 页数:20 大小:382.12KB
下载 相关 举报
第二次报告.docx_第1页
第1页 / 共20页
第二次报告.docx_第2页
第2页 / 共20页
第二次报告.docx_第3页
第3页 / 共20页
第二次报告.docx_第4页
第4页 / 共20页
第二次报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第二次报告.docx

《第二次报告.docx》由会员分享,可在线阅读,更多相关《第二次报告.docx(20页珍藏版)》请在冰豆网上搜索。

第二次报告.docx

第二次报告

实验一:

火箭发射问题

实验目的:

求引擎关闭瞬间的高度、速度、加速度以及火箭到达最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图像。

实验分析:

此题为一个二阶常微分方程问题,可以采用龙格-库塔方法来解决。

构建如下常微分方程组:

第一阶段(引擎开启):

第二阶段(引擎关闭):

实验过程:

以向上为正方向

令x=(x

(1),x

(2)),x

(1)=v(速度),x

(2)=h(高度),xdot

(1)=a(加速度)。

且均为国际单位制。

Matlab实现:

设计两个函数来分段解决:

functionxdot=huojian1(t1,x1)

xdot=[(32000-0.4*x

(1)^2)/(1400-18*t)-9.8;x

(1)];

 

functionxdot=huojian2(t2,x2)

xdot=[-0.4*x

(1)^2/320-9.8;x

(1)];

运行程序:

ts=0:

0.01:

60;

x0=[0,0];

[t1,x1]=ode45(@huojian1,ts,x0);

diyijieduan=[t1,x1];

ts=60:

0.01:

71.3;

x0=[diyijieduan(6001,2),diyijieduan(6001,3)];

[t2,x2]=ode45(@huojian2,ts,x0);

dierjieduan=[t2,x2];

t=[t1;t2];x=[x1;x2];

a1=(32000-0.4*x1(:

1).^2)./(1400-18*t1)-9.8;

a2=(-0.4*x2(:

1).^2)/320-9.8;

[t,x];

a=[a1;a2];

[t,x,a]

subplot(3,1,1),plot(t,x(:

1)),grid,

subplot(3,1,2),plot(t,x(:

2)),grid,

subplot(3,1,3),plot(t,a),grid

实验结果:

引擎关闭瞬间(60s)时的瞬时速度为267.2m/s,高度为12.2km,加速度为0.917m/(s^2)

到达最高点时(约71s)时,瞬时速度为0,高度为13.1km,加速度为-9.8m/(s^2)

部分数据如下:

第一阶段末:

t(s)v(m/s)h(m)

59.9600000000000267.22051746278312179.0949075245

59.9700000000000267.22967222083712181.7671854678

59.9800000000000267.23883130293312184.4395474148

59.9900000000000267.24799475986212187.1119932895

60267.25716264261112189.7845230156

第二阶段末:

t(s)v(m/s)h(m)

71.26000000000000.41432188518560913115.2971996489

71.27000000000000.31632017947136413115.3008528711

71.28000000000000.21831925490201713115.3035260775

71.29000000000000.12031887269588513115.3052192741

71.30000000000000.022318794167656413115.3059324645

图像如下:

V(速度)-t图像:

H(高度)-t图像:

a(加速度)-t图像:

实验总结:

由于龙格-库塔方法存在一定的误差,结果不一定完全符合实际情况。

由于刚开始使用函数.M文件,遇到了不少的麻烦,但是已经开始熟悉Matlab的操作环境,这道火箭发射的题关键在于方程组的建立,以及不能忽视地球的吸引力的影响。

 

实验二:

放射性物质

实验目的:

通过进行数学建模,计算装有放射性物质的容器会不会在掉入海底之前达到可以使其破损的速度。

实验分析:

此题可以建立常微分方程组,利用龙格-库塔方法求解。

Matlab实现(单位均为题目所给单位):

建立如下函数:

functionxdot=fangshe(t,x)

G=527.436;

k=0.08;

F=470.327;

xdot=[x

(2);(G-k/0.3048*x

(2)-F)*9.8/G/0.3048];

运行如下命令:

ts=0:

0.005:

13.7;

x0=[0,0];

[t,x]=ode45(@fangshe,ts,x0);

plot(x(:

,1),x(:

,2)),grid

部分数据如下:

速度超过40ft/s时:

 

h(ft)v(ft/s)

262.06439201302939.9677475522145

262.26426627304439.9819562690014

262.46421157380839.9961638491457

262.664227909640.010*********

262.864315274855.024*********

 

即将到达海底时:

 

h(ft)v(ft/s)

299.180********442.5070918706731

299.39338271779242.5210974497306

299.60602321665442.5351019083958

299.81873373500942.5491052467585

.0315********42.5631074649083

300.24436480779242.5771085629347

 

得到如下图像:

v(ft/s)-h(ft)

数值解结果:

在未到达海底之前速度已经超过40ft/s,工程师获得胜利。

解析解:

通过计算常微分方程:

求得:

再将上式积分得:

联立得:

利用matlab语句求解:

v=dsolve('Dv=3.4813357-0.016*v','v(0)=0','t')

得:

v=34813357/160000-(34813357*exp(-(2*t)/125))/160000;

进而

得:

h=217.583*t-217.583*125/2*exp(-(2*t)/125)-13598.968;

当v=40ft/s时,得t=12.696s,h=262.4887ft,因此在到达海底前已经破裂工程师获胜。

数值解数据如下:

在262.46~262.66ft之间速度达到40ft/s

262.46421157380839.9961638491457

262.664227909640.010*********

与解析解v=40ft/s时h=262.4887ft基本一致。

因此很好的验证了龙格库塔在解决非线性问题时的合理性。

求解析解图像:

在matlab中执行:

t=0:

0.005:

13.7;

v=34813357/160000-(34813357*exp(-(2*t)/125))/160000;

h=217.583*t+217.583*125/2*exp(-(2*t)/125)-13598.968;

plot(h,v),grid,axis([0350045])

得到如下解析解图像:

与数值解图像基本一致。

实验总结:

通过计算解析解,可以更好地验证matlab的数值解的合理性。

实验三:

小船过河问题

实验目的:

用解析和数值的方法分别分析小船过河的各种情况

实验分析:

此题可以设计二元微分方程组来进行求解,方程组如下:

(以出发点为原点,以AB射线为Y轴正向,以向右为X轴正向)

(1)解析解:

由本题微分方程表达式:

可以推出y-x的解析表达式,如下:

,其中c为待定常数,

为速度比。

代入初值条件

,所以有

,可以表示为x(y)的显示表达式:

利用matlab绘制出解析解的函数图象:

y=0:

0.1:

100;

x=-0.5*(-0.01)^0.5*(y-100).^1.5+0.5*(-0.01)^(-0.5)*(y-100).^0.5;

plot(x,y),grid,gtext('y(x)')

部分数据如下:

x(m)y(m)

00

0.050.10

0.100.20

0.150.30

…………

3.1599.60

2.7399.70

2.2399.80

1.5899.90

0100.00

解析解图像如下:

等待与接下来计算的数值解图像作对比。

(2)求数值解:

当d=100m,v1=1m/s,v2=2m/s,用matlab编写如下函数:

functiondx=guohe(t,x)

v1=1;v2=2;d=100;

b=sqrt(x

(1)^2+(d-x

(2))^2);

dx=[-x

(1)*v2/b+v1;(d-x

(2))*v2/b];

运行命令:

ts=0:

0.05:

66.7;

x0=[0,0];

[t,x]=ode45(@guohe,ts,x0);

[t,x]

plot(t,x),grid,gtext('x(t)'),gtext('y(t)'),pause

plot(x(:

1),x(:

2)),grid,gtext('y(x)')

部分数据如下:

t(s)x(m)y(m)

000

0.05000.09990.1000

0.10000.19980.2000

0.15000.29950.3000

0.20000.39920.4000

0.25000.49870.5000

0.30000.59820.6000

………………

66.50000.153899.9988

66.55000.103899.9987

66.60000.053999.9994

66.65000.0039100.0000

66.7000-0.0000100.0000

得到如下图像

航行轨迹:

过河时间为约66.7s

与解析解相比较,结果基本一致。

(3)

当v1=0时,改换函数中的参数并通过试探运行如下命令:

ts=0:

0.1:

50;

x0=[0,0];

[t,x]=ode45(@guohe,ts,x0);

[t,x]

plot(t,x),grid,gtext('x(t)'),gtext('y(t)'),pause

plot(x(:

1),x(:

2)),grid,gtext('y(x)')

部分数据如下:

当ts=0:

0.1:

50时:

t(s)x(m)y(m)

48.8500097.7000

48.9000097.8000

48.9500NaNNaN

49.0000NaNNaN

49.0500NaNNaN

49.1000NaNNaN

49.1500NaNNaN

49.2000NaNNaN

49.2500NaNNaN

49.3000NaNNaN

49.3500NaNNaN

49.4000NaNNaN

49.4500NaNNaN

49.5000NaNNaN

49.5500NaNNaN

49.6000NaNNaN

49.6500NaNNaN

49.7000NaNNaN

49.7500NaNNaN

49.8000NaNNaN

49.8500NaNNaN

49.9000NaNNaN

49.9500NaNNaN

50.00000100.0000

当ts=0:

0.1:

51时:

t(s)x(m)y(m)

49.6000099.2000

49.7000099.4000

49.8000099.6000

49.9000099.6488

50.0000099.5051

50.1000099.3006

50.2000099.1322

50.3000099.0617

50.4000099.1161

50.5000099.2874

50.6000099.5327

50.7000099.7741

50.80000100.0706

50.90000100.0154

51.0000099.8303

均存在一定的误差。

误差来源:

龙格库塔法针对的是非线性常微分方程的问题,而当v1=0时,已经变为线性方程,因而在结尾的部分会出现明显问题。

但是大体上其准确性还是值得信赖的。

得到如下图像:

y(t)和x(t)图像:

航行轨迹:

此种情况下小船直线横渡到对面的B位置。

过河时间为100/2=50s

当v1=0.5时,

运行程序:

ts=0:

0.05:

53.35;

x0=[0,0];

[t,x]=ode45(@guohe,ts,x0);

[t,x]

plot(t,x),grid,gtext('x(t)'),gtext('y(t)'),pause

plot(x(:

1),x(:

2)),grid,gtext('y(x)')

部分数据:

t(s)x(m)y(m)

000

0.05000.02500.1000

0.10000.04990.2000

0.15000.07490.3000

0.20000.09980.4000

……

53.20000.191499.9373

53.25000.120799.9664

53.30000.048699.9901

53.35000.0000100.0000

得如下图像:

航行轨迹:

 

到达时间是:

53.35s

与v1=1时相比较,该图像的x的峰值位置较远离y=100的直线

当v1=1.5时,

运行如下程序:

ts=0:

0.05:

114.3;

x0=[0,0];

[t,x]=ode45(@guohe,ts,x0);

[t,x]

plot(t,x),grid,gtext('x(t)'),gtext('y(t)'),pause

plot(x(:

1),x(:

2)),grid,gtext('y(x)')

部分数据:

t(s)x(m)y(m)

000

0.05000.07500.1000

0.10000.14980.2000

0.15000.22470.3000

……

114.15000.0564100.0000

114.20000.0314100.0000

114.25000.0064100.0000

114.30000.0000100.0000

有如下图像:

 

航行轨迹:

到达时间是:

114.3s

观察到随着v1的增加,x的峰值位置逐渐向y=100靠拢。

当v1=2m/s时,由于船速和水流速度相当,由矢量关系推测可能到达不了对面的目的地。

同上理运行matlab得到如下图像:

航行轨迹:

最终x的峰值位置到达y=100的直线上,

船停留在(49.7315,100)的位置上,无法到达B点

实验总结:

通过这个小船过河的实验,我们更加体会到matlab在解决实际问题中的价值,它能够很快的绘制出较为精确的图像,给人直观的感受。

但是龙格库塔法在处理线性问题时候显得并不十分准确。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1