「アルゴリズム講座―台形近似積分」の編集履歴(バックアップ)一覧に戻る
仕様 機能:渡されたポインタの関数について、与えられた区間内で台形近似による積分を行います。 引数:double (*func)(double a)…引数にdouble型を一つ、返値がdouble型の、積分を行う関数へのポインタ low…積分を行う区間の最低値 high…積分を行う区間の最高値 h…台形の高さをhにして計算します 返値:積分をした計算結果を返します
double integ(double (*func)(double a),double low,double high,double h){ double x,result; for(x=low;x<=high;x+=h){ result+=((*func)(x+h)+(*func)(x))*h/2; } return result; }
#include <stdio.h> double function(double); int main(void) { printf("%lf\n",integ(function,0,2,0.001)); } double function(double x){ return 3*x*x; }
結果 8.012007