数値積分
台形則による定積分
関数 の定積分 を台形則により求めてみます。
関数 の定積分を微小区間に分割して近似値として求める方法を数値積分といいます。
図に示すように, , 区間を 個の台形に分割し, 各台形の面積を合計すると,
となります。
プログラム
#include <iostream> #include <math.h> using namespace std; #define f(x) (sqrt(4-(x)*(x))) /* 被積分関数 */ int main(void){ int k; double a,b,n,h,x,s,sum; cout << "Integration interval A,B ? " << endl; cin >> a >> b ; n = 1000; h=(b-a)/n; x=a; s=0; for(k=1;k<=n-1;k++){ x=x+h; s=s+f(x); } sum = h*((f(a)+f(b))/2+s); cout << " /" << b << endl; cout << " | sqrt(4-x*x) dx = " << sum << endl; cout << " /" << a << endl; return 0; }
実行結果
Integration interval A,B ? 0 2 /2 | sqrt(4-x*x) dx = 3.14156 /0