小船过河 matlab实现.doc

(一)问题分析一只小船要渡过一条宽为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/dtv2*sin(a)又由于cos(a)=x/sqrt(x^2+y^2),sin(a)=-y/sqrt(x^2+y^2)。则微分方程为:dx/dt=v1-v2*x/sqrt(x^2+y^2)dy/dt=-v2*y/sqrt(x^2+y^2)初始条件为:x(0)=0,y(0)=-100;6以上就是小船航线的数学模型。(三)求解模型的数学方法(解析解与数值解)(1)解析解的得出,matlab算法的具体实现,以及解析解的图形根据dx/dt=v1-v2*x/sqrt(x^2+y^2)dy/dt=-v2*y/sqrt(x^2+y^2)两式相除得到dy/dx=v2*y/(v1*sqrt(x^2+y^2)-v2)分离变量得到:dx/x=du/(-u*v1*sqrt(1+u^2)/(v1*sqrt(1+u^2)-v2))其中u=y/x;然后利用微分方程得到x关于y的解析表达式:x=1/2*c^(-k)*y^(1-k)-1/2*c^k*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.mfunctionx=xiaochuan(y)k=0.3;x=1/2*(-0.01).^(-k).*y.^(-k+1)-1/2.*(-0.01).^(k).*y.^(k+1);hangxing.my=[0:-0.1:-100];fori=0:1:1000 x(:,i+1)=xiaochuan(-i/10);endplot(x,y);title( 小船过河1 )xlabel( x轴 );ylabel( y轴 );>>hangxing.m(2)数值解法的具体实现与matlab算法:根据此模型的微分方程:dx/dt=v1-v2*x/sqrt(x^2+y^2)dy/dt=-v2*y/sqrt(x^2+y^2)并且初始条件:x(0)=0,y(0)=-d通过龙格——库塔方程求其数值解:由于该模型的参数为:河宽d,船在静水中的速度v2,河水流速v1,船在任意时刻的位置(x,y),时间t,船在a点时t=0。则小船航线的微分方程的matlab算法如下:xiaochuan1.m:functiondx=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=( 输入河宽d= );x0=[0,-d];opt=odeset( reltol ,1e-6, abstol ,1e-9);v1=( 输入河水流速v1= );v2=( 输入船在静水中速度v2= );[t,x]=ode15s(@xiaochuan1,ts,x0,opt,v1,v2);[t,x]subplot(1,2,1),plot(t,x),title( x—t图 ),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时>>lv输入河宽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,小船任意时刻的位置如x—t图所示,航线如“小船过河图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=2[t,x]值如下:47.12000-5.760047.13000-5.740047.14000-5.720047.15000-5.700047.16000-5.680047.17000-5.6600.49.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,小船任意时刻的位置如x—t图所示,航线如“小船过河

小船过河 matlab,小船过河matlab实现.doc_蚂蚁文库相关推荐

  1. flash静态的农夫走路_智力游戏过河|智力游戏过河flash合集下载 _单机游戏下载...

    智力游戏过河,过河游戏是经典的益智游戏了,需要很高的IQ,能很好锻炼逻辑能力,经典的过河游戏有人鬼过河,农夫过河,高IQ过河,青蛙过河等等.跑跑车为您提供的智力游戏过河flash合集,包含了这一些游戏 ...

  2. matlab 摄像头拍照,matlab摄像头拍照

    图像采集: 该单元是指道路上安装的摄像头在检测到有车辆通过的同时进行 拍照并...在 MATLAB 中我们可以调用 im2gray 函数对图像进行灰度化处理. 4.2.2图像的...... 2 车辆牌 ...

  3. 【 MATLAB 】使用 MATLAB 得到高密度谱(补零得到DFT)和高分辨率谱(获得更多的数据得到DFT)的方式对比(附MATLAB脚本)

    上篇博文分析了同一有限长序列在不同的N下的DFT之间的不同: MATLAB ]使用 MATLAB 作图讨论有限长序列的 N 点 DFT(强烈推荐)(含MATLAB脚本) 那篇博文中,我们通过补零的方式 ...

  4. 【 MATLAB 】使用 MATLAB 实现模拟信号的近似及其连续傅里叶变换

    严格来说,利用MATLAB是不可能用来分析模拟信号的.然而,如果有足够小的时间增量在足够细的栅格上对采样而产生一种平滑的图,并有足够大的时间来展示所有的模式,那么就能对模拟信号作近似分析.令是栅格间隔 ...

  5. 【 MATLAB 】使用 MATLAB 求由差分方程表示的滤波器的响应的两种方法

    例题: 一个3阶低通滤波器由下面差分方程描述: y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y( ...

  6. matlab中fdyn,Matlab的用法总结

    1. 对序列进行洗牌 randperm() randperm()产生随机的序列 %if filepaths 是一个5*1的结构体,then cshuffle = randperm(length(fil ...

  7. matlab 数学库,matlab数学函数库

    (n) 求 n 的阶乘 如何用 matlab 配方 没有发现 matlab 有这一命令,不过我们可以调用 maple 的命令,调用方法如下: 首先加载 maple 中的 student 函数库,加载. ...

  8. matlab字符衔接,matlab字符串连接(多个字符串)的经验,matlab字符串

    matlab字符串连接(多个字符串)的经验,matlab字符串 参考 matlab中字符串连接的3种方法  文章,实验遇到的一些小白问题,如有问题希望大神们给予指导. Matlab中,两个或多个字符串 ...

  9. matlab模块 python,Matlab 和Python结合使用

    今天介绍的内容比较基础,希望能达到抛砖引玉的效果. Matlab 和 Python 结合使用无非分为两种情形: Matlab中使用Python包: Python中使用Matlab. 1. Matlab ...

最新文章

  1. php 7编译 phar,编译安装php7
  2. 运行程序报“应用程序配置不正确”或者缺少运行库造成程序不可移植的问题...
  3. [我的1024开源程序]60元写的宠物网页和音乐网页
  4. 【SRX】RE与PFE策略不同步,导致Commit失败-----案例分析
  5. 编译hotspot_从Hotspot JIT编译器打印生成的汇编代码
  6. 1515 跳 - Wikioi
  7. 平面设计师如何利用图片素材提升工作效率
  8. hihocoder#1513 : 小Hi的烦恼
  9. 螺旋矩阵的上下左右四指针解法
  10. 三菱伺服驱动器示例_三菱PLC控制伺服电机编程实例
  11. 快速给PDF批量添加目录
  12. linux 命令:userdel 详解
  13. [C++]判断齐次坐标系中三点是否共线(三个向量是否共面)
  14. Android RecyclerView优雅实现复杂列表布局(二)
  15. 【workqueue】flush_work函数解析
  16. 昨日关注:40个博客网站排名
  17. C++类和对象(中)
  18. [Pytorch系列-28]:神经网络基础 - torch.nn模块功能列表
  19. 织梦dedecms转换其他CMS教程
  20. 有什么翻译pdf的软件吗?告诉你几款实用的翻译软件

热门文章

  1. 蓝桥杯 十六进制转为八进制 C语言版
  2. 海康API——获取监控点预览取流URL,获取的rtmp流不能播放
  3. 怎么快速修改EDIUS中的模板
  4. C语言的static函数
  5. 光辉城市产品Api摸索
  6. linux 常用命令介绍
  7. ipv6单播地址包括哪两种类型_IPv6 地址类型和格式
  8. 自考00018计算机应用基础知识点,自考00018计算机应用基础汇总资料
  9. 无线通讯LoRa---SX1278芯片开发笔记
  10. WAV怎么转换格式?试试这几款WAV格式转换软件吧