next up previous
Next: この文書について... Up: 3 C のプログラムでグラフを描く Previous: 3.1 C のグラフィックス事情

3.2 練習

少し先の目標はテキスト7章『発展系の数値解析』の数値実験であるが、 まずは常微分方程式の初期値問題を解いて、 可視化することを目標にする。

古いですが http://www.math.meiji.ac.jp/~mk/soyri2-1995/ にある 文書が参考になるかも。

  1. 自分が選んだ$ 1$変数関数のグラフを描くプログラムを作り、 印刷せよ (関数を替えたときに変更がすぐに出来るように工夫すること)。
    こういうのは自分で選んで色々試すのが良いが、 最初は何か指示してくれと言うのならば

    $\displaystyle f(x)=
\left\{
\begin{array}{ll}
x\sin\dfrac{1}{x} & \mbox{($x\ne 0$)} \\
0 & \mbox{($x=0$)}
\end{array}\right.
$

    でいかが? (場合わけがあるので難しいかな?)
    なお、『明治大学数学科計算機室ユーザーのための GLSC の紹介』 の中にあるプログラム draw-graph.c を試してみてから取り組むこと。
  2. 自分が選んだパラメーター曲線を描くプログラムを作れ。
    (例えばアルキメデスの螺旋 $ r=\theta$ ( $ \theta\ge 0$))
  3. 常微分方程式の初期値問題

    $\displaystyle x'(t)=x(t),\quad x(0)=1
$

    を数値計算で解け。解曲線を描け。
  4. 常微分方程式の初期値問題

    $\displaystyle x''(t)+p x'(t)+q x(t)=0,\quad x(0)=A,\quad x'(0)=B$   $\displaystyle \mbox{($p$, $q$, $A$, $B$ は実定数)}$

    を数値計算で解くプログラムを書け。解曲線 (横軸 $ t$, 縦軸 $ x$ のグラフ) を描け。
  5. 常微分方程式の初期値問題
      $\displaystyle x'(t)$ $\displaystyle =$ $\displaystyle a x(t)+b y(t)$
      $\displaystyle y'(t)$ $\displaystyle =$ $\displaystyle c x(t)+d y(t)$

    $\displaystyle x(0)=x_0,\quad y(0)=y_0
$

    を数値計算で解き、解曲線を描く ($ t$ をパラメーターと見て、 $ (x(t),y(t))$ の軌跡を描く) プログラムを作れ。


next up previous
Next: この文書について... Up: 3 C のプログラムでグラフを描く Previous: 3.1 C のグラフィックス事情
Masashi Katsurada
平成16年4月27日