定积分的几何意义 郝伟 2020/04/04 [TOC]

1. 简介

通过编程,求$\int{0}^{1} x^2\mathrm{d}x$的近似值. 在数学上,这是一道很简单的定积分的题目。使用数学方法,可以进行以下计算: $\int{1}^{2} x^2\mathrm{d}x = \left.\frac{x^3}{3}\right|_0^1=\frac{1^3}{3}-\frac{0^3}{3}=\frac{1}{3}=0.333333...$ 然而如果使用程序计算,很难按积分的相关公式来进行计算。所以,我们换个思路,直接利用定积分的定义进行求解。

2. 原理

计算原理如下所示 在这里插入图片描述

如上图所示(注:本图由$\LaTeX$ 的TikZ包绘制,具体方法参见 这里),曲线为函数 $y = x^2$,而 $\int_{1}^{2} x^2\mathrm{d}x$ 的值实际上曲线在[0, 1] 上与 X轴的夹成的区域,即图中阴影区域的面积。为了通用性,设开始点为$x_1$结束点为$x_2$。我们将阴影垂直切分成$n$份,则每一份的长度为 $\Delta x$,其值为 . 则对于其中一份的面积,可以近似看为一个矩形,高为$f(x_1 + i\Delta x)$,宽度为 $\Delta x$,即图中蓝色区域,故面积为 $f(x_1 + i\Delta x)\Delta x$。将所有面积求和可得 其中 $x_i = x_1 + i \Delta$。当 $n \rightarrow \infty$ 时,可以等于原值,即: 根据这个公式,当 $n$ 取得比较大的时候,我们可以很很容易求得比较接近的原值。

3. 程序实现

不过用矩形计算,由于忽略的面积比较多,如上图所未,红色区域都被忽略了,所以近似度有限(即收敛慢)。为了提高精度,如果我们将矩形改成梯型。如上图的几何含义,计算结果显然会更接近真实值,所以公式可以改为如下: 根据以上分析,对两种计算方式进行了编码实现(见附录一)。 取$n$等于10000,可以获得以下两种结果。

result1: 0.33328333499999957
result2: 0.33333333500000084

显然,第二种取梯形的结果更接近真实值。

4. 结论与展望

利用以上公式,我们可以快速求定积分的值,尤其是在函数 $y = f(x)$ 比较复杂,使用现有的计算公式难以取得其值的情况下,使用计算机会非常方便。在实际工程计算中,只需要将$n$取到足够大,即可满足绝大部分的需求。

5. 源代码

public class Integration {
    public static void main(String[] args) {
        double x1 = 0;
        double x2 = 1;
        int interval = 10000;
        double delta = (x2 - x1) / interval;
        double result1 = 0; 
        double result2 = 0;

        // 以矩形进行求和。
        for (int i = 0; i < interval; i++) {
            result1 += f(x1 + delta * i) * delta;
        }


        // 以梯形进行求和
        for (int i = 0; i < interval; i++) {
            result2 += (f(x1 + delta * i) + f(x1 + delta * i + delta)) * delta / 2;
        }

        System.out.println("result1: " + result1);
        System.out.println("result2: " + result2);
    }

    static double f(double x) {
        return x * x;
    }
}

results matching ""

    No results matching ""