数学实验第二次作业011561Word格式.docx

上传人:b****2 文档编号:837304 上传时间:2023-04-29 格式:DOCX 页数:17 大小:390.64KB
下载 相关 举报
数学实验第二次作业011561Word格式.docx_第1页
第1页 / 共17页
数学实验第二次作业011561Word格式.docx_第2页
第2页 / 共17页
数学实验第二次作业011561Word格式.docx_第3页
第3页 / 共17页
数学实验第二次作业011561Word格式.docx_第4页
第4页 / 共17页
数学实验第二次作业011561Word格式.docx_第5页
第5页 / 共17页
数学实验第二次作业011561Word格式.docx_第6页
第6页 / 共17页
数学实验第二次作业011561Word格式.docx_第7页
第7页 / 共17页
数学实验第二次作业011561Word格式.docx_第8页
第8页 / 共17页
数学实验第二次作业011561Word格式.docx_第9页
第9页 / 共17页
数学实验第二次作业011561Word格式.docx_第10页
第10页 / 共17页
数学实验第二次作业011561Word格式.docx_第11页
第11页 / 共17页
数学实验第二次作业011561Word格式.docx_第12页
第12页 / 共17页
数学实验第二次作业011561Word格式.docx_第13页
第13页 / 共17页
数学实验第二次作业011561Word格式.docx_第14页
第14页 / 共17页
数学实验第二次作业011561Word格式.docx_第15页
第15页 / 共17页
数学实验第二次作业011561Word格式.docx_第16页
第16页 / 共17页
数学实验第二次作业011561Word格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数学实验第二次作业011561Word格式.docx

《数学实验第二次作业011561Word格式.docx》由会员分享,可在线阅读,更多相关《数学实验第二次作业011561Word格式.docx(17页珍藏版)》请在冰点文库上搜索。

数学实验第二次作业011561Word格式.docx

空气阻力f=k*v^2=0.4v^2,

加速度a=dv/dt,

由牛顿第二定律有

F-f-G=ma,

即32000-0.4v^2-9.8*(1400-18t)=(1400-18t)*v’

v’=(32000-0.4v^2)/(1400-18t)-9.8

初始条件:

v0=0,

所以a=v’=(32000-0.4v^2)/(1400-18t)-9.8

h=

(用数值积分求解)

用龙格-库塔方法求t=60s(即燃料耗尽时)时的速度v:

编写如下M文件:

functiondv=huojiansudu(t,v)

F=32000;

b=0.4;

g=9.8;

c=1400;

q=18;

dv=(F-0.4*v^2)/(c-q*t)-g;

编写运行程序:

将时间t试探性等分为间隔0.5s的一系列等分点,作试探。

编程如下:

ts=0:

0.5:

60;

v0=0;

h

(1)=0

[t,v]=ode45(@huojiansudu,ts,v0);

[t,v]

a=(32000-0.4*v.^2)./(1400-18*t)-9.8;

fori=1:

120

h(i+1)=h(i)+0.5*(v(i)+v(i+1))*0.5;

end

解得:

火箭引擎关闭瞬间v=267.2612m/s,a=0.9143m/s^2,h=12190m

将h减小,取h=0.05,算得的结果与上面的相差不大,所以上面的结果比较可靠。

第二阶段:

F=0,m=1400kg-1080kg=320kg,初始条件变为v(0)=267.2612,

h(0)=12190m

由牛顿第二定律

-f-G=ma

所以v’=a=(-0.4*v^2)/320-9.8,

h=h(0)+

用龙格-库塔方法,编写M文件如下

functiondv=huojiansudu2(t,v)

dv=-0.4*v^2/320-9.8;

由于不知道所需的总时间,结束的标志是v<

=0。

先选一个较大的t,不妨为60s。

ts=60:

120;

v

(1)=267.2612;

h

(1)=12190

[t,v]=ode45(@huojiansudu2,ts,v0);

60

if(v(i)>

=0&

v(i+1)<

=0)

break

end,i

上面的程序在算i=23,即当t=60+23/2=71.5s时,火箭速度已经基本是0了,所以重新编程,t到71.5即可:

71.5;

h

(1)=12190;

[t,v]=ode45(@huojiansudu2,ts,v

(1));

由此算出的最后的两个v分别是2.9626和-1.9388,由此可见h取的还是比较大的,结果会不太可靠,取h=0.05,重新计算

0.05:

得当t=71.3s时,v比较接近0(0.02)了。

所以重新编程,计算v=0时的a和h

71.3;

v0=267.2612;

[t,v]=ode45(@huojiansudu2,ts,v0);

a=-0.4*v.^2/320-9.8;

226

求得火箭达到的最高点为h=13116m,此时加速度a=-9.8m/s^2

下面作速度,加速度和高度对时间的变化图,编程如下:

h=0

figure

(1)

plot(t,v),gridon,holdon

figure

(2)

plot(t,a),gridon,holdon

figure(3)

plot(t,h),gridon,holdon

0.01:

1130

plot(t,v),gridon,gtext(‘v(t)’),

plot(t,a),gridon,gtext(‘a(t)’),

plot(t,h),gridon,gtext(‘h(t)’),

各自与t的关系图如下

v(t)图

a(t)图

h(t)图

4.5、题目概述:

一小船要渡过宽为d的河流,由此岸的A点到正对着得彼岸的B点,已知水流速度v1与船在静水中速度之比为k。

(1)建立如图所示的坐标系:

设C点的坐标为(x,y)

则dy=-v2cos(a1)dt

dx=(v1-v2sin(a1))dt

其中cos(a1)=y/

sin(a1)=x/

代入上面的式子,得

(2)t=0时刻,x=0,y=d=100m,v1=1m/s,v2=2m/s

用龙格-库塔方法求解,编写的M文件如下:

functiondx=chuanduhe(t,x)

v1=1,v2=2

dx=[v1-v2*x/sqrt(x^2+y^2);

-v2*y/sqrt(x^2+y^2)];

因为事先不知道渡河所需的时间,所以需要估计时间t。

如果水流速度为0,则需要50s船能够到达对面。

不妨取t=100s,看在100s之前是否有y=0(此时x也应该等于0)。

编写的运行程序如下:

1:

100;

x0=[100,0];

[t,x]=ode23s(@chuanduhe,ts,x0);

[t,x]

100

if(x(i,2)>

x(i+1,2)<

end,i

计算得i=67(开始时用ode45计算,很长时间不出结果,就换了ode23s),即67s时船已到达了对面河岸。

在以上的程序中在加一句代码(在command窗口输入即可),作出航行曲线

plot(x(1:

67,1),x(1:

67,2))

如图:

(与前面图的上下位置颠倒了)

(3)、分别将v1=0,0.5,1.5,2代入上面的程序,替换掉原来的v1,得新的结果(因为以上程序运行时间较长,所以去掉了循环判断,而从y的值来判断,另外,t一开始的终值也不是直接取100,而是从10开始不断增加,每次增加10,到后来可以再增加的慢一些,这样能够较快的得到结果)注意,以下四张图均是B点在下,A点在上。

当v1=0时,当t=50时,y=0,此时相应的x=0,且发现x一直为0,说明船沿直线到达对岸,与实际相符。

航行曲线如下:

当v1=0.5时(对t的取值,运行时间有较大变化,t=53时,还非常快,而t=54时,则需要较长时间才会出结果),当t=54时,y=0,x=0,航行曲线如下:

当v1=1.5时,计算得当t=115s时,船到达对岸B点。

实际上船在之前就已经到达了对岸,只是不在B点,逆流而上了。

当v1=2时,在保留小数点后四位数字的情况下,t=375时,y=0,但此时x并不等于0,而是50.0076。

因为此时v1=v2,而船头的方向(即v2的方向)基本上沿河岸向着B点,但由于v1=v2,所以无论如何船也不可能更接近B点。

多以最终船无法到达B点。

航行曲线图如下:

4.8、题目概述:

两种群相互竞争模型如下:

x’(t)=r1*x(1-x/n1-s1*y/n2),

y’(t)=r2*y(1-s2*x/n1-y/n2),

其中x(t),y(t)是两种群的数量,r1,r2是它们各自的固有增长率,n1,n2为它们的最大容量,s1:

对于供养甲的资源而言,单位数量乙(相对n2)的消耗为单位数量甲(相对n1)的消耗的s1倍,对s2有相应解释。

(1)若r1=r2=1,n1=n2=100,s1=0.5,s2=2,初值x0=y0=10

编写M文件如下:

functiondx=jingzheng(t,x)

r1=1,r2=1,n1=100,n2=100,s1=0.5,s2=2;

dx=[r1*x

(1)*(1-x

(1)/n1-s1*x

(2)/n2);

r2*x

(2)*(1-s2*x

(1)/n1-x

(2)/n2)]

编写运行程序并尝试t取10,之后逐渐增大,直到两者数量随时间变化呈现周期性变化时停止(主要通过图像看,数值不容易看出周期性),代码如下:

10;

x0=[10,10];

[t,x]=ode23s(@jingzheng,ts,x0);

plot(t,x(:

1),’-r’,t,x(:

2))

plot(x(:

1),x(:

运行以上程序可得当t=10时,甲已经基本上达到100(最大容量),而乙则变为0。

说明二者竞争不平衡,乙在t充分大时会灭绝,而甲则达到了最大容量,且一直保持此水平。

x(t),y(t)及y(x)图如下,借助二图能够更加直观的看到这种变化:

(2)改变r1,r2,n1,n2,x0,y0,s1,s2不变,计算结果。

不妨设

r1=2,r2=1,n1=400,n2=200,x0=50,y0=20。

代入上面的程序,可以看出甲更加快的趋于最大容量,而乙则更加快的趋于灭绝。

x(t),y(t)及y(x)图如下:

由此可以看出因为s1<

1而s2>

1,所以甲在竞争中会占优,最终的结果会是甲达到最大容量,而乙则灭绝,与初值及最大容量等无关。

再令s1=1.5,s2=0.7,其他不变(同此问中所设数值),代入上面的程序,尽管厨师情况下,是甲的数量占优势(我给的初始值如此),但是,一段时间后,甲的数量就开始减小,并最终趋于0,而乙则达到了最大容量。

由此可以分析:

即当两个s中一个大于1,而另一个小于1时,总是s小于1的种群在竞争中占优,最终取得竞争的胜利(即对方灭绝,而自己达到最大容量),而无论初始值如何,只要时间足够长。

从生态学的角度分析,s1是对于供养甲的资源而言,单位数量乙(相对n2)的消耗为单位数量甲(相对n1)的消耗的s1倍。

即二者是靠争夺对方的资源来进行竞争的,但显然,因为s1<

1,甲比乙消耗对方的资源的能力更强,所以甲在竞争中最终会取得胜利。

(3)当s1=0.8,s2=0.7时,其他数值仍取第

(2)问中的值,代入上面的程序得:

当t足够大时,甲和乙均达到了稳定的数值(甲为183,乙为134),而不再变化,竞争趋于平衡,互相之间都不再对对方的数量产生影响,实际是相互制衡。

双方消耗对方资源的能力都较低(<

1),所以最后会达到平衡。

当s1=1.5,s2=1.7时,其他数值不变,代入上面的程序得,最终甲在竞争中取得了胜利,而乙灭绝了,更换一下s1,取s1=2.7,代入程序可得,最终甲灭绝了,乙取得了胜利。

所以在s1,s2均大于1的情况下,二者的竞争还和初始值有关,因为二者均具有很强的消耗对方资源的能力(s均大于1),所以在竞争中谁会胜利除了要看s外,还要看初始值,二者共同决定了谁的资源先被对手消耗完。

总结:

本次试验主要学习了欧拉法和龙格-库塔方法求解常微分方程的数值解,我觉得在做题的过程中,首先要对原理弄的很清楚,否则很难进行实验,另外,实验就要不断的去试,从中找出好的解法和结果,同时兼顾时间,就比如一开始在做第二道题时,直接给t取了一个较大的值,等了好长时间,却没有结果,很是郁闷,其实完全没必要等,重新给t取个小值做,得不到最终结果的话,就逐渐增加t,这样会节约大量的时间。

另外,对于第三题其实还可以进一步分析,s的值以及初值对于最终的竞争结果的共同作用,得出一个叫较一般的结论,但问题有点复杂,试了几组不同的s和初值,没有发现很明显的关系,限于时间,只好放弃。

还有,做题速度较慢,以后要提高一下!

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2