1. 程式人生 > 其它 >計算方法2 插值與函式逼近

計算方法2 插值與函式逼近

心態崩了,這個 latex 公式支援也太迷幻了。但是不太想管,等啥時候有空整個自己的吧(flag++)

函式逼近

考慮的是對於給定函式 \(f\),求一個多項式函式 \(p\) 使得 \({f-p}\) 儘可能小。這裡不關注特定點上的值,而更在意兩個函式總體的距離。

Weierstrass 逼近定理

\(f\in C[a,b]\),那麼存在多項式列 \(\left\{F_n\right\}\),使得 \(\norm{\lim\limits_{n\rightarrow\infty} F_n -f}_{\infty}=0\)

\(\norm{f}_{\infty}\) 的含義是 \(\sup R(f)\)

,即值域的上確界。

注意到 \([a,b]\) 是任意的。為了便於討論,一般通過伸縮平移到 \([-1,1]\) 上考慮。

Bernstein(又是他)給了一個構造性的證明,他構造出的多項式即為大名鼎鼎的Bernstein多項式。證明的技巧比較強,這裡就不放了,感覺再抄一遍也沒啥用....

Chebyshev 多項式

特殊的多項式族,規定了 \(n\) 次多項式一致逼近的誤差下界。

定義

是一組多項式列 \(\left\{T_n\right\}\),其中 \(T_n\) 是次數為 \(n\) 的多項式

\[T_n(x)=\cos(n\arccos x) \]

\(\arccos x=\theta\)

注意到

\[T_{n+1}(x)=\cos((n+1)\theta)=\cos n\theta\cos\theta-\sin n\theta\sin\theta \\ T_{n-1}(x)=\cos((n-1)\theta)=\cos n\theta\cos\theta+\sin n\theta\sin\theta \]

可得等價的遞推式如下

\[\begin{aligned} T_0(x)&=1 \\ T_1(x)&=x \\ \cdots \\ T_{n+1}(x)&=2xT_n(x)-T_{n-1}(x) \end{aligned} \]

性質

  1. \(T_n(x)\)
    \(n\) 次多項式,首項係數為 \(2^{n-1}\)。歸納可得。
  2. \(T_n(x)\) 的值域為 \([-1,1]\)。這是個 \(\cos\) 函式。
  3. \(T_n(x)\) 的零點恰好為 \(n\arccos x=\dfrac{\pi}{2}+k\pi\) 的解,解恰有 \(n\) 個。
  4. \(T_n(x)\)\([-1,1]\) 之間震盪,並恰好變號 \(n+1\) 次。
  5. \(T_n(x)=\prod_{i=1}^n (x-x_i)\),其中 \(x_i\) 是性質 3 中的第 \(i\) 個解。

並且有:任給 \(n\) 次首一多項式 \(P_n(x)\),都有 \(\norm{\frac{1}{2^{n-1}}T_n(x)}_\infty\leq \norm{P_n(x)}_\infty\),且 \(\norm{\frac{1}{2^{n-1}}T_n(x)}_\infty=\frac{1}{2^{n-1}}\)

由反證法,假設存在更小的 \(P'_n(x)\),則 \(\Delta(x)=\frac{1}{2^{n-1}}T_n(x)-P'_n(x)\) 將會存在至少 \(n\) 個零點。而 \(\Delta(x)\) 至多是 \(n-1\) 次多項式,這說明 \(\Delta(x)\equiv 0\)

Chebyshev 多項式給了我們一個最小化形如 \(\prod (x-x_i)\) 這樣多項式的辦法:設定 \(x_i\) 的值為 Chebyshev 多項式的零點,這樣本身就得到了一個 Chebyshev 多項式。由其性質即得多項式的最值是同次首一多項式中最小的。

函式插值

Lagrange Interpolation

假設給了 \(n\) 個二維平面上的點對 \(\left\{(x_i,y_i)\right\}\),如何求出一個函式恰好經過這 \(n\) 個點?

考慮這麼一個函式 \(L_i'(x)=(x-x_1)(x-x_2)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)\),它有如下性質:

  1. \(\deg L_i'(x)\leqslant n-1\)
  2. \(L_i'(x_j)=0,i\neq j\)
  3. \(L_i'(x_i)=(x_i-x_1)(x_i-x_2)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)\)

為了方便我們可以配上一個係數,那麼就得到 \(L_i(x)=\dfrac{L_i'(x)}{L_i'(x_i)}\)

於是就有 \(L_i(x_j)=\delta_{i,j}\),其中 \(\delta_{i,j}\) 為kronecker記號。

再繼續構造 \(F(x)=\sum\limits_{i=1}^n y_iL_i(x)\),根據上面的性質可知 \(\forall i\in[n],F(x_i)=y_i\)

這樣拉格朗日就得到了這麼一個經過 \(n\) 個點的多項式,且 \(F(x)\) 是多項式,有 \(\deg F(x)\leqslant n-1\)

唯一性

假設存在 \(F(x)\neq G(x)\),構造 \(H(x)=F(x)-G(x)\),則 \(H(x)\) 有至少 \(n\) 個零點,由代數基本定理可知 \(H(x)\equiv 0\),矛盾。

誤差分析

不妨假設 \(x_0\le x_1\le\cdots \le x_n\)

\[R_n(x)=f(x)-P_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!} {\prod_{i=0}^{n} (x-x_i)} \]

其中 \(\xi\in(x_0,x_n)\)\(f\in C^{n+1}[x_0,x_n]\)

固定一個 \(x\),構造關於變元 \(t\) 的函式

\[\varphi(t)=f(t)-P_n(t)-R_n(x) \]

\(\varphi(t)\)\([x_0,x_n]\) 上有至少 \(n+2\) 個零點:

  1. \(t=x_i\)\(\varphi(x_i)=f(x_i)-P_n(x_i)-R_n(x)=0\)
  2. \(t=x\)\(\varphi(x)=f(x)-P_n(x)-R_n(x)=0\)

因此相鄰的兩個零點兩兩用中值定理即得 \(\varphi^{(n+1)}(t)\)\([x_0,x_n]\) 上有至少一個零點,展開即為 \(R_n(x)\) 的形式。

最小化誤差

即我們既想插值,又想做函式逼近。

回顧 \(R_n(x)\) 的定義,令 \(\omega_n(x)=\prod_{i=0}^n (x-x_i)\),最小化 \(\omega_n\) 即可最小化 \(R_n\),這一點通過選取特殊的插值點來實現。

回想 Chebyshev 多項式的性質,我們只需要選取 \(\{x_i\}\) 使得 \(n\arccos x_i=\dfrac{\pi}{2}+k\pi\) 即可。這樣插值出來的多項式被稱為 Chebyshev 插值多項式。

最小二乘法

很多時候度量的選取是任意的,例如上面就選擇了 \(\norm{}_\infty\) 作為函式逼近的度量。在選取 \(\norm{}_2\) 作為度量時,則可以使用最小二乘法的辦法來找到最佳平方逼近。

我們知道次數至多為 \(n\) 的多項式函式構成了 \(n+1\) 維線性空間。最小二乘法的本意即為用一個低維的線性空間來最佳地表徵高維空間中的向量(或者反過來,求一個高維向量在低維空間中的投影),這樣用於求平方逼近就是很自然的想法了。

這樣只需要求出一組多項式的正交基,然後就可以在座標下討論多項式逼近了。