next up previous
Next: シンプソンの公式 Up: 台形公式 Previous: 台形公式と誤差

例: 台形公式による定積分の数値計算

台形公式を用いた定積分の数値計算の 1例として, ここでは \(\displaystyle{\int_0^1 \frac{4  dx}{1+x^2} = \pi} \) を取り上げます.

プログラムで, daikei と言う関数が台形公式を与え, 引数は順に, 積分区間の右端, 左端, 分割の個数です. プログラムで注意して欲しいのは, fun 引数の計算 a + k*interval の部分です. ここでは a, interval は double 型, k は int 型です. このような異なる型の変数の間の計算は, 変数の型変換が自動的に 行われます. 今の場合 k を double 型に変換して計算が実行されます. 型変換の規則は, char $<$ int $<$ double で与えられます. すなわち, 計算時にはこれらの内, より右側の型に値の型を合わせて 計算されます.

/* File name 9-1.c */

#include <stdio.h>

double daikei(double a, double b, int n);
double fun(double x);

main()
{
     printf("Pi is about %1.15f.\n", daikei(0.0, 1.0, 65536));
}

double daikei(double a, double b, int n)
{
     double sum=fun(a);           /* The initial value of sum is f(a) */
     double interval=(b-a)/n;   /* The length of the small interval */
     int k;
    
     for (k=1; k < n ; k++){      /* add to (n-1)-th value */
               sum = sum + 2.0*fun(a+k*interval); 
    }
     return interval*(sum + fun(b))/2.0;
}

double fun(double x)
{
      return 4.0/(1.0 + x*x);
}



Next: シンプソンの公式 Up: 台形公式 Previous: 台形公式と誤差