確定積分的梯形法則
可以使用這個梯形法則解決確定積分。要把函式 f(x) 在範圍 a 到 b 之間積分,其實就是找到從 x = a 到 x = b 的曲線下方區域的面積。
要找到那個面積,我們可以把面積分成 n 個梯形,每個梯形的寬度為 h,所以我們可以說 (b - a) = nh。當梯形數量增加時,面積計算的結果會更準確。要解決積分,我們將使用這個公式。

這裡的 h 是間隔的寬度,n 是間隔的數量。我們可以使用 計算 h

輸入和輸出
Input: The function f(x): 1-exp(-x/2.0) and limits of the integration: 0, 1. The number of intervals: 20 Output: The answer is: 0.21302
演算法
integrateTrapezoidal(a, b, n)
輸入: 下限和上限,以及積分數 n。
輸出: 積分結果。
Begin h := (b - a)/n sum := f(a) + f(b) for i := 1 to n, do sum := sum + f(a + ih) done return sum End
示例
#include<iostream>
#include<cmath>
using namespace std;
float mathFunc(float x) {
return (1-exp(-x/2.0)); //the function 1 - e^(-x/2)
}
float integrate(float a, float b, int n) {
float h, sum;
int i;
h = (b-a)/n; //calculate the distance between two interval
sum = (mathFunc(a)+mathFunc(b))/2; //initial sum using f(a) and f(b)
for(i = 1; i<n; i++) {
sum += mathFunc(a+i*h);
}
return (h*sum); //The result of integration
}
main() {
float result, lowLim, upLim;
int interval;
cout << "Enter Lower Limit, Upper Limit and interval: "; cin >>lowLim >>upLim >>interval;
result = integrate(lowLim, upLim, interval);
cout << "The answer is: " << result;
}輸出
Enter Lower Limit, Upper Limit and interval: 0 1 20 The answer is: 0.21302
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP