MATLAB数学建模--自行车的运动 - 图文 联系客服

发布时间 : 星期五 文章MATLAB数学建模--自行车的运动 - 图文更新完毕开始阅读efed2720a76e58fafab00356

自行车轮装饰物的运动轨迹

{问题1}

为了使平淡的自行车增添一份美感,同时,也为了增加自行车的安全系数,一些骑自行车的人及自行车厂家在自行车的辐条上安装一款亮丽夺目的饰物。当有这种饰物的自行车在马路上驶过时,这种饰物就像游龙一样,对街边的行人闪过一道波浪形的轨迹。

(1)当自行车在平地上运动时,这个轨迹是什么曲线?试画其图形。 (2)当自行车在斜坡上运动时,这个轨迹是什么曲线?试画其图形。

(3)当自行车在一个抛物线型的拱桥上通过时,这个轨迹是什么曲线?试画其图形。 (4)当自行车在一拱一拱的正弦曲线上通过时,这个轨迹是什么曲线?试画其图形。 [数学模型]

假设路面曲线是y = f(x),自行车在运动过程中,车轮在路面上作无滑动的滚动,与路面只有一个接触点。车轮可当作一个半径为R的圆,运动时与地面相切。饰物P离圆心的距离为r。如A1图所示,CP与圆相交于A,A是初始接触点。当圆滚过θ角之后,接触点移到A'处,圆从C移到C'处,饰物从P移到P'处。

曲线弧元为

ds?dx2?dy2?1?y?2dx?1?[f?(x)]2dx

设A'点的坐标为(x0,y0),则有弧长关系

x0R???01?[f?(x)]2dx (1)

设圆心C'的坐标为(xC,yC),C'在曲线的法线上,因此联立方程

yC?f(x0)??1(xC?x0) f?(x0)y R C C'(xC,yC) θ P'(x,y) φ P A1图 A'(x0,y0) φ x (x0?xC)2?[f(x0)?yC]2?R2

解得圆心坐标

xC?x0?f?(x0)1?[f?(x0)]11?[f?(x0)]2R (2)

r O A yC?f(x0)?2R (3)

设P'的坐标为(x,y),则

x = xC – rsin(θ – φ),y = yC + rcos(θ – φ)

其中θ是圆心角,φ是法线与竖直方向的夹角,也是切线与水平方向的夹角,称为仰角。由(1)式可得圆心角

1??R根据导数的定义可得仰角

x0?01?[f?(x)]2dx (4)

1

φ = arctan[f '(x0)] (5)

饰物的轨迹方程为

x?xC?rsin(???)?x0?f?(x0)1?[f?(x0)]11?[f?(x0)]2R?rsin(???) (6a)

y?yC?rcos(???)?f(x0)?2R?rcos(???) (6b)

[解析](1)设y = 0,路面是一条直线,则f '(x) = 0,φ = 0,θ = x0/R,饰物的轨迹方程为

x = x0 – rsin(x0/R),y = R – rcos(x0/R) (7a)

x = Rθ – rsinθ,y = R – rcosθ (7b)

当r < R时,上式是短摆线方程;如果r = R,上式就是典型的摆线方程。

[算法](1)取R为长度单位,则短摆线方程可化为

x* = θ – r*sinθ,y* = 1 – r*cosθ (7*)

其中x* = x/R,y* = y/R,r* = r/R。θ是自变量,r*是可调节的参数。

[图示](1)如M1_1_1a图所示,当r < R时,短摆线处处光滑。如M1_1_1b图所示,当r = R时,摆线在x/R = 2nπ处出现尖点。如M1_1_1c图所示,当r > R时,即:饰物在车轮之外(例如火车车轮边缘的情况),摆线在x/R = 2nπ附近出现回旋。

M1_1_1a图 M1_1_1b图

[程序]zqy1_1_1bicycle.m

%摆线的轨迹

clear %清除变量 r=input('请输入半径r/R:'); %键盘输入半径比 th=linspace(0,2*2*pi,1000); %圆心角向量 x=th-r*sin(th); %横坐标向量 y=1-r*cos(th); %纵坐标向量 figure %建立图形窗口 plot([0,th(end)],[0,0]) %画横线 hold on %保持图像 plot(x,y) %画摆线 axis equal %使坐标间隔相等 grid on %加网格

2

fs=16; %字体大小 title('自行车轮饰物的摆线轨迹','FontSize',fs)%显示标题 xlabel('\\itx/R','FontSize',fs) %x标签 ylabel('\\ity/R','FontSize',fs) %y标签

text(0,0,['\\itr/R\\rm=',num2str(r)],'FontSize',fs)%显示字符串

M1_1_1c图 M1_1_2图

[程序]zqy1_1_2bicycle.m

%摆线的轨迹族

clear %清除变量 r=[0.5,1,1.5]; %半径比向量 th=linspace(0,2*2*pi,1000); %圆心角向量 [R,TH]=meshgrid(r,th); %化为矩阵 X=TH-R.*sin(TH); %横坐标向量 Y=1-R.*cos(TH); %纵坐标向量 figure %建立图形窗口 plot(X,Y) %画摆线 axis equal %使坐标间隔相等 grid on %加网格 fs=16; %字体大小 title('自行车轮饰物的摆线族','FontSize',fs)%显示标题 xlabel('\\itx/R','FontSize',fs) %x标签 ylabel('\\ity/R','FontSize',fs) %y标签

legend([repmat('\\itr/R\\rm=',length(r),1),num2str(r')])%显示图例 hold on %保持图像 plot([0,th(end)],[0,0]) %画横线

[解析](2)设f(x) = kx,路面是一个斜坡,k是斜坡的斜率,则f '(x) = k。设k = tanα,α是斜坡的角度,可得

φ = arctan(k) = α (8)

1??Rx0?01?k2dx?x011?tan2?x0? (9) RRcos?饰物的轨迹方程为

x = x0 – Rsinα – rsin(θ – α),y = x0tanα + Rcosα – rcos(θ – α) (10)

3

当α = 0时,斜坡变成平地,由上式可得(7)中两式。

[算法](2)取R为长度单位,则饰物的方程可化为

x* = x0* – sinα – r*sin(θ – α),y* = x0*tanα + cosα – r*cos(θ – α) (10*)

其中x0* = x0/R,y0* = y0/R。圆心角可表示为

*x0?? (9*)

cos?x0*是自变量,r*和α是可调节的参数。

[程序]zqy1_2bicycle.m

%自行车沿着斜坡运动时饰物的轨迹

clear %清除变量 r=input('请输入相对半径r/R:'); %键盘输入相对半径 alpha=input('请输入斜坡的度数alpha:'); %键盘输入角度 a=alpha*pi/180; %化为弧度 x0=0:0.001:20; %自变量向量 y0=x0*tan(a); %坡度的纵坐标 th=x0/cos(a); %圆心角向量 x=x0-sin(a)-r*sin(th-a); %横坐标向量 y=y0+cos(a)-r*cos(th-a); %纵坐标向量 figure %建立图形窗口 plot(x0,y0) %画斜坡 hold on %保持图像 plot(x,y) %画轨迹 axis equal %使坐标间隔相等 grid on %加网格 fs=16; %字体大小

title('自行车轮饰物在斜坡上的轨迹','FontSize',fs)%显示标题 xlabel('\\itx/R','FontSize',fs) %x标签 ylabel('\\ity/R','FontSize',fs) %y标签

txt=['\\itr/R\\rm=',num2str(r),',\\it\\alpha\\rm=',num2str(alpha),'\\circ'];%字符串 text(0,0,txt,'FontSize',fs) %显示字符串

M1_2a图 M1_2b图

[图示](2)如M1_2a图所示,当α > 0时,自行车上坡。如M1_2b图所示,当α < 0时,自行车下坡。

4