数値計算法概論: No.1

1 講義の目的

当講義では、プログラム言語 Fortran 90 を用い、プログラミングの初歩と、数値計算について学ぶ。すでに C,C++ などのプログラミング言語を知っている者がいれば、そちらを使っても構わない。数値計算としては、 2 次方程式の解、数値積分、収束加速法、ニュートン法などを扱う。

成績評価はレポート（数回）による。

2 プログラム言語の参考図書

Fortran 90 の言語の入門書として次のものを上げておく。 \underline{「Fortran 90 入門」新井親夫著、森北出版（2800 円）。} 生協書籍部に 50 部注文している。（すでに他の Fortran, C, C++ などの文法書を揃え

ている人を除き）この本を購入し、講義の際に必ず持ってくるようにすること。

3 一般的注意

Unix でのコマンド、エディターとしての mule (emacs)、電子メール（Mew など) の使い方は「九州大学情報処理教育センター利用の手引」を熟読すること。以下の URL

http://www.cse.ec.kyushu-u.ac.jp/manual/ から見ることもできる。教育センターの使用時間は月ー金の 8:30-20:00, 土日休み。講義優先。

4 ワークステーションの利用法

利用の手引 8 章 UNIX ワークステーション参照。

4.1 ssh (利用の手引 8.3)

PC に入り、 ssh を選ぶと（ダブルクリック）ワークステーション画面が現れる。ユーザー ID、パスワードを入力する。

ワークステーションを終了するには、 logout (または exit) と打ち込む。

4.2 mule (エディター) （利用の手引 8.5）

プログラムや、文書作成に使うツールがエディターである。フリーソフトである mule を使う。文字列のカット＆ペーストなど、エディターの機能を有効に使うと作業能率が大幅に向上する。

4.3 X Window System: ASTEC-X (利用の手引 8.6)

gnuplot,tgif など、図表を扱うツールを使うには、 X Window System を使うと楽である。

5 簡単なプログラム

5.1 プログラムの作成

次のプログラムを test.f( xyz.f のように .f で終っていれば何でも良い) のファイル名で作成する。まず、

%mule test.f でエディターを起動し、以下のプログラムを作成する。

real a,b,c,d,e,f
c
a=5.0
b=2.0
c
c=a+b
d=a*b
e=a/b
f=a**b
write(*,*) "a,b ",a,b
c
write(*,*) c,d,e,f
c
end

[Ctrl]-x [Ctrl]-c でエディターを終了する。 % ls でファイル一覧を見て test.f のプログラムが出来ている事を確認。 % cat test.f でファイルの中身を見ることができる。

5.2 プログラムのコンパイル、実行

%frt test.f とすると a.out*(実行形式のファイル) ができる（コンパイル^{1}）。その後 %a.out [Return] とするとプログラムが実行される。プログラムに誤りがあればエラーメッセージが出るので、必要に応じプログラムを修正

する（デバッグ）。計算結果がおかしい時にも修正して実行し直す。なお、 % a.out > out.data とすると、画面に出ていたデータを out.data といった別のファイルに保存できる。

5.3 簡単な説明

1. a*b は積、 a/b は割算、 a**b は冪乗 a^{b} を表す。

2. a=2.0 は変数 a に 2.0 という数字を代入することを意味する。

3. プログラムの最後は必ず end 文で終る。

4. Fortran では 1 行 72 文字 (桁) までである。 1 桁目に c(または C,*,!) があると注釈行とみなし、実行しない。 2 桁目から 5 桁目の数字は文番号で、別の文からその文を参照するのに使う。 6 桁目の文字は、継続行を意味する。 7 桁目から 72 桁目の間に実際に実行すべき文を書く (TAB キーを使うと mule が自動的に設定する)。

5. 1 行目の real a,b,c は変数が実数型であることの宣言文 (Fortran に限らず、一般に変数の実数型と整数型では扱いが異なる)。

例次のプログラムを実行してみよ (integer は整数型の宣言)。

    integer i,j,k
c
    i=5
    j=3
c
    k=i/j
    write(*,*) "i,j",i,j
c
    write(*,*) k
c
    end

割算が切捨てとなる。

1フリーのコンパイラーとして g77 もある。

6 講義のプリント

講義のプリントを次の URL に置いておいた。 http://maya.phys.kyushu-u.ac.jp/˜ knomura/ この中の

数値計算法概論 (2003 度； 3 年前期）

から参照すること。また、レポート提出者の一覧、その他の掲示もこの URL を使う。

7 連絡先

質問は、講義中に積極的にすること、講義後に疑問がある場合は、直接以下の部屋に訪れても良いし、 e-mail を使っての質問も受け付ける。

野村 2641 号室 (knomura@stat.phys.kyushu-u.ac.jp) 松尾 (TA) 2632 号室 (halm@stat.phys.kyushu-u.ac.jp)