欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    小船过河matlab实现.docx

    • 资源ID:5177930       资源大小:331.32KB        全文页数:10页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    小船过河matlab实现.docx

    (一) 问题分析一只小船要渡过一条宽为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) 船的速度方向始终指向终点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(xA2+yA2),sin(a)=-y/sqrt(xA2+yA2)0则微分方程为:dx/dt=v1-v2* x/sqrt(xA2+yA2)dy/dt=-v2* y/sqrt(xA2+yA2)初始条件为:x(0)=0,y(0)=-100;6以上就是小船航线的数学模型。(三) 求解模型的数学方法(解析解与数值解)解析解的得出,matlab算法的具体实现,以及解析解的图形根据dx/dt=v1-v2* x/sqrt(xA2+yA2)dy/dt=-v2* y/sqrt(xA2+yA2)两式相除得到 dy/dx=v2*y/(v1* sqrt(xA2+yA2)-v2)分离变量得到:dx/x=du/(-u*v1*sqrt(1+uA2)/(v1*sqrt(1+uA2)-v2)其中u=y/x;然后利用微分方程得到x关于y的解析表达式:x=1/2*cA(-k)*yA(1-k)-1/2*cAk*yA(k+1)然后根据初始条件:x(0)=0,y(0)=-d,d=100;得到:c=-0.01.则小船航线的解析数学表达式为:x=1/2*(-0.01)A(-k)*yA(-k+1)-1/2*(-0.01)A(k)*yA(k+1).解析解的matlab程序:xiaochuan.mfunction x=xiaochuan(y) k=0.3;x=1/2*(-0.01).A(-k).*y.A(-k+1)-1/2.*(-0.01).A(k).*y.A(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小船过河1-10 -20 -、-XI -40 -J-雪-50 -/ -60 -70 -80 -90 -10L! -'-11;-1-U.600.611.52-.2:633.5(2)数值解法的具体实现与matlab算法:根据此模型的微分方程:dx/dt=v1-v2* x/sqrt(xA2+yA2)dy/dt=-v2* y/sqrt(xA2+yA2)并且初始条件:x(0)=0,y(0)=-d通过龙格一一库塔方程求其数值解:由于该模型的参数为:河宽d,船在静水中的速度v2,河水流速v1,船在任意 时刻的位置(x,y),时间t,船在a点时t=0。则小船航线的微分方程的matlab 算法如下:xiaochuanl.m :function dx=xiaochuan1(t,x,v1,v2)s=(x(1)A2+x(2)A2)A0.5;%x(1),x(2)表示x,ydx=v1-v2*x(1)/s;-x(2)*v2/s; %以列向量的形式表示小船过河的微分方程在编写运行程序时设定时间t的起终点和中间的等分点,终点时间根据船在静水 中速度和水的流速设为150s,时间间隔为0.01s。Iv.mts=0:0.01:150;d=input('输入河宽d=');x0=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 时>> Iv输入河宽d=100输入河水流速v1=1输入船在静水中速度v2=2t,x,y值如下:15.260012.6707-69.631315.270012.6771-69.611615.280012.6835-69.591915.290012.6899-69.572315.300012.6963-69.552666.57000.0970-0.000466.58000.0870-0.000366.59000.0770-0.000266.60000.0670-0.000266.61000.0570-0.000166.62000.0470-0.000166.63000.0370-0.000166.64000.0270-0.000066.65000.0170-0.000066.66000.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 时,>> Iv输入河宽d=100输入河水流速v1=0输入船在静水中速度v2=2t,x值如下:47.12000-5.760047.13000-5.740047.14000-5.720047.15000-5.700047.16000-5.680047.17000-5.660049.94000-0.120049.95000-0.100049.96000-0.080049.97000-0.060049.98000-0.040049.99000-0.020050.00000-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 值如下:00 -100.00000.01000.0050-99.98000.02000.0100-99.96000.03000.0150-99.94000.04000.0200-99.92000.05000.0250-99.900053.26000.1071-0.028353.27000.0928-0.023353.28000.0783-0.018553.29000.0638-0.014153.30000.0493-0.009953.31000.0346-0.006253.32000.0199-0.002953.33000.0050-0.0005小船过河图2则根据t=53.33s时小船到达对岸,小船任意时刻的位置如xt图所示,航线如 “小船过河图2”所示,结果与解析解相符合。当 d=100,v1=1.5,v2=2 时>> lv输入河宽d=100输入河水流速v1=1.5输入船在静水中速度v2=2t,x值如下:62.250025.4391-7.250762.260025.4349-7.245262.270025.4307-7.239762.280025.4264-7.234262.290025.4222-7.228862.300025.4180-7.223362.310025.4137-7.217862.320025.4095-7.2124111.57001.3581-0.0001111.58001.3531-0.0001111.59001.3481-0.0001111.60001.3431-0.0001111.61001.3381-0.0001111.62001.3331-0.0001111.63001.3281-0.0000111.64001.3231-0.0000111.65001.3181-0.0000111.66001.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.180049.9382-3.516196.190049.9383-3.514796.200049.9383-3.513396.210049.9384-3.511996.220049.9384-3.510596.230049.9385-3.509196.240049.9385-3.5077149.950049.9992-0.4095149.960049.9992-0.4093149.970049.9992-0.4092149.980049.9992-0.4090149.990049.9992-0.4088150.000049.9992-0.4087/-t ®060100160t轴则知小船不会到达到达正对岸,小船任意时刻的位置如xt图所示,航线如“小 船过河图2”所示,结果与解析解相符合。

    注意事项

    本文(小船过河matlab实现.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开