4.2.1.1 例題7-1

問題 (1),(2) で適当な係数行列を選び、初期値 $ \vec x_0$ を色々と変えて、 それに対応する解軌道を描け。

次のように curl コマンドでサンプルプログラムをコピーした後に、 cglsc コマンドでコンパイルして、実行して下さい。
ターミナルでプログラム入手・コンパイル・実行
curl -O http://nalab.mind.meiji.ac.jp/~mk/program/ode_prog/reidai7-1-glsc.c
cglsc reidai7-1-glsc.c
./reidai7-1-glsc
最初に行列 $ A$ の成分 $ a,b,c,d$ を尋ねてきますので、 自分が調べたいと思う行列を選んで入力します。 $ (a,b,c,d)=(0,1,-1,0)$ は単振動 ($ m=1$, $ k=1$)、 $ (a,b,c,d)=(0,1,-1,-1)$ は減衰振動 ($ m=1$, $ k=1$, $ \gamma =1$)となります。
行列の成分を入力
a,b,c,d=0 1 -1 -1
するとウィンドウが開かれた後に、次のようなメニューが表示されます。
したいことを番号で指定するメニュー
 したいことを番号で選んで下さい。
  -1:メニュー終了, 0:初期値のキーボード入力, 1:初期値のマウス入力,
   2:刻み幅,追跡時間変更(現在 h= 0.0100,T=10.0000)
この意味は希望することを選ぶのに、$ -1$ から $ 2$ までの整数を入力しなさい、 ということです。`0' を入力すると、キーボードから数値で初期条件 $ x0,y0$ を入力することになります。
初期値をキーボードから数値入力
0 ← 0 番を選択する。
初期値 x0,y0=0.5 0.5 → x0,y0 の入力の催促。 ← 0.5 0.5 を入力。
また `1' を入力した場合は、マウスで初期値を指定することが出来ます。 ウィンドウの中の初期値としたい点のところまでマウス・カーソルを移動して、 マウスの左ボタンをクリックすると、その点を初期値として解を計算して、 解軌道を描きます。
初期値をマウスで指定
マウスの左ボタンで初期値を指定して下さい(右ボタンで中止)。
-1:メニュー終了, 0:初期値のキーボード入力, 1:初期値のマウス入力
2: 刻み幅,追跡時間変更(現在 h= 0.0100, T=10.0000)
1        ← マウスで初期値を指定
(x0,y0)=-0.724609 -0.365234 → マウスで指定した点の座標
マウスを使って初期値を入力して下さい。     → 次の入力を催促
これに対してマウスの真中のボタンを押すと、 $ t$ が減少する方向に解きます (過去にさかのぼる)。 マウスを一箇所に固定したまま、 左のボタンと真中のボタンを押して効果を確かめて下さい。

マウスを使っての初期値の入力を止めるには、マウスの右ボタンを押します。 するとメニューまで戻るはずです。


(2021/4/1追記) Mac で3ボタン・マウスを接続して使っている人は少数派でしょう。 そういう場合にも、XQuartz の[環境設定][入力]で、 「3ボタンをエミュレート」にチェックを入れることで、 このプログラムを使うことができます。


メニューを抜けるには、メニューで `-1' を入力します。その後マウスを fplotウィンドウに持っていき、ボタンをクリックすると reidai7-1 を 終了することが出来ます。

ここでは初期値のサンプル・データ reidai7-1.data も用意してあり ます(内容は注意3 の二つ目の方程式で $ \omega=\gamma=1$ の場合の実験です)。 これを試すには以下のようにして下さい。
ターミナルで (入力データファイルを入手して解く)
curl -O http://nalab.mind.meiji.ac.jp/~mk/program/ode_prog/reidai7-1.data
cat reidai7-1.data | ./reidai7-1-glsc

図 2: cat reidai7-1.data | ./reidai7-1-glsc
Image reidai7-1



桂田 祐史