以內插多項式來做數值積分

前情提要: 數值積分初探


連續函數可以用多項式來逼近它, 因此直覺來講, 既然我們已經找到一個離給定函數"很近"的多項式了, 何不就以這個多項式的積分值來當成原函數積分值的一個逼近呢.

Goal: 任意給定一可積分函數 $f(x)$, $x\in[-1, 1]$, 我們想要算 $\int^1_{-1} f(x) dx$.


我們先講內插多項式

給定任意 $n+1$ 個不重複的點在 $[-1, 1]$ 區間, 我們把他們記為 $x_0, x_1, \cdots, x_n.$ 接著我們計算函數 $f(x)$ 在這些點上的值, 記為 $f_i = f(x_i)$, 這樣我們就有平面上的 $n+1$ 個點座標 $(x_i, f_i)$.

有這些點我們就一定能找到一個 $n$ 次多項式 $p_n(x)$ 使得說這個多項式會通過這些所有的點, 也就是 $p_n(x_i) = f_i$. 這就叫做內插多項式.

內插多項式一個很簡潔的表示法是把它寫成 Lagrange polynomial 的樣子. 我們先引進 Lagrange basis function $$ \ell_i(x) = \prod^n_{k=0, k\ne i} \frac{x-x_k}{x_i-x_k}. $$ 很明顯可以看出這是一個 $n$ 次多項式, 而且有很特殊的性質, 也就是 $\ell_i(x_j)=\delta_{ij}$.

$\delta_{ij}$ 是所謂的 Kronecker delta function, 如果 $i=j$ 則 $\delta_{ij}=1$, 反之如果 $i\ne j$ 則 $\delta_{ij}=0$. 舉例來說, $\delta_{11}=1$, 而 $\delta_{12}=0$.

因此我們可以將內插多項式 $p_n(x)$ 改寫成 $$ p_n(x) = \sum^n_{i=0} f_i \ell_i(x). $$ 這就是內插多項式的 Lagrange 表示法.


接著我們就可以來做積分了!

我們直接以內插多項式來逼近函數並做積分, $$ \int^1_{-1} f(x)dx \approx \int^1_{-1} p_n(x)dx = \int^1_{-1} \sum^n_{i=0} f_i \ell_i(x)dx = \sum^n_{i=0} f_i \left(\int^1_{-1} \ell_i(x)dx\right). $$ 理論上, 如果插值點 $x_i$ 是一開始就給定並且固定的, 那我們就可以把 Lagrange basis function $\ell_i(x)$ 算出來, 並且把他的積分也算出來. 我們把積分出來的值記為 $w_i$, 也就是 $$ w_i = \int^1_{-1} \ell_i(x)dx. $$ 如此我們就可以把積分改寫成 $$ \int^1_{-1} f(x)dx \approx \sum^n_{i=0} w_i f_i. $$ 這就是以內插多項式來做積分.


Remark: 如果 $f(x)$ 本身就是個 $n$ 次或以下的多項式, 那我們做出來的內插多項式就不是 approximation 而是等號了. 那這樣我們做出來的積分事實上應該就是等號! 也就是說 $$ \int^1_{-1} p(x)dx = \sum^n_{i=0} w_i f_i, $$ where $p(x)$ is a polynomial with degree less than or equals to $n$.


舉個簡單的例子來試試

假設我們只想要用兩個端點來估算積分, 那我們有 $x_0=-1, x_1=1$. 因此得到 Lagrange basis polynomials $$ \ell_0(x) = \frac{x+1}{2}, \quad \ell_1(x)=\frac{x-1}{-2}. $$ 接著可以算出 $$ w_0 = \int^1_{-1} \ell_0(x)dx = 1, \quad w_1=\int^1_{-1}\ell_1(x)dx=1. $$ 也就是說 $$ \int^1_{-1} f(x)dx \approx f(-1) + f(1), $$ 得到所謂的梯形法!


延伸閱讀: 高斯積分


Avatar
Te-Sheng Lin (林得勝)
Associate Professor

The focus of my research is concerned with the development of analytical and computational tools, and further to communicate with scientists from other disciplines to solve engineering problems in practice.

Related