一、什么是辛普森公式

辛普森公式是数值积分中一种经典的数值积分方法,用于对一定区间内的函数进行近似求积分。该公式是在插值原理的基础上推导得出的,具有更高的精度,特别适用于对光滑曲线的积分。

辛普森公式的基本思想是利用三次插值公式构成的积分公式,将所求函数的区间分成若干段,对每一段采用三次多项式进行局部逼近,将积分区间划分为若干个子区间,采用插值求解每个子区间内的积分,最终将子区间积分值相加得到该区间积分值的近似值。

二、辛普森公式的应用场景

辛普森公式主要应用于区间固定,函数在区间上连续可导的情况下进行积分估计。该方法具有较高的精度,可以用于求解较为复杂的积分。

在实际应用中,辛普森公式广泛应用于科学计算、金融工程、工程力学、电子工程等领域中的数值计算和数据分析等问题的求解。

三、辛普森公式的代码实现

#include 
#include 

double f(double x)
{
    return (1 / (1 + x * x)); // 待积分函数
}

double simpson(double a, double b, int n)
{
    double h = (b - a) / n;
    double x, ans = 0;
    int i;

    for (i = 0; i <= n; i++)
    {
        x = a + i * h;
        if (i == 0 || i == n)
            ans += f(x);
        else if (i % 2 != 0)
            ans += 4 * f(x);
        else
            ans += 2 * f(x);
    }
    
    return (h / 3 * ans); // 返回积分近似值
}

int main()
{
    double a, b, ans;
    int n;

    printf("请输入积分区间 [a, b]:");
    scanf("%lf %lf", &a, &b);

    printf("请输入分割区间数 n:");
    scanf("%d", &n);

    ans = simpson(a, b, n);
    printf("积分近似值为:%lf", ans);

    return 0;
}

四、辛普森公式的优缺点

辛普森公式相对于其他数值积分方法具有精度高的优点,特别适用于求解一定区间内连续可导的函数的积分。但该方法需要将积分区间分成若干个子区间进行计算,计算量较大。同时对于非光滑且存在强烈的变化较大的函数,其积分值的估计容易出现偏差。