計算数理A演習第1回

第1回


はじめに

計算数理A演習では、プログラミング言語としてC言語を用います。
必要とするC言語の知識は、2年生後期の計算数学演習で扱った程度とします。
計算数学演習では参考書として、

改訂 新C言語入門 スーパービギナー編
林晴比古著 ソフトバンクパブリッシング
1600円 ISBN4-7973-0671-8

を用いましたが、計算数学演習を受講しなかった人でも、この参考書程度のC言語の知識を持っていれば受講に支障はありません。
計算数学演習のHPはこちらにありますので、参考にしてください。


今日の演習

今日は以下の内容で演習を行います。

  • 本ターム内に,この演習で行うこと
  • 演習のホームページの紹介と見方
  • GLSCを使うための準備
  • C言語の復習

本ターム内に,この演習で行うこと

小林先生が担当される計算数理Aの講義には毎週必ず出席してください。
この演習の内容は計算数理Aの講義内容に強く依存し、講義内容をよく理解している事を前提条件としています
演習のみ登録されている方も、できれば講義にも出てください。

演習の当面の目標は、コンピュータを使ってある種の常微分方程式・偏微分方程式を解くことです。
ただし、その為には

  • プログラミング言語の習得
  • 計算結果の可視化技術の習得
  • 数値計算法の習得

といったことが必要となります。このうち、プログラミング言語の習得は計算数学演習で十分行いましたので、計算数理A演習では、既にC言語をある程度使えるものとして演習を進めます。

計算結果の可視化には、GLSCというグラフィックスライブラリを用います。

演習序盤(来週から2~3回程度)はC言語の簡単な復習と、GLSCグラフィックスライブラリの使い方の演習を行います(予定)。
C言語に関しては既に、計算数学演習で行ったものと同様の内容となりますが、復習ですので気を抜かず取り組んでください。

その後、C言語およびGLSCグラフィックスライブラリを使いこなせるようになりましたら、まずは授業で紹介される常微分方程式を数値計算を用い て解いてもらいます。
最終的には、熱方程式(拡散方程式とも呼ばれる)や波動方程式といった偏微分方程式を数値計算で解いてもらい、結果を可視化してもら います。

演習では、数値計算法の習得も目標の一つではありますが、数値計算の必要性や、それを道具として使うという姿勢について、ある程度理解してもらえればと思います。

注意点として,本年度からターム制移行のため週二回となります.
集中して取り組める反面,手を抜くと一気において枯れてしまうので,
より一層復習を心がけてください.


演習のホームページの紹介と見方

演習のホームページのトップに「お知らせ」という項目があります。
そこには、レポートの回収状況やその他大事なお知らせを載せますので、毎週必ず見てください。


GLSC利用の為の準備

計算数理A演習ではGLSCというグラフィックスライブラリ(画面上に絵を描く為の関数集)を使いますが、利用に先立ちその準備として、次の作業が必要となります。(この作業は情報メディア教育研究センターでGLSCを使う場合の作業であって、一般的なものではありません。)

注意GLSCという新たなプログラミング言語を使うわけではありません
GLSCはC言語を拡張するライブラリで、C言語から使える紙と鉛筆のイメージです。
GLSCを用いると、C言語によるプログラミングで絵を描く事ができます。

まず、ホームディレクトリの .bashrc (先頭のピリオドを忘れないように)ファイルをテキストエディターで開きます。(ファイル名がピリオドで始まるファイルは標準状態では見えないようになっていることがあります。)
.bashrc ファイルが無い人は新規に作成します。 .bashrc ファイルが既にある人は以下の一行をそのファイルの最後に挿入し、保存します。 .bashrc ファイルが無かった人は、以下の一行を書き込み、保存します。

PATH=$PATH:/fs/home/mshira/bin

最後に必ず改行を入れてください。
一旦 ターミナル(端末) を閉じ、再度開いて、

which  cglsc

とします。

/fs/home/mshira/bin/cglsc

と表示されれば成功です。


C言語の復習

復習の目安として、次の問題を他人に頼ることなくできるかどうかでチェックしてください。
自力でできるようであれば、この演習を受けるのに必要なC言語の知識としては十分です。

問題1
100以下の奇数のうち3の倍数でも7の倍数でも無いものを全て求め、
それらを画面に表示し、かつ、それらの和も画面に表示するCのプログラムを作成せよ。

問題2
配列変数を利用して、二つの10次元ベクトルu, v の内積を求めるプログラムを作成せよ。

問題3
次の常微分方程式の初期値問題

    $$\frac{dy}{dt} = -y+\sin(t), y(0) = 1$$

をオイラー法を用いて数値的に解いて, (gnuplot等で) グラフ化せよ。
(時刻$0 \le t \le 20$の範囲を20000等分割、50ステップ毎に値を表示)

これらができないようであれば、問題ありですので、C言語について復習が必要です。
昨年度の計算数学演習のホームページなど参照し、適宜復習してください。
(この演習では、上記問題程度のプログラミングはできるものとして演習を行います。多少の復習はしますが。)


次回は、GLSCの使った描画(アニメーション)の方法を紹介する予定です。