📜  评估定积分(1)

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

评估定积分

定积分是微积分中的一种重要概念,可以用来计算曲线下的面积、质心、物理中的功等等。评估定积分就是通过一定的数值算法来近似计算定积分的值,常见的数值算法有矩形法、梯形法、辛普森法等等。

矩形法

矩形法是一种最简单的数值算法,它将区间 $[a,b]$ 分成 n 个小区间,用矩形将每一个小区间近似成一个梯形,并计算出每个小梯形面积的和。矩形法又可以分为左矩形法、右矩形法、中矩形法三种。

左矩形法的数值公式为:

$$ \int_a^b f(x)dx \approx \sum_{i=0}^{n-1} f(x_i)(x_{i+1}-x_i) $$

其中 $x_i=a+i\frac{b-a}{n}$,$f(x_i)$ 是第 i 个小区间左端点处的函数值。

右矩形法的数值公式为:

$$ \int_a^b f(x)dx \approx \sum_{i=1}^{n} f(x_i)(x_{i}-x_{i-1}) $$

其中 $x_i=a+i\frac{b-a}{n}$,$f(x_i)$ 是第 i 个小区间右端点处的函数值。

中矩形法的数值公式为:

$$ \int_a^b f(x)dx \approx \sum_{i=0}^{n-1} f(\frac{x_i+x_{i+1}}{2})(x_{i+1}-x_i) $$

其中 $x_i=a+i\frac{b-a}{n}$,$f(\frac{x_i+x_{i+1}}{2})$ 是第 i 个小区间中点处的函数值。

矩形法是一种非常简单的数值算法,但是它对曲线线性程度的要求较高,如果曲线过于曲折,矩形法得到的结果可能会误差很大。

梯形法

梯形法是一种比矩形法更为精确的数值算法,它将每个小区间近似成一条线段构成的梯形。梯形法的数值公式为:

$$ \int_a^b f(x)dx \approx \frac{1}{2}\sum_{i=1}^{n} (f(x_{i-1})+f(x_i))(x_{i}-x_{i-1}) $$

其中 $x_i=a+i\frac{b-a}{n}$,$f(x_i)$ 是第 i 个小区间右端点处的函数值。

梯形法相对于矩形法的优势在于更能适应曲线的变化,误差更小,但是明显的缺陷是计算量较大。

辛普森法

辛普森法又被称为复合梯形法的一种精度更高的数值算法,它将每个小区间近似成一条二次函数形成的曲面。辛普森法的数值公式为:

$$ \int_a^bf(x)dx \approx \frac{b-a}{6}\left(f(a)+4f(\frac{a+b}{2})+f(b)\right) $$

辛普森法的计算量较大,但是它精度很高,可以适用于大多数曲线的计算。

代码示例

下面是使用 Python 语言实现三种算法的代码示例:

左矩形法
def left_rect(f, a, b, n):
    dx = (b-a)/float(n)
    result = 0.0
    for i in range(n):
        result += f(a+i*dx) * dx
    return result
梯形法
def trapezoid(f, a, b, n):
    dx = (b-a)/float(n)
    result = 0.0
    for i in range(1, n):
        result += f(a+i*dx)
    result += (f(a)+f(b))/2.0
    result *= dx
    return result
辛普森法
def simpson(f, a, b, n):
    dx = (b-a)/float(n)
    result = f(a) + f(b) 
    for i in range(1, n, 2):
        result += 4*f(a+i*dx)
    for i in range(2, n-1, 2):
        result += 2*f(a+i*dx)
    result *= dx/3.0
    return result
总结

评估定积分是一种重要的数值算法,具有广泛的应用。在实际使用中,我们可以根据曲线的特点选择合适的算法和参数,以保证计算结果的精度和效率。