Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ triển khai quy tắc Simpson 3/8

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