第五章 插值與逼近
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次最佳平方逼近多項式。