您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 数学建模-小孩拉玩具
问题:一个小孩借助长度为a的硬棒,拉或推某玩具.此小孩沿某曲线行走,计算并画出玩具的轨迹.假设小孩沿X=cos(t)Y=sin(t)的圆运动。小孩的坐标为((),())XtYt,玩具的坐标为((),())xtyt。如图:其中tv为玩具运动方向,cv为小孩运动方向。由题意知:(1)((),())XtYt与((),())xtyt之间的距离为硬棒的长度a。有222()()XxYya①(2)玩具总在硬棒的方向上运动,因此,两个位置的差向量是玩具速度方向的倍数,即,0dxXxdtdyYydt②(3)玩具的速度依赖于小孩的速度向量cv的方向,小孩的速度cv在硬棒上的投影是玩具的速度tv的模,(,)BXY(,)Axycvtv(,)tcvv③这里(,)表示内积,为tv方向上的单位向量,则2211()()XxXxYyYyaXxYy④cdXdtvdYdt⑤由①②③④⑤可得221()()()1()()()dxdXdYXxYyXxdtadtdtdydXdYXxYyYydtadtdt⑥因为我们假设小孩沿圆运动,由⑥可得:(1)sin()(cos())cos()(sin())(cos())(1)sin()(cos())cos()(sin())(sin())(3)0(0)0dxttxttytxdtdyttxttytydtxyMATLAB程序求解:建立M文件eq1.m:M文件eq1.m:functiondy=eq1(t,y)dy=zeros(2,1);dy(1)=((-1)*sin(t)*(cos(t)-y(1))+cos(t)*(sin(t)-y(2)))*(cos(t)-y(1));dy(2)=((-1)*sin(t)*(cos(t)-y(1))+cos(t)*(sin(t)-y(2)))*(sin(t)-y(2));取t0=0,tf=10建立程序如下:t0=0;tf=10;[t,y]=ode45('eq1',[t0tf],[30]);T=0:0.1:10;X=cos(T);Y=sin(T);plot(X,Y,'-')holdonplot(y(:,1),y(:,2),'*')
本文标题:数学建模-小孩拉玩具
链接地址:https://www.777doc.com/doc-1816274 .html