Giới thiệu
Tích phân xác định có thể được giải bằng quy tắc thang. Việc tích phân hàm f(x) giữa khoảng a đến b về cơ bản là tìm diện tích dưới đường cong từ điểm x = a đến x = b.
Để tìm diện tích đó, ta có thể chia diện tích thành n hình thang, và độ rộng của mỗi hình thang là h, nên ta có thể nói (b - a) = nh. Khi số hình thang tăng lên, kết quả tính diện tích sẽ chính xác hơn. Để giải tích phân, ta sẽ tuân theo công thức này.

Ở đây h là độ rộng của khoảng chia, và n là số khoảng chia. Ta có thể tìm h bằng cách sử dụng:

Đầu vào và Đầu ra
Đầu vào: Hàm f(x): 1-exp(-x/2.0) và giới hạn tích phân: 0, 1. Số khoảng chia: 20 Đầu ra: Kết quả là: 0.21302
Thuật toán
integrateTrapezoidal(a, b, n)
Đầu vào: Giới hạn dưới và trên, và số khoảng chia n.
Đầu ra: Kết quả tích phâ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
Ví dụ (C++)
#include <iostream>
#include <cmath>
using namespace std;
float mathFunc(float x) {
return (1-exp(-x/2.0)); // hàm 1 - e^(-x/2)
}
float integrate(float a, float b, int n) {
float h, sum;
int i;
h = (b-a)/n; // tính khoảng cách giữa hai khoảng chia
sum = (mathFunc(a)+mathFunc(b))/2; // tổng ban đầu dùng f(a) và f(b)
for(i = 1; i < n; i++) {
sum += mathFunc(a+i*h);
}
return (h*sum); // kết quả tích phân
}
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;
}
Kết quả
Enter Lower Limit, Upper Limit and interval: 0 1 20 The answer is: 0.21302