読み書きプログラミング

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

(31) 固有振動

以下のように3つのバネで構成される2自由度系を考えます。

質量mのそれぞれの質点の釣り合いの位置からのずれを、バネ係数をそれぞれk,jとすると、運動方程式は以下となります。

線形問題なので周波数領域で考えることが有効です。
と置けます。すると運動方程式は、
これは行列の固有値固有ベクトルを求めることで解くことができます。解いてみましょう。

/* 6.1.5m */
kmat : (1/m) * matrix([k+j, -j], [-j, k+j]);
[es, vs] : eigenvectors(kmat);

使用した機能


2つの固有値固有ベクトルが見つかったので、それを最も簡単な形で重ね合わせてみてみましょう。

/* 6.1.11m */
k : 1.0$
m : 1.0$
j : 0.1$
w1 : sqrt(e[1][1])$
w2 : sqrt(e[1][2])$
x1(t) := cos(w1*t) - cos(w2*t)$
x2(t) := cos(w1*t) + cos(w2*t)$
plot2d(x1(t), [t, 0, 200])$
plot2d(x2(t), [t, 0, 200])$