読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

(33) 共振

強制力と減衰力を受けた調和振動子を考えます。運動方程式は以下の通りです。

定常解の周波数は強制力の周波数ω/2πになるはずです。この時の振幅を求めてみましょう。

/* 6.1.21m */
x(t) := A*exp(%i*w*t)$
sol : solve(m*diff(x(t), t, 2) + 2*m*g*diff(x(t),t) + m*w0^2*x(t) = F*exp(%i*w*t), [A])$
A : at(A, sol[1]);

強制力の周波数と振幅/位相の関係を見てみましょう。

/* 6.1.23m, 6.1.24m */
rule : [m = 1, F = 1, w0 = 10, g = 0.3]$
plot2d(abs(A), [w, 0, 15]), rule$
plot2d(atan(imagpart(A)/realpart(A), [w, 0, 15]), rule$


最大振幅を得る周波数を求めましょう。

/* 6.1.25m, 6.1.26m */
d : denom(A)$
e : cabs(d)^2, expand$
solve(diff(e, w) = 0, w);

使用した機能


共鳴周波数は、固有振動数より減衰力の分だけ低くなることを示しています。