[微分方程]鸭子过河.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
鸭子过河 设河边点 O 的正对岸为点 A,河宽 OA=h(图 1.1 ),水流速度为 a,有一鸭子 从点 A 游向点 O,设鸭子(在静水中)的游速为 b(b>a),且鸭子游动的方向始终 朝着点 O。①设 h=10m,a=1m/s, b=2m/s,用数值法求渡河所需时间、任意时刻鸭 子的位置及游动曲线。②建立任意时刻鸭子的位置和鸭子游动的数学模型,并求 其解析解。 1. 模型的假设 为了使问题确定和简化,实际上已经作了如下假设: ①假设河宽固定,设为 h,且两岸为平行直线; ②鸭子游速为 b 及水流速度 a 均为常数; ③鸭子游动的方向始终指向 O。 模型的建立和求解 O为坐标原点,河岸朝顺水方向为 x 轴, y 轴指向对岸,如图 1.1 所示。 设时刻 t 鸭子位于点 P(x,y),设起点坐标( x,y)=(0,h),终点坐标( 0, 0),设 θ 为鸭子速度方向与 x 轴正向间的夹角, bOP b b (b cos , b sin ) x2 ( x, y) , OP y2 a ( a,0) , v a b 于是鸭子游动的迹 线满足: x(0)=0 , y(0)=h ( 1)模型的数值解 实际上,从上述方程不能求得 x(t) , y(t) 的解析式,但在参数确定的情况下,可以通过数值解得到任意时刻鸭子的位 置。设 x=(x(1) ,x(2)) T, x(1)=x ,x(2)=y ,编写如下的函数 M文件: %鸭子过河、渡河 function dx=duhe(t,x) % 建立名为 duhe 的函数 M文件 a=1;b=2; s=sqrt(x(1)^2+x(2)^2); dx=[a-b*x(1)/s;-b*x(2)/s];% 以向量形式表示方程组 在编写运行程序时,须设定时间 t 的起点及终点步长,可大致估计静水中的 渡河时间,并作试探。 (可见,鸭子的渡河时间在 6.5~7s 之间) ts=0:0.5:7; x0=[0,10]; %x、y 的初始值 [t,x]=ode45(@duhe,ts,x0); %调用 ode45 计算 [t,x] %输出 t , x(t) , y(t) plot(t,x),grid %按照数值输出作 x(t) , y(t) 的图形 gtext('x(t)'),gtext('y(t)'),pause %利用鼠标确定字符串位置 plot(x(:,1),x(:,2)),grid, %作 y(t) 的图形 gtext('x'),gtext('y') 得到的数值结果 x(t) , y(t) 为鸭子的位置列入表 1.1 。x(t) , y(t) 及 y(x) 的 图形见图 1.2(a) 和 1.2(b) 。 表 1.1 h=10 , a=1, b=2 时的数值解 t x(t) y(t) t x(t) y(t) 0.0000 0.0000 10.0000 4.0000 1.8663 2.4336 0.5000 0.4741 9.0004 4.5000 1.7062 1.6834 1.0000 0.8929 8.0039 5.0000 1.4436 1.0381 1.5000 1.2503 7.0143 5.5000 1.0860 0.5257 2.0000 1.5396 6.0370 6.0000 0.6507 0.1759 2.5000 1.7535 5.0791 6.5000 0.1660 0.0111 3.0000 1.8843 4.1501 7.0000 0.0000 0.0000 3.5000 1.9242 3.2628 图 1.2(a) 和 图 1.2(b) ( 2)模型的解析解 为了得到更精确的运动轨迹,还必须对模型作进一步分析以得到其解析解。 鸭子运动速度为: 故有: 由此得到微分方程: dx vx a x2 y 2 by x , x(h)=0 dy vy y 求解此齐次微分方程得到鸭子游动的轨迹方程为: x  h y 2 h  a b  y h  a b , 0≤ y≤h(具体求解参见附录( 1)) 采用下列 Matlab 程序,我们可以画出鸭子运动的轨迹(图 1.3 )。 h=10;a=1;b=2;y=h:-0.5:0;x=h/2*((y./h).^(1-a/b)-(y./h).^(1+ a/b)); plot(x,y,'bO-') legend('duck') xlabel('X');ylabel('Y'); 图 1.3 鸭子运动的轨迹 鸭子游动曲线轨迹的弧长可以用公式 ds 1 x'2 dy 求出,也可以用数值方法求 解。 3. 对解以及问题的进一步讨论 ①关于解可以作进一步分析:如果 b<a,由上述轨迹方程当 y→0,得到 x→ ∞。因此,这中

文档评论(0)

yanmei113 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档