一种不基于微积分的求多项式函数下面积的方式

· · 算法·理论

本人初三,下面介绍的是一种自己想出来的方法,内容原创,不知道有没有已经成为前人的智慧。

作为一个 OIer,一些证明的过程不会很严谨,请见谅。

描述

对于一个给定的函数 f(x)=a_0x^0+a_1x^1+a_2x^2+\dots +a_nx^n,求 l\le x\le r 时,函数 f(x)x 轴所夹的面积。

注意这里认为面积有正负性,即在 x 轴上方,函数 f(x) 下方的面积为正,x 轴下方,函数 f(x) 上方的面积为负。

分解

首先先将 f(x) 拆成 g_0(x)+g_1(x)+g_2(x)+\dots+g_n(x),其中 g_i(x)=a_ix^i

那么 f(x) 下的面积也可以拆成 g_0(x),g_1(x),g_2(x),\dots,g_n(x) 下的面积之和。

于是我们只要能求每个 g_i(x) 下的面积即可。

不妨设 l\ge 0l<0 时同理),在 l\le x\le r 这段区间的面积可以用 0\le r 部分的面积减去 0\le x\le l 部分的面积得到,于是我们只需解决 0\le x\le r 的问题即可。

构造模型

现在我们只需解决这么一个问题:

考虑当 x=a 时,f(x)=a^k,这相当于一个边长为 ak 维立方体的体积,设 k 维的坐标表示为 (x_0,x_1,x_2,\dots,x_{k-1}),那么这个立方体可以表示为 0\le x_0\le a,0\le x_1\le a,0\le x_2\le a,\dots,0\le x_{k-1}\le a

那么对于 0\le x\le r 这段区间的这些立方体之和可以表示为一个 k+1 维的锥形体 0\le x_0\le r,0\le x_1\le x_0,0\le x_2\le x_0,\dots 0\le x_k\le x_0

那么这个锥形体的体积就是上述提到的 f(x) 下的面积。

求答案

可以构造出 k+1 个等价的锥形体(为了方便书写,以下默认 x_i\ge 0):

虽然上述几个锥形体中小于号取等的情况并不相同,但是实际上是一样的,因为两个数取等时这个图形是降维的,它在 k+1 维下的体积为 0

于是上述 k+1 个图形可以拼成高维立方体 x_0\le r,x_1\le r,x_2\le r,\dots,x_k\le r,那么这 k+1 个锥形体的体积总和是 r^{k+1},那么一个锥形体的体积就是 \frac{r^{k+1}}{k+1}

即,0\le x\le r 时,f(x)=x^k 下的面积为 \frac{r^{k+1}}{k+1}

证明

接下来证明上述 k+1 个锥形体和最后那个立方体是相同的:

证明:锥形体中的点都在立方体中

对于任意锥形体,它被表示为 x_{max}\le r,x_0<x_{max},x_1<x_{max},\dots,x_k\le x_{max} 的形式,那么对于其中每一个点 (x_0,x_1,x_2,\dots,x_k),这几个坐标中的最大值小于等于 r,那么每一维都小于等于 r,那么这个点一定在立方体中。

证明:立方体中的点都在锥形体中

对于立方体中任意一个点 (x_0,x_1,x_2,\dots,x_k),取出其中的最大值 x_{max}(若有多个选择下标最小的一个),那么这个点一定在锥形体 x_{max}\le r,x_0<x_{max},x_1<x_{max},\dots,x_k\le x_{max} 中。

至此,证毕。

结论

对于函数 f(x)=x^k,在 0\le x\le r 内,f(x) 下的面积为 \frac{r^{k+1}}{k+1}

对于函数 f(x)=a_0x^0+a_1x^1+a_2x^2+\dots+a_nx^n,在 l\le x\le r 内,f(x) 下的面积为 \sum_{i=0}^n a_i(\frac{r^{i+1}}{i+1}-\frac{l^{i+1}}{i+1})