初期値 が与えられたとき、漸化式 (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 |