1. 程式人生 > 其它 >第五章 插值與逼近

第五章 插值與逼近

5.1 離散問題

定義給定一組點\(\{x_i,y_i\}\quad(i=0,1,\cdots,n)\)

並且\(x_0<x_1<\cdots<x_n\),若函式\(f(x)\)使得

\(\qquad f(x_i)=y_i\quad (i=0,1,\cdots,n)\)

成立,則\(y=f(x)\)就是這一組資料點的一個插值函式,求\(y=f(x)\)的過程稱為函式插值。

函式插值不是唯一的。

其他處理離散點的方式允許存在誤差,因此沒有必要要求函式一定要準確地通過給定的資料點。

5.2 一般插值問題

5.2.1 對插值函式的要求

  • 插值函式應該有比被插值函式具有更簡單的形式;
  • 插值函式應當繼承被插值函式的某些特性,包括但不限於單調性、凹凸性、週期性;
  • 簡單程度
  • 性態方面的接近程度

5.2.2 多項式插值

1)多項式插值的定義

定義給定一組點\(\{x_i,y_i\}\quad(i=0,1,\cdots,n)\),且

\(\qquad \qquad x_0<x_1<\cdots<x_n\)

求次數不超過n的多項式\(p_n(x)\)使得

\(\qquad \qquad p_n(x_i)=y_i,\quad i=0,1\cdots,n\)

成立,其中\(x_i\)稱為插值節點,\(p_n(x)\)稱為n次插值多項式。

5.2.3 單項式基底下的多項式插值

設n次插值多項式為\(p_n(x)=t_0+t_1x+t_2x^2+\cdots+t_nx^n\)

根據插值條件,得到

\(\qquad \qquad p_n(x)=t_0+t_1x_i+t_2x_i^2+\cdots+t_nx_i^2,\quad i=0,1,\cdots,n\)

\(\qquad \begin{bmatrix}1&x_i&\cdots&x_i^n\end{bmatrix}\begin{bmatrix}t_0\\t_1\\\vdots\\t_n\end{bmatrix}=\begin{bmatrix}y_0\\y_1\\\vdots\\y_n\end{bmatrix}\)

上述關係就是一個關於\(t_0,t_1,\cdots,t_n\)的線性方程組:

\(\qquad \begin{bmatrix}1&x_0&\cdots&x_0^n\\1&x_1&\cdots&x_1^n\\\vdots&\vdots&\ddots&\vdots\\1&x_n&\cdots&x_n^n\end{bmatrix}\begin{bmatrix}t_0\\t_1\\\vdots\\t_n\end{bmatrix}=\begin{bmatrix}y_0\\y_1\\\vdots\\y_n\end{bmatrix}\)

用矩陣符號記之為\(At=y\),其中A稱為插值矩陣。

矩陣A是Vandermonde矩陣,當\(x_i\)互不相同時,A可逆。

但通常不會這麼做:①工作量大 ②A通常是一個病態矩陣

5.2.4 一般基底下的插值多項式

假設有一組\(P_n\)的基底:\(\quad\varphi_{0}(x),\varphi_1(x),\cdots,\varphi_{n}(x)\in P_n\)

任意次數不超過n的多項式可寫成:\(\qquad P_{n}(x)=t_0\varphi_{0}(x)+t_1\varphi_{1}(x)+\cdots+t_n\varphi_{n}(x)\)

寫成矩陣形式\(At=y\)

\(\qquad\begin{bmatrix}\varphi_0(x_0)&\varphi_1(x_0)&\cdots&\varphi_{n}(x_0)\\\varphi_0(x_1)&\varphi_1(x_1)&\cdots&\varphi_{n}(x_1)\\\vdots&\vdots&\ddots&\vdots\\\varphi_0(x_n)&\varphi_1(x_n)&\cdots&\varphi_{n}(x_n)\end{bmatrix}\begin{bmatrix}t_0\\t_1\\\vdots\\t_n\end{bmatrix}=\begin{bmatrix}y_0\\y_1\\\vdots\\y_n\end{bmatrix}\)

A稱為一般插值矩陣。

什麼情況下,\(At=y\)能夠被快速求解?顯然,當\(A=I\)時,系統求解起來最為方便。

當插值矩陣是單位陣時,對應的就是Lagrange插值多項式。

5.3 常用插值公式和演算法

5.3.1 Lagrange型插值多項式

當矩陣A是單位陣時,對角線上元素為1,其他元素為0,得到

\(\qquad \varphi_j(x_i)=\delta_{ij}=\cases{1,\qquad i=j,i=0:n,\\0,\qquad i\ne j}\)

若可以求出這樣的\(\varphi_j(x)\)它們就稱為Lagrange插值基,並記為\(l_j(x)\),它們又稱基本插值多項式。

由於要求插值矩陣是單位陣,那麼

\(l_j(x_i)=0\qquad(i\ne j),\quad l_j(x_j)=1\)

\(l_j(x)=\alpha_j(x-x_0)\cdots(x-x_{j-1})(x-x_{j+1})\cdots(x-x_n)\)

由上式知,\(\alpha_j=\frac{1}{\prod\limits_{i=0,i\ne j}^{n}(x_j-x_i)}\),則\(l_j(x)=\frac{\prod\limits_{i=0,i\ne j}^{n}(x-x_i)}{\prod\limits_{i=0,i\ne j}^{n}(x_j-x_i)}\)

\(p_n(x)=y_0l_0(x)+y_1l_1(x)+\cdots+y_nl_n(x)=\sum\limits_{j=0}^{n}y_jl_j(x)=\sum\limits_{j=0}^{n}y_j\frac{\prod\limits_{i=0,i\ne j}^{n}(x-x_i)}{\prod\limits_{i=0,i\ne j}^{n}(x_j-x_i)}\),稱\(p_n(x)\)為n次Lagrange插值多項式。

5.3.2 插值誤差餘項

\(f(x)\)在包含\(n+1\)個互異節點\(x_0,x_1,\cdots,x_n\)的區間\([a,b]\)上具有n階連續倒是,且在\((a,b)\)記憶體在\(n+1\)階導數,則對於任意的\(x\in[a,b]\),有\(R_n(x)=f(x)-p_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}W_{n+1}(x)\),其中\(\xi\in(a,b),W_{n+1}(x)=(x-x_0)(x-x_1)\cdots(x-x_n)\)

5.3.4 差商與Newton插值

設0階差商為\(f[x_i]=f(x_i)\),則1階差商定義為\(f[x_i,x_j]=\frac{f[x_j]-f[x_i]}{x_j-x_i}\),2階差商定義為\(f[x_i,x_j,x_k]=\frac{f[x_j,x_k]-f[x_i,x_j]}{x_k-x_i}\),k階差商定義為\(f[x_0,x_1,\cdots,x_k]=\frac{f[x_1,\cdots,x_k]-f[x_0,\cdots,x_{k-1}]}{x_k-x_0}\)

對比上節我們發現\(\alpha_k=f[x_0,x_1,\cdots,x_k]\),即插值多項式為\(p_n(x)=f[x_0]+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots\\+f[x_0,x_1,\cdots,x_n](x-x_0)\cdots(x-x_{n-1})\)

這種型別的插值多項式稱為n次Newton型插值多項式。相當於把\(1,x-x_0,(x-x_0)(x-x_1),\cdots,(x-x_0)(x-x_1)\cdots(x-x_{n-1})\)作為多項式空間\(P_n\)的一組基。

1)Newton型插值多項式的計算流程

給定資料點\((x_0,y_0)\quad (x_1,y_1)\quad\cdots\quad(x_n,y_n)\)

列差商表

k \(x_k\) 0階 1階 2階 3階
0 \(x_0\) \(f[x_0]\) \(f[x_0,f_1]\) \(f[x_0,x_1,x_2]\) \(f[x_0,x_1,x_2,x_3]\)
1 \(x_1\) \(f[x_1]\) \(f[x_1,x_2]\) \(f[x_1,x_2,x_3]\)
2 \(x_2\) \(f[x_2]\) \(f[x_2,x_3]\)
3 \(x_3\) \(f[x_3]\)

根據第一行結果,得到插值多項式為\(N_3(x)=f[x_0]+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)\\+f[x_0,x_1,x_2,x_3](x-x_0)(x-x_1)(x-x_2)\)

2)差商的性質

性質2 差商具有對稱性 \(f[x_0,x_1,x_2,x_3]=f[x_3,x_0,x_1,x_2]\)

性質3 差商同高階導數具有如下關係 \(f[x_0,x_1,\cdots,x_k]=\frac{f^{(k)}(\eta)}{k!}\quad \eta\in(\min\limits_{0\le i\le k}\{x_i\},\max\limits_{0\le i\le k}\{x_i\})\)

性質4 上性質的推論 \(f[x_0,x_1,\cdots,x_k,x]=\frac{f^{(k+1)}(\xi)}{(k+1)!}\quad \xi\in(\min\{x_0,x_1,\cdots,x_i,x\},\max\{x_0,x_1,\cdots,x_i,x\})\)

可以證明Newton誤差餘項可以寫成\(R_k(x)=f(x)-N(x)=f[x_0,x_1,\cdots,x_k,x]W_{k+1}(x)\)

差分及等距節點Newton插值多項式

上節討論的是節點任意分佈的Newton插值多項式。但在實際使用時又是碰到等距節點的情況,即節點為\(x_i=a+ih \quad (i=0,1,\cdots,n)\)這裡h稱為步長,此時插值多項式可以進一步簡化,同時可以避免做除法運算。

定義:已知函式\(f(x)\)在等距節點\(x_i\)上的函式值為\(f(x_i)=f_i(i=0,1,\cdots,n)\),稱\(f_{i+1}-f_i\)\(x_i\)處以h為步長的1階差分,記作\(\Delta f_i\),即\(\Delta f_i=f_{i+1}-f_i\),類似的,稱\(\Delta^kf_i=\Delta^{k-1}f_{i-1}-\Delta^{k-1}f_i\)\(f(x)\)\(x_i\)處以h為步長的k階向前差分,簡稱k階差分。

和差商的計算一樣,可構造差分表

k \(x_k\) \(f_k\) \(\Delta f_k\) \(\Delta^2f_k\) \(\Delta^3f_k\) \(\Delta^4f_k\)
0 \(x_0\) \(f_0\) \(\Delta f_0\) \(\Delta^2f_0\) \(\Delta^3f_0\) \(\Delta^4f_0\)
1 \(x_1\) \(f_1\) \(\Delta f_1\) \(\Delta^2f_1\) \(\Delta^3f_1\)
2 \(x_2\) \(f_2\) \(\Delta f_2\) \(\Delta^2f_2\)
3 \(x_3\) \(f_3\) \(\Delta f_3\)
4 \(x_4\) \(f_4\)

應用數學歸納法可以證明差分和差商有如下關係:\(f[x_i,x_{i+1},\cdots,x_{i+k}]=\frac{\Delta^kf_i}{k!h^k}\)

\(x=x_0+th\),則\(\prod\limits_{j=0}^{k-1}(x-x_j)=\prod\limits_{j=0}^{k-1}[(x_0+th)-(x_0+jh)]=h^k\prod\limits_{j=0}^{k-1}(t-j)\)

代入到Newton插值多項式\(N_n(x)=\sum\limits_{k=0}^{n}f[x_0,x_1,\cdots,x_k]\prod\limits_{j=0}^{k-1}(x-x_j)\)

得到\(N_n(x_0+th)=\sum\limits_{k=0}^{n}\frac{\Delta^kf_0}{k!}\prod\limits_{j=0}^{k-1}(t-j)\)

其中\(t=\frac{x-x_0}{h}\),稱為n次Newton前插公式。

5.3.8 一種帶導數的插值

帶導數插值問題的一種處理手段就是,先用函式值資料構造一個低次多項式,然後找到二者的聯絡,最後再用倒數條件確定一些未知的係數,需要指出的是,並非任意一個帶導數插值問題都有解或唯一解,要具體問題具體分析。

5.3.9 Hermite插值

給定區間\([a,b]\)中n+1個互異節點\(x_i\quad(i=0,1,\cdots,n)\)上的函式值以及直到\(m_i\)階的導數值\(f(x_i),f'(x_i),\cdots,f^{(m_i)}(x_i)\),令\(m=\sum\limits_{i=0}^{n}(m_i+1)-1\)。若存在次數不超過m的多項式\(H_m(x)\),使得每個\(x_i\quad(i=0,1,\cdots,n)\)\(H_m(x_i)=f(x_i),H'_{m}(x_i)=f'(x_i),\cdots,H_{m}^{m_i}(x_i)=f^{(m_i)}(x_i)\)

則稱\(H_m(x)\)\(f(x)\)的m次Hermite插值多項式。

Hermite插值又稱為重節點上的插值。

當被插值函式\(f(x)\)在節點\(x_i\)處具有\(m_i\)階連續導數時,Hermite插值多項式\(H_m(x)\)存在且唯一。

\(f(x)\in C^{(m+1)}[a,b]\)時,Hermite插值的誤差餘項為\(f(x)-H_m(x)=\frac{f^{(m+1)}(\xi)}{(m+1)!}\prod\limits_{i=0}^{n}(x-x_i)^{m_i+1},\quad \xi\in(a,b)\)

2)Newton型Hermite插值多項式

重節點上的差商可以這樣計算:\(f[x_0,x_0]=f'(x_0)\)

更多節點時:\(f[\underbrace{x_0,\cdots,x_0}_{k+1}]=\frac{f^{(k)}(x_0)}{k!}\)

有了重節點上的差商,Hermite插值多項式:\(H_m(x)=f[x_0]+f[x_0,x_0](x-x_0)+\cdots+f[x_0,\cdots,x_0](x-x_0)^{m_0}+\\f[x_0,\cdots,x_0,x_1](x-x_0)^{m+1}+\\f[x_0,\cdots,x_0,x_1,x_1](x-x_0)^{m_0+1}(x-x_1)+\cdots\)

5.4.2 分段線性插值

2)分段線性插值簡介

最簡單的分段插值是分段線性插值,所謂分段線性插值,簡而言之就是用折現直接把資料點連線起來,然後就形成一個分段函式。

理論分析

\(x\) \(x_0\) \(x_1\) \(\cdots\) \(x_{n-1}\) \(x_n\)
\(f(x)\) \(f(x_0)\) \(f(x_1)\) \(\cdots\) \(f(x_{n-1})\) \(f(x_n)\)

\(h_i=x_{i-1}-x_i\quad,h=\max\limits_{0\le i\le n-1}\{h_i\}\)\([x_i,x_{i+1}]\)上進行線性插值,得到\(L_{1,i}(x)=f(x_i)+f[x_i,x_{i+1}](x-x_i)\)根據誤差餘項公式,子區間上的插值誤差餘項為\(f(x)-L_{1,i}(x)=\frac{1}{2}f''(\xi)(x-x_i)(x-x_{i+1})\quad,\xi_i\in(x_i,x_{i+1})\)

因此小區間上的誤差估計為\(\max\limits_{x_i\le x\le x_{i+1}}|f(x)-L_{1,i}(x)|\le\frac{h^2_i}{8}\max\limits_{x_i\le x\le x_{i+1}}|f''(x)|\)

\(\widetilde{L}_1(x)=\cases{L_{1,0}(x),\qquad x\in[x_0,x_1)\\L_{1,1}(x),\qquad x\in[x_1,x_2)\\\cdots\\L_{1,n-2}(x),\quad x\in[x_{n-2},x_{n-1})\\L_{1,n-1}(x),\quad x\in[x_{n-1},x_n)}\)就得到了分段線性插值函式\(\widetilde{L_1}(x)\),它的誤差(整體誤差)為

\(\begin{aligned}\max\limits_{a\le x\le b}|f(x)-\widetilde{L}_1(x)|&=\max\limits_{0\le i\le n-1}\max\limits_{x_i\le x\le x_{i+1}}|f(x)-\widetilde{L}_{1,i}(x)|\\&\le\max\limits_{0\le i\le n-1}\frac{h^2_i}{8}\max\limits_{x_i\le x\le x_{i+1}}|f''(x)|\\&\le\frac{h^2}{8}\max\limits_{a\le x\le b}|f''(x)|\end{aligned}\)

3)分段線性插值多項式的總結

優點:能消除高次插值的過分振盪和不收斂現象。

缺點:在插值函式的光滑性方面有所欠缺。

5.4.4 樣條插值與三次樣條插值

3)三次樣條函式的高效計算

關鍵點:假設\(M_j=S''(x_j)\),稱之為力矩。

對小區間\([x_j,x_{j+1}]\)來說,\(M_j,M_{j+1}\)足夠表示出樣條函式的2階導數,並且同下一個區間\([x_{j+1},x_{j+2}]\)共用同一個力矩\(M_{j+1}\)

根據Lagrange插值,在小區間\([x_j,x_{j+1}]\)上,有\(S''(x)=M_j\frac{x_{j+1}-x}{h_j}+M_{j+1}\frac{x-x_j}{h_j},\qquad x\in[x_j,x_{j+1}]\)

積分有\(S'(x)=-M_j\frac{(x_{j+1}-x)^2}{2h_j}+M_{j+1}\frac{(x-x_j)^2}{2h_j}+A_j\),其中\(A_j\)是待定的常數

再次積分得到樣條函式為\(S(x)=M_j\frac{(x_{j+1}-x)^3}{6h_j}+M_{j+1}\frac{(x-x_{j})^3}{6h_j}+A_jx+B_j\)

通過\(S(x_j)=y_j,S(x_{j+1})=y_{j+1}\),求解\(A_j,B_j\),發現是關於\(M_j\)的表示式。

再根據\(S'(x_j-0)=S'(x_j+0)\)列寫\(M_{j-1},M_j,M_{j+1}\)

接著對\(S'(x_j-0)=S'(x_j+0)\)化簡出等式的係數設為引數,而後會得到一個嚴格對角佔優的三對角系統,即

\(\cases{2M_0+M_1=d_0\\\mu_jM_{j-1}+2M_j+\lambda_jM_{j+1}=d_j,\qquad j=1,2,\cdots,n-1,\\M_{n-1}+2M_n=d_n}\)

定義引數:

\(\cases{h_j=x_{j+1}-x_j,\qquad\qquad\qquad j=0:n-1,\\\lambda_0=1,\\d_0=\frac{6}{h_0}(\frac{y_1-y_0}{h_0})-y_0',\\\lambda_j=\frac{h_j}{h_{j-1}+h_j},\qquad\qquad\qquad\quad j=1:n-1,\\\mu_j=1-\lambda_j=\frac{h_{j-1}}{h_{j-1}+h_j},\qquad\quad\quad j=1:n-1,\\d_j=\frac{6}{h_{j-1}+h_j}(\frac{y_{j+1}-y_j}{h_j}-\frac{y_j-y_{j-1}}{h_{j-1}}),\quad j=1:n-1,\\\mu_n=1,\\d_n=\frac{6}{h_{n-1}}(y_n'-\frac{y_n-y_{n-1}}{h_{n-1}}).}\)

5.5 函式逼近

5.5.1 函式逼近簡介

1)範數與距離

設X是一個線性空間,假設有函式\(||·||:X\rightarrow R\),它滿足:

\(||x||\ge0,||x||=0\Leftrightarrow x=0\)

\(||\alpha x||=\alpha\cdot||x||,\alpha\in R\)

\(||x+y||\le||x||+||y||\)

則稱\(||·||\)是X上的範數,定義了範數的線性空間被稱為線性賦範空間。其中常用範數為

\(||f||_1=\int_a^b|f(x)|\mbox{d}x,\quad||f||_\infty=\max\limits_{a\le x\le b}|f(x)|,\quad||f||_2=\sqrt{\int_a^b[f(x)]^2\mbox{d}x}\)

2)最佳逼近定義

設X是一個線性賦範空間,\(M\subset X,f\in X\),若M中的元素\(\varphi\)滿足:\(||f-\varphi||\le||f-\psi||, \forall\psi\in M\),則稱\(\varphi\)為f在M中的最佳逼近元。

選擇無窮範數時,得到最佳一致逼近;

選擇2-範數時,得到最佳平方逼近。

5.5.2 最佳一致逼近簡介

1)最佳一致逼近多項式

對函式來說,無窮範數度量的就是最大誤差,即\(||f-g||_\infty=\max\limits_{a\le x\le b}|f(x)-g(x)|\)兩個函式在某區間上的“最大”差別很小,二者的“整體”差別就很小,這也是一致的含義。所謂最佳一致逼近,就是求最大誤差最小的逼近函式。

定義5.8,設\(f\in C[a,b]\),若\(\exists p_n\in P_n\),使得對\(\forall q_n\in P_n\),有

\(||f-p_n||_\infty\le||f-q_n||_\infty\)

則稱\(p_n(x)\)是f(x)的n次最佳一致逼近多項式。

定理5.8 設\(f\in C[a,b]\),則它的n次最佳一致逼近多項式存在且唯一。

定義5.9,設\(g\in C[a,b]\),如果\(\exists x_k\in[a,b]\)使得

\(|g(x_k)|=||g||_\infty\),則稱\(x_k\)為g(x)在[a,b]上的偏差點。

5.5.3 最佳平方逼近

1)為什麼要研究最佳平方逼近

最佳一致逼近考慮的是整個區間上絕對誤差的最大值,最佳一致逼近反而不能很好地反映真實情況。

2)內積與範數

設X是一個線性空間,對\(\forall x,y\in X\),都有唯一的師叔與之對應,我們記該實數為\((x,y)\),若它滿足:

\(\forall x,y\in X\),有\((x,y)=(y,x)\); ②\(\forall x,y\in X,\lambda\in R\),有\((\lambda x,y)=\lambda(x,y)\)

\(\forall x,y,z\in X\),有\((x+y,z)=(x,z)+(y,x)\);④\(\forall x\in X\),有\((x,x)\ge 0\)\((x,x)=0\Leftrightarrow x=0\)

則X稱為內積空間,又稱Hilbert空間。二元運算\((·,·)\)稱為內積運算,簡稱內積,它是一個具有對稱性的雙線性函式。

常用的內積有兩個:①\(R^n:(x,y)=\sum\limits_{i=1}^{n}x_iy_i\);②\(C[a,b]:(f,g)=\int_a^bf(x)g(x)\mbox{d}x\)

4)離散情形的最佳平方逼近

\(\begin{bmatrix}(\varphi_0,\varphi_0)&\cdots&(\varphi_0,\varphi_m)\\(\varphi_1,\varphi_0)&\cdots&(\varphi_1,\varphi_m)\\\vdots&\ddots&\vdots\\(\varphi_m,\varphi_0)&\cdots&(\varphi_m,\varphi_m)\end{bmatrix}\begin{bmatrix}c_0\\c_1\\\vdots\\c_m\end{bmatrix}=\begin{bmatrix}(y,\varphi_0)\\(y,\varphi_1)\\\vdots\\(y,\varphi_m)\end{bmatrix}\)

5)超定方程組的最小二乘解

超定方程組的正規方程組為:\(A^TAx=A^Tb\)

6)連續情形的最佳平方逼近

\(\begin{bmatrix}(\varphi_0,\varphi_0)&\cdots&(\varphi_0,\varphi_m)\\(\varphi_1,\varphi_0)&\cdots&(\varphi_1,\varphi_m)\\\vdots&\ddots&\vdots\\(\varphi_m,\varphi_0)&\cdots&(\varphi_m,\varphi_m)\end{bmatrix}\begin{bmatrix}c_0\\c_1\\\vdots\\c_m\end{bmatrix}=\begin{bmatrix}(f,\varphi_0)\\(f,\varphi_1)\\\vdots\\(f,\varphi_m)\end{bmatrix}\)

其中\((\varphi_i,\varphi_j)=\int_a^b\varphi_i(x)\varphi_j(x)\mbox{d}x,\quad(f,\varphi_i)=\int_a^bf(x)\varphi_i(x)\mbox{d}x\)

若基函式\(\varphi_i(x)=x^i(i=0,1,\cdots,m)\),那麼\(p(x)\)稱為\(f(x)\)在區間\([a,b]\)上的m次最佳平方逼近多項式。