小船过河matlab实现_第1页
小船过河matlab实现_第2页
小船过河matlab实现_第3页
小船过河matlab实现_第4页
小船过河matlab实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(一)问题分析一只小船要渡过一条宽为d的河流,目标是起点A正对着的另一岸B点。已知河水的流速v1与船在静水中的速度v2之比为k。(1) 建立小船的航线模型,并求其解析解。(2) 设d=100m,v1=1m/s,v2=2m/s,用数值解法求渡河所需时间,任意时刻小船的位置及航行曲线,作图,并于解析解比较;(3) 若流速v1=0,0.5,1.5,2(m/s),结果如何。这个问题涉及的主要变量有:船在静水中的速度v2,河水的速度v1,v1与v2速度之比为k,船的航行时间t,船在任意时刻的位置x,y。由于k未知,所以船过河的具体航线有多种情况,但针对本题过河问题为了更好的解决问题,不妨做以下假设:(1

2、)船的速度方向始终指向终点B;(2)船在航行的过程中任意时刻的总速度与航线相切。通过以上假设,小船过河问题就简化为:速度求曲线轨迹问题,微分方程问题。(二)建立数学模型建立直角坐标系,为方便起见,将B点设为坐标原点,河岸为x轴,垂直于河岸方向为y轴,如图所示。设在t时刻,小船的位置为(x,y),船头指向与水平方向的夹角为a。则此时水平方向的速度为v1-v2*cos(a),竖直方向的速度为v2*sin(a)。又由于水平方向的速度为dx/dt,竖直方向的速度为dy/dt。则可列出小船航线的微分方程:dx/dt=v1-v2*cos(a)dy/dt v2*sin(a)又由于cos(a)=x/sqrt(

3、x2+y2),sin(a)=-y/sqrt(x2+y2)。则微分方程为:dx/dt=v1-v2* x/sqrt(x2+y2)dy/dt=-v2* y/sqrt(x2+y2)初始条件为:x(0)=0,y(0)=-100;6以上就是小船航线的数学模型。(三)求解模型的数学方法(解析解与数值解)(1)解析解的得出,matlab算法的具体实现,以及解析解的图形根据dx/dt=v1-v2* x/sqrt(x2+y2)dy/dt=-v2* y/sqrt(x2+y2)两式相除得到dy/dx=v2*y/(v1* sqrt(x2+y2)-v2)分离变量得到:dx/x=du/(-u*v1*sqrt(1+u2)/(

4、v1*sqrt(1+u2)-v2)其中u=y/x;然后利用微分方程得到x关于y的解析表达式:x=1/2*c(-k)*y(1-k)-1/2*ck*y(k+1)然后根据初始条件:x(0)=0,y(0)=-d,d=100;得到:c=-0.01.则小船航线的解析数学表达式为:x=1/2*(-0.01)(-k)*y(-k+1)-1/2*(-0.01)(k)*y(k+1).解析解的matlab程序:xiaochuan.mfunction x=xiaochuan(y)k=0.3;x=1/2*(-0.01).(-k).*y.(-k+1)-1/2.*(-0.01).(k).*y.(k+1); hangxing.

5、my=0:-0.1:-100;for i=0:1:1000 x(:,i+1)=xiaochuan(-i/10);end plot(x,y);title('小船过河1')xlabel('x轴');ylabel('y轴');>> hangxing.m(2)数值解法的具体实现与matlab算法:根据此模型的微分方程:dx/dt=v1-v2* x/sqrt(x2+y2)dy/dt=-v2* y/sqrt(x2+y2)并且初始条件:x(0)=0,y(0)=-d通过龙格库塔方程求其数值解:由于该模型的参数为:河宽d,船在静水中的速度v2,河水流速

6、v1,船在任意时刻的位置(x,y),时间t,船在a点时t=0。则小船航线的微分方程的matlab算法如下:xiaochuan1.m :function dx=xiaochuan1(t,x,v1,v2)s=(x(1)2+x(2)2)0.5;%x(1),x(2)表示x,ydx=v1-v2*x(1)/s;-x(2)*v2/s;%以列向量的形式表示小船过河的微分方程在编写运行程序时设定时间t的起终点和中间的等分点,终点时间根据船在静水中速度和水的流速设为150s,时间间隔为0.01s。lv.mts=0:0.01:150;d=input('输入河宽d=');x0=0,-d;op

7、t=odeset('reltol',1e-6,'abstol',1e-9);v1=input('输入河水流速v1=');v2=input('输入船在静水中速度v2=');t,x=ode15s(xiaochuan1,ts,x0,opt,v1,v2);t,xsubplot(1,2,1),plot(t,x),title('xt图'),gtext('t轴'),gtext('x轴');grid;subplot(1,2,2),plot(x(:,1),x(:,2),title('小船过河图

8、2');gtext('x轴'),gtext('y轴');grid;(四)计算所得结果(1)当v1=1m/s,v2=2m/s,d=100m时>> lv输入河宽d=100输入河水流速v1=1输入船在静水中速度v2=2t,x,y值如下:15.2600 12.6707 -69.6313 15.2700 12.6771 -69.6116 15.2800 12.6835 -69.5919 15.2900 12.6899 -69.5723 15.3000 12.6963 -69.5526. 66.5700 0.0970 -0.0004 66.5800 0.

9、0870 -0.0003 66.5900 0.0770 -0.0002 66.6000 0.0670 -0.0002 66.6100 0.0570 -0.0001 66.6200 0.0470 -0.0001 66.6300 0.0370 -0.0001 66.6400 0.0270 -0.0000 66.6500 0.0170 -0.0000 66.6600 0.0070 -0.0000则当d=100m,v1=1m/s,v2=2m/s时t=66.64s时小船到达对岸b点,渡河所需时间t=66.64s,小船任意时刻的位置如xt图所示,航线如“小船过河图2”所示(2)d=100m, v1=0,

10、0.5, 1.5, 2m/s; v2=2m/s时所得结果当d=100,v1=0,v2=2时,>> lv输入河宽d=100输入河水流速v1=0输入船在静水中速度v2=2t,x值如下: 47.1200 0 -5.7600 47.1300 0 -5.7400 47.1400 0 -5.7200 47.1500 0 -5.7000 47.1600 0 -5.6800 47.1700 0 -5.6600.49.9400 0 -0.1200 49.9500 0 -0.1000 49.9600 0 -0.0800 49.9700 0 -0.0600 49.9800 0 -0.0400 49.99

11、00 0 -0.0200 50.0000 0 -0.0000此时由于t=100,v1=0,v2=2,t=100/2=50,小船过河时间t=50s, 小船任意时刻的位置如xt图所示,航线如“小船过河图2”所示,结果与解析解相符合。当d=100,v1=0.5,v2=2时,>> lv输入河宽d=100输入河水流速v1=0.5输入船在静水中速度v2=2t,x值如下: 0 0 -100.0000 0.0100 0.0050 -99.9800 0.0200 0.0100 -99.9600 0.0300 0.0150 -99.9400 0.0400 0.0200 -99.92000.0500 0

12、.0250 -99.9000. 53.2600 0.1071 -0.0283 53.2700 0.0928 -0.0233 53.2800 0.0783 -0.0185 53.2900 0.0638 -0.0141 53.3000 0.0493 -0.0099 53.3100 0.0346 -0.0062 53.3200 0.0199 -0.0029 53.3300 0.0050 -0.0005则根据t=53.33s时小船到达对岸,小船任意时刻的位置如xt图所示,航线如“小船过河图2”所示,结果与解析解相符合。当d=100,v1=1.5,v2=2时>> lv输入河宽d=100输入河

13、水流速v1=1.5输入船在静水中速度v2=2t,x值如下:62.2500 25.4391 -7.2507 62.2600 25.4349 -7.2452 62.2700 25.4307 -7.2397 62.2800 25.4264 -7.2342 62.2900 25.4222 -7.2288 62.3000 25.4180 -7.2233 62.3100 25.4137 -7.2178 62.3200 25.4095 -7.2124.111.5700 1.3581 -0.0001 111.5800 1.3531 -0.0001 111.5900 1.3481 -0.0001 111.600

14、0 1.3431 -0.0001 111.6100 1.3381 -0.0001 111.6200 1.3331 -0.0001 111.6300 1.3281 -0.0000 111.6400 1.3231 -0.0000 111.6500 1.3181 -0.0000 111.6600 1.3131 -0.0000此时由于d=100,v1=0,v2=1.5,t=111.63, 小船任意时刻的位置如xt图所示,航线如“小船过河图2”所示,结果与解析解相符合当d=100,v1=2,v2=2时>> lv输入河宽d=100输入河水流速v1=2输入船在静水中速度v2=2t,x值如下:96.1800 49.9382 -3.5161 96.1900 49.9383 -3.5147 96.2000 49.9383 -3.5133 96.2100 49.9384 -3.5119 96.2200 49.9384 -3.5105 96.2300 49.9385 -3.5091

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论