บทนำ
อินทิกรัลจำกัดสามารถแก้ได้ด้วยกฎสี่เหลี่ยมคางหมู การอินทิเกรตฟังก์ชัน f(x) ระหว่างช่วง a ถึง b ก็คือการหาพื้นที่ใต้เส้นโค้งจากจุด x = a ถึง x = b
เพื่อหาพื้นที่นั้น เราสามารถแบ่งพื้นที่เป็น n สี่เหลี่ยมคางหมู ความกว้างของแต่ละอันคือ h ดังนั้น (b - a) = nh เมื่อจำนวนสี่เหลี่ยมคางหมูเพิ่มขึ้น ผลลัพธ์ของการคำนวณพื้นที่จะแม่นยำขึ้น สูตรที่ใช้คือ:

โดยที่ h คือความกว้างของช่วง และ n คือจำนวนช่วง สามารถหา h ได้จาก:

อินพุตและเอาต์พุต
Input: ฟังก์ชัน f(x): 1-exp(-x/2.0) และขอบเขตอินทิกรัล: 0, 1 จำนวนช่วง: 20 Output: คำตอบคือ: 0.21302
อัลกอริทึม
integrateTrapezoidal(a, b, n)
Input: ขอบเขตล่างและบน, และจำนวนอินทิกรัล n
Output: ผลลัพธ์ของการอินทิเกรต
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
ตัวอย่างโค้ด (C++)
#include <iostream>
#include <cmath>
using namespace std;
float mathFunc(float x) {
return (1 - exp(-x/2.0)); // ฟังก์ชัน 1 - e^(-x/2)
}
float integrate(float a, float b, int n) {
float h, sum;
int i;
h = (b-a)/n; // คำนวณระยะห่างระหว่างช่วง
sum = (mathFunc(a) + mathFunc(b))/2; // ผลรวมเริ่มต้นด้วย f(a) และ f(b)
for (i = 1; i < n; i++) {
sum += mathFunc(a + i*h);
}
return (h*sum); // ผลลัพธ์ของการอินทิเกรต
}
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