📜  计算定积分(1)

📅  最后修改于: 2023-12-03 15:41:38.701000             🧑  作者: Mango

计算定积分

介绍

在数学中,定积分是对变量在一定区间内的连续函数的积分。计算定积分通常采用求导数的逆运算——积分的方法进行,也就是对函数在一定区间内的面积求解。

在计算机编程中,通过数值积分的方法可以对定积分进行计算。其中,常用的数值积分方法有梯形公式、辛普森公式等。

数值积分方法
梯形公式

梯形公式是数值积分中最基础也最简单的一种方法,它的思想是把待求积分区间划分为若干个等宽子区间,将每个子区间内的面积近似为一个梯形的面积,然后将所有子区间内的梯形面积加起来就是待求积分的近似值。

下面是通过梯形公式计算定积分的Python程序:

def trapezoid_rule(f, a, b, n):
    h = (b - a) / n
    s = (f(a) + f(b)) / 2.0
    for i in range(1, n):
        s += f(a + i * h)
    return h * s


if __name__ == '__main__':
    f = lambda x: x ** 2 + 1
    a, b = 0, 1
    n = 100
    s = trapezoid_rule(f, a, b, n)
    print('定积分的近似值为:', s)
辛普森公式

辛普森公式是一种高阶数值积分方法,其基本思想是将待求积分区间划分为若干个等宽子区间,每三个子区间组合成一个二次多项式,通过求解二次多项式的积分得到子区间内曲线下的面积,将所有子区间内的积分值相加即可得到所求定积分的近似值。

下面是通过辛普森公式计算定积分的Python程序:

def simpson_rule(f, a, b, n):
    h = (b - a) / n
    s = f(a) + f(b)
    for i in range(1, n):
        if i % 2 == 0:
            s += 2 * f(a + i * h)
        else:
            s += 4 * f(a + i * h)
    return h * s / 3.0


if __name__ == '__main__':
    f = lambda x: x ** 2 + 1
    a, b = 0, 1
    n = 100
    s = simpson_rule(f, a, b, n)
    print('定积分的近似值为:', s)
总结

通过梯形公式及辛普森公式,可对定积分进行数值计算,得到较为精确的近似值。相比于解析法,数值法的优势在于可以计算更为复杂的积分,同时也可通过增加子区间数目提高计算精度。