一道题(理论力学)

科学   2021-03-13 14:00  

这次我们来一起看道题,是我本周的作业题之一,觉得挺有意思,特意写一篇文。题目如下:


(忽略我做题痕迹)


先做一下这道题,看看究竟哪里有意思!


首先分析,整个部件的运动是直杆OA绕O点旋转带动的,B滑块被固定在了x坐标轴上。很容易得到A点的坐标:

设B点的x轴坐标为x,则B点坐标为:

因为A点与B点之间的长度是2a,所以有:

我们将其展开,得B点的x坐标:

有了AB点坐标,C点又是杆AB的中点,易得C点坐标为:

到这题目算是做完了,轨道方程联立二式消去共同变量即可,速度求导即可。这都不是本文的重点,重点是下面的。


不知道读者有没有发现,联系本题的实际意义,2倍的a 不会比 r 小,换句话说,2a大于等于r。

可以这样看,当OA转到与y轴重合时,可以看出,为了使B滑块在x轴上而不脱离,2a至少也应该等于r。即 杆AB的长度不能小于杆OA。


有意思的是,我们很容易发现,当2a=r时,当A点在第二三象限旋转时,即在y轴左侧时,B点始终与O点重合,杆AB始终与杆OA重合,直到A再次转到一四象限,即y轴右侧时,以上两点、两杆才相互分离,我们是多么希望能直观地看到这一有趣过程!还好,身处21世纪,计算机可以帮我们做到。以下程序的目的就在于此。


首先,令2a大于r

phi=0:0.05:2*pi;                                    % 角度转一圈
r=1;a=0.7; % 2a>r 不妨取r=1,a=0.7
x=(2*r*cos(phi)+sqrt(4*a^2-r^2*(sin(phi).^2)))/2; % C点xy坐标y=r*sin(phi)/2;
mysize=size(phi);
ax=r*cos(phi); % A点xy坐标ay=r*sin(phi);
bx=r*cos(phi)+sqrt(4*a^2-r^2*sin(phi).^2); % B点坐标
M=moviein(mysize(2)); % 生成一足够大矩阵来容纳每一帧
for i=1:mysize(2) hold on; % 在同一图像上绘图 axis([-2,4,-2,2]); % 为了看清楚,固定坐标轴范围 plot(x,y); % 画出C点轨迹 plot(0,0,'ro'); % 画原点 plot(x(i),y(i),'b*'); % 画C点,用蓝色星号 plot(ax(i),ay(i),'ro'); % 画A点 plot(bx(i),0,'ro'); % 画B点 line([0,ax(i)],[0,ay(i)]); % 画OA连杆 line([ax(i),bx(i)],[ay(i),0]); % 画AB连杆 M(:,i)=getframe; % 获得当前一帧       hold off; % 停止连续作图,并新画出原点覆盖之前图像 plot(0,0,'ro');endmovie(M,2); % 播放


程序运行结果如下


       杆AB长于杆OA时


运行完美!


下面来验证前面对于2a=r的分析,只需稍稍改动上示程序,将a的值改为0.5再运行程序即可

r=1;a=0.5           % 使2a=r


来看改动后的效果图


杆AB与杆OA长度相同时


跟我们预想的一模一样!!!当A点开始转到y轴左侧到转出y轴左侧之间时,两个点、两条杆是重合的!

这极其有趣的图像,就包含在解出的两个小方程里!


本文完

地球远征军
普通一本毕业的物理大学生,在普通一本继续读物理研究生,当个普通人的同时多多思考宇宙。记录学习物理之路上的有趣见闻,一起保持住刚学习物理时的惊喜感和好奇心,希望有生之年看到人类遨游宇宙,走向星空。
 最新文章