Fortran 反復演算と基本プログラミング(2)
Table of Contents
実数型
実数には単精度と倍精度がある.単精度は約7桁,倍精度は約15桁である.普通は倍精度でプログラムを組んでおくとトラブルが少ない.
- real(8) :: x, y ! 倍精度型実数変数 x および y を宣言 real(8) x, y でもよいが,:: を使う習慣を付けるのがよい
- real(4) :: s ! 単精度型実数変数 s を宣言 (4)は省略できる
倍精度型実数の数値にはd0を付けておく.たとえば,2.0 ではなく,2.0d0 のようにする.ここでd0は 1.0×100を意味する.2.0d2は2.0×102である.
今は気にしなくてよいが,実数型の厳密な宣言方法は教科書付録1.1に書かれている.
i が整数変数のとき,これを倍精度型実数に変換するには,組み込み関数dbleを用い,
- dble(i) ! doubleの略
とする.
リスト1.7
台形公式による数値積分の原理を理解せよ(とても簡単である).
演算式
演算式には+,-,* (かけ算),/ (割り算),a**b (aのb乗)がある.
1/3 は0であることに注意せよ!
2**2**3は2**(2**3)のことであるが,過ちを避けるため,括弧を用いて明確にせよ.
リスト1.8
ニュートン法の原理を理解せよ.
- real(8) :: er0 = 1.0d-6 ! 初期値の設定方法.初期値はプログラム中で書き換えることができる.:: が必要.
演習1.16
分散関係式は水の波の水深(静水時の水深)h,周期T,波長Lを関係づける式である.すなわち,たとえば,水深hが与えられ,周期Tが与えられると,波長Lは分散関係式を満たすように自動的に決まる.水深hと周期Tが与えられた時,波長Lを逐次反復法によって求めるプログラムを作成せよ.このプログラムを用い,h=2.5 (m),T=5 (s)のとき波長Lは何メートルとなるか求めよ.
Lの初期値はhとすればよい.tanhはハイパボリックタンジェントで,組み込み関数tanh(x)を用いる.
円周率は次の様にparameterを用いて定数として宣言する.定数はプログラム中で書き換えることはできない.
- real(8), parameter :: pi = 3.14159265358979d0 ! 倍精度型実数定数の宣言