小船过河 matlab实现

上传人:笛音 文档编号:25658929 上传时间:2017-12-16 格式:DOC 页数:9 大小:228KB
返回 下载 相关 举报
小船过河  matlab实现_第1页
第1页 / 共9页
小船过河  matlab实现_第2页
第2页 / 共9页
小船过河  matlab实现_第3页
第3页 / 共9页
小船过河  matlab实现_第4页
第4页 / 共9页
小船过河  matlab实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《小船过河 matlab实现》由会员分享,可在线阅读,更多相关《小船过河 matlab实现(9页珍藏版)》请在金锄头文库上搜索。

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 未知,所以船过河的具体航线有多种情况,但针对本题过

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

3、os(a)dy/dt v2*sin(a)又由于 cos(a)=x/sqrt(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+y

4、2)-v2)分离变量得到:dx/x=du/(-u*v1*sqrt(1+u2)/(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)

5、.*y.(-k+1)-1/2.*(-0.01).(k).*y.(k+1);hangxing.my=0:-0.1:-100;for i=0:1:1000x(:,i+1)=xiaochuan(-i/10);endplot(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,船在静水中

6、的速度 v2,河水流速 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

7、=0,-d;opt=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(小船过河图2);gtext(x轴),gtext(y 轴);grid;(四)计算所得结果(1)当 v1=1m/s,v2=2m/s ,d=100m

8、 时 lv输入河宽 d=100输入河水流速 v1=1输入船在静水中速度 v2=2t,x,y 值如下:15.2600 12.6707 -69.631315.2700 12.6771 -69.611615.2800 12.6835 -69.591915.2900 12.6899 -69.572315.3000 12.6963 -69.5526.66.5700 0.0970 -0.000466.5800 0.0870 -0.000366.5900 0.0770 -0.000266.6000 0.0670 -0.000266.6100 0.0570 -0.000166.6200 0.0470 -0.0

9、00166.6300 0.0370 -0.000166.6400 0.0270 -0.000066.6500 0.0170 -0.000066.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, 0.5, 1.5, 2m/s; v2=2m/s 时所得结果当 d=100, v1=0,v2=2 时, lv输入河宽 d=100输入河水流速 v1=0输入船在静水中速度 v2=2t,x值如下

10、:47.1200 0 -5.760047.1300 0 -5.740047.1400 0 -5.720047.1500 0 -5.700047.1600 0 -5.680047.1700 0 -5.6600.49.9400 0 -0.120049.9500 0 -0.100049.9600 0 -0.080049.9700 0 -0.060049.9800 0 -0.040049.9900 0 -0.0200 50.0000 0 -0.0000此时由于 t=100,v1=0 ,v2=2,t=100/2=50,小船过河时间 t=50s, 小船任意时刻的位置如 xt 图所示,航线如“小船过河图 2

11、”所示,结果与解析解相符合。当 d=100, v1=0.5,v2=2 时, lv输入河宽 d=100输入河水流速 v1=0.5输入船在静水中速度 v2=2t,x值如下:0 0 -100.00000.0100 0.0050 -99.98000.0200 0.0100 -99.96000.0300 0.0150 -99.94000.0400 0.0200 -99.92000.0500 0.0250 -99.9000.53.2600 0.1071 -0.028353.2700 0.0928 -0.023353.2800 0.0783 -0.018553.2900 0.0638 -0.014153.3

12、000 0.0493 -0.0099 53.3100 0.0346 -0.006253.3200 0.0199 -0.002953.3300 0.0050 -0.0005则根据 t=53.33s 时小船到达对岸,小船任意时刻的位置如 xt 图所示,航线如“小船过河图 2”所示,结果与解析解相符合。当 d=100,v1=1.5,v2=2 时 lv输入河宽 d=100输入河水流速 v1=1.5输入船在静水中速度 v2=2t,x值如下:62.2500 25.4391 -7.250762.2600 25.4349 -7.245262.2700 25.4307 -7.239762.2800 25.426

13、4 -7.234262.2900 25.4222 -7.228862.3000 25.4180 -7.223362.3100 25.4137 -7.217862.3200 25.4095 -7.2124.111.5700 1.3581 -0.0001111.5800 1.3531 -0.0001 111.5900 1.3481 -0.0001111.6000 1.3431 -0.0001111.6100 1.3381 -0.0001111.6200 1.3331 -0.0001111.6300 1.3281 -0.0000111.6400 1.3231 -0.0000111.6500 1.31

14、81 -0.0000111.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.516196.1900 49.9383 -3.514796.2000 49.9383 -3.513396.2100 49.9384 -3.511996.2200 49.9384 -3.510596.2300 49.9385 -3.509196.2400 49.9385 -3.5077.149.9500 49.9992 -0.4095149.9600 49.9992

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号