物理の運動を視覚化するためのMATLABアニメーション作成ガイド第3章 運動量 反発係数
物理の運動を視覚化するためのMATLABアニメーション作成ガイド
反発係数
amazon kindle版を出版しました。
第3章 運動量
・反発係数
物体が壁などに衝突してはね返るとき,はね返る前後の速度を使い,次式で表すような反発係数eを使って表します。
$e=\dfrac{|v'|}{|v|}$ ・・・(1)
$v$:衝突前の速度,$v'$:衝突後の速さ
$e=1$・・・弾性衝突(完全弾性衝突)
$0<e<1$・・・非弾性衝突
$e=0$・・・完全非弾性衝突
壁が動く物体に変わっても同じように,反発係数を計算できます。
$e=\dfrac{|v_A'-v_B'|}{|v_A-v_B|}$ ・・・(2)
$v_A,v_B$:衝突前の速度,$v_A',v_B'$:衝突後の速度
斜めに衝突した場合は横方向の速度$v_x=v_x'$より,縦方向の速度$v_y$は反発係数$e$より次式のように求まります。
$v_y'=ev_{y}$ ・・・(3)
完全弾性衝突のときは,力学的エネルギーは保存されますが,非弾性衝突の場合はエネルギーが熱や音,物体の変形などに使われるため,力学的エネルギーは減少します。
反発係数$e=0.5$の場合
反発係数$e=0.7$の場合
<プログラム>
%反発係数
%/******************1つめのグラフ************
figure(1);
clf%グラフクリア
g=9.8;%重力加速度
m=1.0;%質量
e=0.5;%反発係数
x0=20.0;%初期位置
v0=0.0;%初期速度
g1 = animatedline('Color','r');
g2 = animatedline('Color','b');
V= VideoWriter('反発係数11.mp4','MPEG-4');%運動の法則11.mp4というファイル名にします。
open(V);%ビデオを描くファイルを開きます。
axis([0 10 -20 20])%グラフの範囲
t = linspace(0,10,200);%0~10を200等分
xlabel('時間[sec]')
ylabel('距離[m]、速度[m/s]')
text(3,10,'速度')
text(3,30,'位置')
t1=0;
for i=1:length(t)
v1=v0-g*(t(i)-t1);
x1=x0+v0*(t(i)-t1)-1.0/2.0*g*(t(i)-t1)^2;
if x1<=0
v0=-v1*e;
t1=t(i);
x0=0.0;
end
addpoints(g1,t(i),v1);
addpoints(g2,t(i),x1);
frame_V = getframe(gcf);% Figure のフレームのキャプチャ、gfcは現在の Figure ハンドル番号の取得
writeVideo(V,frame_V);%Vに書き込み
drawnow
end
close(V);%ビデオを描くファイルを閉じます。
%/******************2つめのグラフ************
figure(2);
clf%グラフクリア
V= VideoWriter('反発係数22.mp4','MPEG-4');%運動の法則11.mp4というファイル名にします。
open(V);%ビデオを描くファイルを開きます。
axis([0 10 0 20])%グラフの範囲
pause('on')
t = linspace(0,10,401);%0~10を400等分
x0=20.0;%初期位置
x2=x0;
v0=0.0;%初期速度
t1=0;
e=0.7;%反発係数
for i=2:length(t)
v1=v0-g*(t(i)-t1);
x1=x0+v0*(t(i)-t1)-1.0/2.0*g*(t(i)-t1)^2;
if x1<=0
v0=-v1*e;
t1=t(i);
x0=0.0;
end
if rem(i,5)~=0
pos = [t(i-1) x2 0.5 1];
rectangle('Position',pos,'Curvature',[1 1],'EdgeColor','w')
end
pos = [t(i) x1 0.5 1];
rectangle('Position',pos,'Curvature',[1 1],'EdgeColor','r')
x2=x1;
frame_V = getframe(gcf);% Figure のフレームのキャプチャ、gfcは現在の Figure ハンドル番号の取得
writeVideo(V,frame_V);%Vに書き込み
pause(0.01)
drawnow;
end
close(V);%ビデオを描くファイルを閉じます。