初期値
が与えられたとき、漸化式 (10) によって、
数列
を計算するプログラムはどう作ったらよいで
しょうか?ここでは二つの素朴なやり方を紹介しましょう。
#define MAXN (1000) double x[MAXN+1]; |
x[0] = x0;
t = a;
for (j = 0; j < N; j++) {
x[j+1] = x[j] + h * f(t,x[j]);
t += h;
}
|
| Fortran の場合 |
integer MAXN
parameter (MAXN = 1000)
real x(0:MAXN)
x(0) = x0
t = a
do j=0,N-1
x(j+1) = x(j) + h * f(t,x(j))
t = t + h
end do
|
補足的注意 C言語の場合は、配列の代わりに、ポインターと malloc() を使って
#include <stdlib.h> // malloc()
...
double *x;
...
x = malloc(sizeof(double) * (N+1));
if (x == NULL) {
// エラー処理
}
|
x = x0;
t = a;
for (j = 0; j < N; j++) {
x += h * f(t,x);
t += h;
}
|
| Fortran の場合 |
x = x0
t = a
do j = 0,N-1
x = x + h * f(t,x)
t = t + h
end do
|