Quy tắc Simpson 3/8 (Simpson's 3/8 rule) dùng cho tích phân số. Xấp xỉ tích phân xác định bằng parabol bậc 3.
Công thức: ∫f(x)dx ≈ (3h/8)[f(x₀) + 3f(x₁) + 3f(x₂) + 2f(x₃) + 3f(x₄) + ... + f(xₙ)], h = (b-a)/n, n chia hết cho 3.
Ví dụ
#include <iostream>
using namespace std;
float func_inte(float x) {
return (1 / (1 + x * x));
}
float func_calculate(float lower_limit, float upper_limit, int interval_limit) {
float interval_size = (upper_limit - lower_limit) / interval_limit;
float sum = func_inte(lower_limit) + func_inte(upper_limit);
for (int i = 1; i < interval_limit; i++) {
if (i % 3 == 0)
sum += 2 * func_inte(lower_limit + i * interval_size);
else
sum += 3 * func_inte(lower_limit + i * interval_size);
}
return (3 * interval_size / 8) * sum;
}
int main() {
int interval_limit = 8;
float lower_limit = 1;
float upper_limit = 8;
float integral_res = func_calculate(lower_limit, upper_limit, interval_limit);
cout << integral_res << endl;
return 0;
}
Kết quả
0.663129