一、4種插值方法及其誤差估計
1、多項式插值(以單項式為基地)
(Ⅰ)解題思路
\[P_n(x)=a_0+a_1x+……+a_nx^n \]將\(\{x\}_{i=0}^n\)代入,構造出一個關於係數\(a_0,a_1,……,a_n\)的\(n+1\)元線性方程組,並解出\(\{a\}\)。
由於這種插值方法是最繁雜的,所以一般不會用到(除非在小學生面前裝*),所以也不會考慮其誤差,如果非得考慮的話,由
範德蒙德矩陣
可知,矩陣非奇異所以\(P_n(x)\)存在且唯一,故而誤差和其他插值方法的誤差是一樣的,這裡就不做討論了。
(Ⅱ)例題(參考《數值分析 第五版》\(P_{48}\ T_1\))
題目: 當\(x=1,-1,2\)時,\(f(x)=0,-3,4\),用單項式基底求\(f(x)\)的二次差值多項式。
解答:
構造插值函式:\(P_2(x)=a_0+a_1x+a_2x^2\),這時代入\(\{x\}_{i=0}^2\),得到如下的3元線性方程組:
\[\begin{cases} P_2(x_0)=a_0+a_1x_0+a_2x_{0}^2=0\\\\ P_2(x_1)=a_0+a_1x_1+a_2x_{1}^2=-3\\\\ P_2(x_2)=a_0+a_1x_2+a_2x_{2}^2=4 \end{cases} \Longrightarrow \begin{cases} P_2(1)=a_0+a_1+a_2=0\\\\ P_2(-1)=a_0-a_1+a_2=-3\\\\ P_2(2)=a_0+2a_1+4a_2=4 \end{cases} \]解得:
\[\begin{cases} a_0=-\ \frac{7}{3}\\\\ a_1=\quad\frac{3}{2}\\\\ a_2=\quad\frac{5}{6} \end{cases} \]所以最後得出插值函式:\(P_2(x)=-\frac{7}{3}+\frac{3}{2}x+\frac{5}{6}x^2\)。
2、拉格朗日插值法
(Ⅰ)解題思路
\[L_n(x)=\sum_{i=0}^n{f(x_i)\times\frac{(x-x_0)…(x-x_{j-1})(x-x_{j+1})…(x-x_n)}{(x_j-x_0)…(x_j-x_{j-1})(x_j-x_{j+1})…(x_j-x_n)}} \]\[R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\times\omega_{n+1}(x),\xi\in(a,b) \]所以線性插值的函式和誤差估計為:
\[L_1(x)={f(x_0)\times\frac{(x-x_1)}{(x_0-x_1)}+f(x_1)\times\frac{(x-x_0)}{(x_1-x_0)}} \]\[R_1(x)=\frac{f^{(2)}(\xi)}{2}\times(x-x_0)(x-x_1),\xi\in(x_0,x_1) \]二次插值的函式和誤差估計為:
\[L_2(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}\times f(x_0)+\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}\times f(x_1)+\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}\times f(x_2) \]\[R_2(x)=\frac{1}{3!}f^{(3)}(\xi)(x-x_{0})(x-x_{1})(x-x_{2}) \]有上述的誤差分析可以看到,\(n\)階拉格朗日插值法對\(n\)階及其以下的\(f(x)\)都準確成立,所以精度為\(n\)。
(Ⅱ)例題
例題1(參考《數值分析 第五版》\(P_{48} T_1\))\(\Longrightarrow\) 解出插值函式
題目: 當\(x=1,-1,2\)時,\(f(x)=0,-3,4\),用拉格朗日插值基底求\(f(x)\)的二次差值多項式。
解答:
\[\begin{cases} &l_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}=-\ \frac{1}{2}(x+1)(x-2)\\\\ &l_1(x)=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}=\quad\frac{1}{6}(x-1)(x-2)\\\\ &l_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}=\quad\frac{1}{3}(x-1)(x+1) \end{cases} \]所以解得\(L_2(x)=-\frac{1}{2}(x+1)(x-2)+\frac{1}{6}(x-1)(x-2)+\frac{1}{3}(x-1)(x+1)\)。
例題2(參考《數值分析 第五版》\(P_{48} T_4\))\(\Longrightarrow\) 拉格朗日插值的精度
題目: 設\(x_j\)為互異節點(\(j=0,1,…,n\)),求證:\(\sum_{j=0}^{n}{[x_j^k\times l(x_j)]}\equiv x^k\),\(k=0,1…n\)。
解答:
根據拉格朗日插值函式模型,我們不妨設\(f(x)=x^k\);也就是說我們證的是\(L_n(x)\equiv f(x)\),即證\(R_n(x)\equiv0\);根據拉格朗日插值的誤差估計,我們不難得出\(R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\times\omega_{(n+1)}(x)\);這個時候考察\(f^{(n+1)}(\xi)\),由於\(f(x)=x^k\)為\(k\)階多項式,並且\(k\le n\),所以\(f^{(n+1)}(\xi)\equiv0\),故而\(R_n(x)\equiv0\),證畢;
總結: 此題可以得出結論——\(n\)階拉格朗日插值多項式的精度為\(n\),也就是對\(n\)階以內的函式都準確成立;
例題3(參考《數值分析 第五版》\(P_{48} T_5\))\(\Longrightarrow\) 拉格朗日插值中線性插值的誤差分析
題目: 設\(f(x)\in C^2[a,b]\)且\(f(a)=f(b)=0\),求證:\(\underset{a\le x\le b}{max}|f(x)|\le\frac{1}{8}(b-a)^2\times\underset{a\le x\le b}{max}|f^{(2)}(x)|\)。
解答:
很顯然,只給了兩個點,正好兩個插值條件,所以我們使用線性插值方法,構造線性插值函式:
\[L_1(x)={f(x_0)\times\frac{(x-x_1)}{(x_0-x_1)}+f(x_1)\times\frac{(x-x_0)}{(x_1-x_0)}}=0 \]所以\(f(x)=L_1(x)+R_1(x)=R_1(x)=\frac{f^{(2)}(\xi)}{2}\times(x-a)(x-b),\xi\in(a,b)\);所以考慮到\((x-a)(x-b)\)在\((a,b)\)上的最大值在\(x=\frac{a+b}{2}\)處,值為\((\frac{b-a}{2})^2\),所以即可得出結論:\(\underset{a\le x\le b}{max}|f(x)|\le\frac{1}{8}(b-a)^2\times\underset{a\le x\le b}{max}|f^{(2)}(x)|\),證畢。
總結: 把握線性插值的誤差估計,\(\omega_{n+1}(x)\)在中點出去的最大值。順便掌握\(n\)階拉格朗日插值的誤差。
例題4(參考《數值分析 第五版》\(P_{48} T_6\))\(\Longrightarrow\) 拉格朗日插值中二次插值的誤差分析
題目: 在\(-4\le x\le4\)給出\(f(x)=e^x\)的等距節點函式表,若用二次差值求\(e^x\)的近似值,要使截斷誤差不超過\(10^{-6}\),求出函式表的步長\(h\)應取多少?
解答:
\[R_h(x)=\frac{1}{3!}f^{(3)}(\xi)(x-x_{i-1})(x-x_{i})(x-x_{i+1}) \]令\(x=x_i+th\),則\(x_{i-1},x_i,x_{i+1}\)分別對應\(t=-1,0,1\),故而有:
\[(x-x_{i-1})(x-x_{i})(x-x_{i+1})=(t-1)t(t+1)h^3 \]要求是截斷誤差不超過\(10^{-6}\),所以只要誤差限不超過\(10^{-6}\)即可,而誤差限就是\(|R_h(x)|\)的最大值。設函式:\(\psi(t)=(t-1)t(t+1)\),現在分別考慮\(f^{(3)}(\xi)\)和\(\psi(t)\)的最大值。
對\(\psi(t)\)求一階導可得:\(\psi^{'}(t)=3t^2-1\),所以有\(|\psi(t)|\)在\([0,1]\)上的最大值為\(|\psi(\frac{1}{\sqrt{3}})|=\frac{2\sqrt{3}}{9}\);
\(\underset{-4\le x\le4}{max}|f^{(3)}(x)|=\underset{-4\le x\le4}{max}|e^x|=|e^4|=54.60\);
所以得出\(\underset{-4\le x\le4}{max}|R_h(x)|=\frac{\sqrt{3}}{27}\cdot54.60\times h^3\le10^{-6}\Longrightarrow h\le0.0066\);
總結: 看似有步長,為分段插值,其實本質上就是分析拉格朗日插值法的誤差,熟練掌握拉格朗日插值法的誤差估計:\(R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)}\times\omega_{n+1}(x)\),通過代入給出的\(f(x)\)的表示式來判斷\(f^{(n+1)}(\xi)\)的最大值,並結合\(\omega_{n+1}(x)\)的最大值(此處一般都是整一個步長\(h=\underset{k}{max}\ h_k\),然後將\(x_i\)和\(x\)替換掉,構造成一個\(t\)的函式),從而確定出\(n\)階拉格朗日插值多項式的誤差限。
3、牛頓插值
(Ⅰ)解題思路
牛頓插值有兩種表達形式:
均差形式的牛頓插值
和差分形式的牛頓插值
。第一種:均差形式的牛頓插值
\[\begin{equation}\begin{aligned}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)+...+f[x_0, x_1, ..., x_n]·(x-x_0)(x-x_1)...(x-x_{n-1})\end{aligned}\end{equation} \]\[R_n(x) = f[x, x_0, x_1, ..., x_n]·\omega_{n+1}(x) \]只有各階的均差我們是不知道的,但是我們可以通過構造均差表來求得。
並且值得注意的一點是:在高階均差中的同階均差相差不多,可以近似相等,這可以簡化求誤差限;同樣也正是因為這個原因,我們在求誤差限的時候通常是將\(f[x, x_0, x_1, ..., x_n]\)換成\(f[x_0, x_1, ..., x_n,x_{n+1}]\),也就是說我們需要\(n+2\)個點才能估計出
均差形式
的誤差限。
第二種:差分形式的牛頓插值(牛頓前插公式)
\[P_n(x_0+th) = f_0+t\Delta f_0+\frac{t(t-1)}{2!}\Delta^2f_0+…+\frac{t(t-1)…(t-n+1)}{n!}\Delta^nf_0 \]\[R_n(x) = \frac{t(t-1)…(t-n+1)}{(n+1)!}h^{n+1}f^{(n+1)}(\xi),其中\xi \in [x_0, x_n] \]同樣的,我們可以通過構造差分表來獲取\(x_0\)點處的各階差分。
與
均差形式
的牛頓插值不同,差分形式
的牛頓插值在解算誤差限的時候只需要\(n+1\)個點。不過我們依然可以看到,差分形式是由均差形式通過“均差-差分”(\(f[x_k, ..., x_{k+m}] = \frac{1}{m}\frac{1}{h^m}\Delta^mf_k,其中m=1,2,...,n\))以及“差分-導數”(\(\Delta^nf_k = h^nf^{(n)}(\xi)\),其中\(\xi \in [x_k, x_{k+n}]\))這兩層關係推出來的,也就是說將\(f[x, x_0, x_1, ..., x_n]\)換成了\(f^{(n+1)}(\xi)\),這樣就要求\(f(x)\)的\(n+1\)階導數。
總結: 當插值函式是一個複雜函式(這裡的複雜指的是原函式的導數不容易得出)時,如:\(f(x)=\sqrt{\frac{\cos x+2\sin x}{2\cos x-\sin x}}\),想求\(n+1\)階導數幾乎是不存在的(除非你是徐半仙或者聶星人或者許外掛),這是我們就只能通過構造
均差表
來解算其誤差限;當插值函式是一個簡單函式時,如\(f(x)=\cos x\),這時求\(n+1\)階導數趕趕單單沒有\(len\)何挑戰,所以就可以構造差分表
來解算誤差限。一般地,題目中應該會給我們\(n+2\)個點來研究\(n\)次的牛頓插值。但是如果題目中的原函式是複雜函式,並且只給了\(n+1\)個點,這個時候我們不用慌,還有\(PlanB\)——題目肯定是要我們求\(f(m)\)的近似值,其中\(m\in(x_0,x_n)\),這個時候就相當於給了我們第\(n+2\)個點:\(m\),我們就能夠通過\(f(m)\)的值(代入表示式中獲得的近似值)來求得\(f[x, x_0, x_1, ..., x_n]\)。
(Ⅱ)例題
例題1(參考《數值分析 第五版》\(P_{32} 例題4\))\(\Longrightarrow\)
均差形式的牛頓插值
及其誤差估計題目: 給出\(f(x)\)的函式表求4次牛頓插值多項式,並由此計算\(f(0.596)\)的近似值及其誤差限。
解答:
首先根據給定函式表構造《函式-均差表》:
\(x\) \(f(x)\) \(\Delta f^{(1)}\) \(\Delta f^{(2)}\) \(\Delta f^{(3)}\) \(\Delta f^{(4)}\) \(\Delta f^{(5)}\) \(0.40\) \(\underline{0.41075}\) \(0.55\) \(0.57815\) \(\underline{1.11600}\) \(0.65\) \(0.69675\) \(1.18600\) \(\underline{0.28000}\) \(0.80\) \(0.88811\) \(1.27573\) \(0.35893\) \(\underline{0.19733}\) \(0.90\) \(1.02652\) \(1.38410\) \(0.43348\) \(0.21300\) \(\underline{0.03134}\) \(1.05\) \(1.25382\) \(1.51533\) \(0.52493\) \(0.22863\) \(0.03126\) \(-\ 0.00012\) \[\begin{equation}\begin{aligned}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)+...+f[x_0, x_1, ..., x_n]·(x-x_0)(x-x_1)...(x-x_{n-1})\end{aligned}\end{equation} \]所以我們可以得到:
\[\begin{equation}\begin{aligned} P_4(x) &= \quad0.41075+1.11600\cdot(x-0.40)+0.28000\cdot(x-0.40)(x-0.55)\\&+\quad0.19733\cdot(x-0.40)(x-0.55)(x-0.65)\\ &+\quad 0.03134\cdot(x-0.40)(x-0.55)(x-0.65)(x-0.80) \end{aligned}\end{equation} \]所以有:\(f(0.596)\approx P_4(0.596)=0.63192\ 3237\),另外我們有截斷誤差為:
\[|R_4(x)| = |f[x, x_0, x_1, ..., x_4]·\omega_{5}(0.596)|\approx |f[x_0, x_1, ..., x_5]·\omega_{5}(0.596)|\le3.63\times10^{-9} \]\(PlanB\):
以下內容瞭解即可,考試時一般用不著!!!
大家不難發現,我這裡保留了小數點後15位,那是不是保留10位或者更小的有效數字就為0了呢?我們不妨來看一下保留5位和7位的情況:
保留小數點後5位
:
保留小數點後7位
:大家不難發現,結果並不是我們想象的那樣簡單,有效位數對誤差影響是非常非常大的,正所謂“差之毫釐謬以千里”,但是我們不用慌,因為如圖所示(天機就是拿來洩漏的?):
所以大家就按部就班即可,題目還是很嚴謹的!!!
例題2(參考《數值分析 第五版》\(P_{34} 例題5\))\(\Longrightarrow\)
差分形式的牛頓插值
及其誤差估計題目: 給出\(f(x)=\cos x\)在\(x_k=kh\)(k=0,1,…,5\(、\)h=0.1\()處的函式值,試用4次牛頓前插公式計算\)\(f(0.048)\)的近似值並估計誤差。
解答:
首先構造
差分表
,並用牛頓前插公式:由\(x=x_0+th\Longrightarrow t=\frac{x-x_0}{h}=0.48\);所以有
\[\begin{aligned}\cos(0.048)\approx P_4(0.048)&=1.00000+0.48\times(-0.00500)+\frac{0.48\cdot(0.48-1)}{2!}\times(-0.00993)\\&+\frac{0.48\cdot(0.48-1)\cdot(0.48-2)}{3!}\times(0.00013)\\&+\frac{0.48\cdot(0.48-1)\cdot(0.48-2)\cdot(0.48-3)}{4!}\times(0.00012)\\&=0.99885\end{aligned} \]其誤差限函式為:
\[|R_4(x)| = \frac{t(t-1)(t-2)(t-3)(t-4)}{5!}h^{5}f^{(5)}(\xi),其中\xi \in [x_0, x_n] \]所以有:
\[|R_4(0.0480)| \le \frac{0.48(0.48-1)(0.48-2)(0.48-3)(0.48-4)}{5!}(0.1)^{5}\times|\sin(0.5)|\le1.3433\times10^{-7} \]
總結:
均差表
可以不用原函式求\(n+1\)階導數,但是它的缺點就是難算,而且估計誤差的時候需要\(n+2\)個點;
差分表
的製作過程比均差表簡單得多,而且可以不用第\(n+2\)個點就能估計出誤差限,前提是原函式的導數必須是能求出來的;
4、埃爾米特插值
(Ⅰ)整理思緒:埃爾米特插值與牛頓插值的聯絡
這也就是說埃爾米特插值就是牛頓插值的一種特殊情況,兩點三次埃爾米特插值和\(n\)點\(n\)次埃爾米特插值是埃爾米特插值的兩種常用模型;而且一般也就是靠這兩種(除非有人想要?你並讓你?)。
(Ⅱ)解題思路
普通的牛頓插值在此前已經研究完了,現在我們開始研究埃爾米特插值的套路。
(1)套路2(普通的埃爾米特插值): 給出了\(m+1\)個插值條件【含函式值(\(k+1\)個)和導數值(\(n-k\)個)】構造出不超過\(m\)次的埃爾米特插值多項式。【順便提一嘴:書上有說不給一般埃爾米特插值的公式,因為這沒必要】。
由於之前有說“埃爾米特插值就是牛頓插值的特殊情況”,那麼很顯然,這句話的意思就是埃爾米特插值也遵循牛頓插值的套路——套路1。在這裡我們就有了兩套方案:
\(PlanA\): 我親切地稱之為“牛頓插值附身法”(因為和牛頓插值簡直一模一樣)
建構函式表和均差表,重結點就替換為導數,啥一階導、二階導統統安排上(現在感覺十分撓頭沒關係,之後有例子和詳細步驟,所以不用慌張)。
\(PlanB\): 我願稱之為“暴力硬核待定係數法”(真的很暴力,一般也就3點3次埃爾米特插值用)
用所有的點(不包含其他重節點,意思就是隻能每一組重節點中只能有一個入選)構造一個《函式-均差表》,然後寫出插值函式,這個插值函式十年小母?——老??了,一共是分為倆部分:牛頓插值函式和待定係數高階多項式。
牛頓插值函式 依據\(PlanB\)中構造的均差表得到的牛頓插值函式;
待定係數高階多項式 由於不是\(n+1\)個點,所以
牛頓插值函式
必然到不到\(n\)階,這是我們就需要待定係數,並且按照牛頓插值函式構造的規則來填補剩下的高階多項式。如果是\(n\)點\(n\)次埃爾米特插值函式,那麼就直接在\(n-1\)階牛頓插值函式後面利用第\(n\)個點:\(P_n(x)=P_{n-1}(x)+A\times(x-x_0)…(x-x_n)\)。其誤差估計當然就可以用
牛頓插值的誤差估計
了,不過值得注意的是我們用的牛頓前插公式,而且將步長與\((t-i+1)\)進行了合併,重新得到了\((x-x_i)\):\[R_n(x)=\frac{1}{(n+1)!}\cdot f^{(n+1)}(\xi)\times\prod_{i=0}^k(x-x_i)^{j_i} \]其中\(j_i\)表示第\(x_i\)這個點出現的次數,比如如果不是重節點那麼該值就為1。
(2)套路3(兩點三次埃爾米特插值): 有兩個節點,在這兩個節點上,原函式函式值與插值函式函式值相等(\(f(x_i)=P(x_i)\)),並且對應的導數值也相等(\(f^{(1)}(x_i)=P^{(1)}(x_i)\))。直接給出公式:
\[\begin{aligned}H_3(x)=&(1+2\cdot\frac{x-x_k}{x_{k+1}-x_k})(\frac{x-x_{k+1}}{x_k-x_{k+1}})^2\cdot y(x_k)+(1+2\cdot\frac{x-x_{k+1}}{x_k-x_{k+1}})(\frac{x-x_{k}}{x_{k+1}-x_k})^2\cdot y(x_{k+1})\\\\&+({x-x_k})(\frac{x-x_{k+1}}{x_k-x_{k+1}})^2\cdot y^{'}(x_k)+({x-x_{k+1}})(\frac{x-x_{k}}{x_{k+1}-x_{k}})^2\cdot y^{'}(x_{k+1})\end{aligned} \]其誤差估計為:
\[R_3(x)=\frac{f^{(4)}(\xi)}{4!}(x-x_k)^2(x-x_{k+1})^2\qquad\xi\in(x_k,x_{k+1}) \]
(Ⅲ)例題
例題1(參考《數值分析 第五版》\(P_{49} T_{13}\))\(\Longrightarrow\) 套路2(普通的埃爾米特插值)
題目: 求次數小於等於3的多項式\(P_3(x)\),是滿足條件\(P_3(x_0)=f(x_0)\)、\(P_3^{(1)}(x_0)=f^{(1)}(x_0)\)、\(P_3^{(2)}(x_0)=f^{(2)}(x_0)\)、\(P_3(x_1)=f(x_1)\)。
解答:
可以看到這雖然是“兩點三次埃爾米特插值”,但是此非彼,所以初步判定此題為?題;
此題是“普通埃爾米特插值”,所以有兩種解法(突然發現一箭雙鵰):
\(PlanA\): “牛頓插值附身法”
構建《函式-均差表》:
\(x\) \(f(x)\) 一階均差 二階均差 三階均差 \(x_0^{(1)}\) \(f(x_0)^{(1)}\) \(x_0^{(2)}\) \(f(x_0)^{(2)}\) \(f^{(1)}(x_0)^{(1)}\) \(x_0^{(3)}\) \(f(x_0)^{(3)}\) \(f^{(1)}(x_0)^{(2)}\) \(\frac{f^{(2)}(x_0)}{2}\) \(x_1\) \(f(x_1)\) \(f[x_0,x_1]\) \(\frac{f[x_0,x_1]-f^{(1)}(x_0)}{x_1-x_0}\) \(\frac{\frac{f[x_0,x_1]-f^{(1)}(x_0)}{x_1-x_0}-\frac{f^{(2)}(x_0)}{2}}{x_1-x_0}\) 這些東西一般都是已知的,只要帶進去算(反正我是不建議找規律帶公式的),還是一個一個算吧,這公式忒難記了。
然後直接用牛頓插值就好了,這裡我就不寫了,沒多大個意義。
直接給出答案:
\[P_3(x)=f(x_0)+f^{'}(x_0)\times(x-x_0)+\frac{1}{2}f^{''}(x_0)\times(x-x_0)^2+[\frac{f[x_0,x_1]-f^{'}(x_0)}{x_1-x_0}-\frac{1}{2}f^{''}(x_0)]\times\frac{(x-x_0)^3}{x_1-x_0} \]\(PlanB\): “暴力硬核待定係數法”
構造《函式-均差表》:
\(x\) \(f(x)\) 一階均差 \(x_0\) \(f(x_0)\) \(x_1\) \(f(x_1)\) \(f[x_0,x_1]\) 然後建構函式:
\[P_3(x)=f(x_0)+f[x_0,x_1]\cdot(x-x_0)+A\times(x-x_0)(x-x_1)+B\times(x-x_0)^2(x-x_1) \]\[P_3^{(1)}(x)=f[x_0,x_1]+A\times[2x-(x_0+x_1)]+B\times[(x-x_0)^2+2(x-x_0)(x-x_1)] \]\[P_3^{(2)}(x)=2A+B\times[2(x-x_0)+2\cdot[2x-(x_0+x_1)]] \]將\(P_3^{(1)}(x_0)=f^{(1)}(x_0)\)、\(P_3^{(2)}(x_0)=f^{(2)}(x_0)\)分別代入可得:
\[P_3^{(1)}(x_0)=1+A\times(x_0-x_1)=f^{(1)}(x_0) \]\[P_3^{(2)}(x_0)=2A+B\times[2\cdot(x_0-x_1)]=f^{(2)}(x_0) \]解得:
\[A=\frac{f^{(1)}(x_0)-f[x_0,x_1]}{x_0-x_1},\qquad B=\frac{f^{(2)}(x_0)\times(x_0-x_1)-2[f^{(1)}(x_0)-f[x_0,x_1]]}{2(x_0-x_1)^2} \]代入函式,可得:
\[\begin{aligned}P_3(x)&=f(x_0)+f[x_0,x_1]\cdot(x-x_0)\\\\&+\frac{f^{(1)}(x_0)-f[x_0,x_1]}{x_0-x_1}\times(x-x_0)(x-x_1)\\\\&+\frac{f^{(2)}(x_0)\times(x_0-x_1)-2[f^{(1)}(x_0)-f[x_0,x_1]]}{2(x_0-x_1)^2}\times(x-x_0)^2(x-x_1)\end{aligned} \]不妨整理一下(將\(x-x_1\Longrightarrow x-x_0+x_0-x_1\)),易得(放?,難得一批):
\[P_3(x)=f(x_0)+f^{'}(x_0)\times(x-x_0)+\frac{1}{2}f^{''}(x_0)\times(x-x_0)^2+[\frac{f[x_0,x_1]-f^{'}(x_0)}{x_1-x_0}-\frac{1}{2}f^{''}(x_0)]\times\frac{(x-x_0)^3}{x_1-x_0} \]至此證畢,所以……大家知道為啥我願稱之為“暴力硬核待定係數法”了嘛?我去梳梳頭皮了先。
\(PlanC\): 沒啥好名兒了,就暫定為“牛頓待定係數法”吧
驚不驚喜,意不意外,沒想到我還有第三種方法叭()。這是針對於僅僅不知道最高階的均差(或者說不想直接從表中求得)並且該點不是重節點。之所以說一般為最後一項,是因為如果前面不知道後面的均差一般也無從得知,這是一個一環扣一環的過程。
首先我們依據\(PlanB\)中構造的《函式-均差表》,所以有:
\(x\) \(f(x)\) 一階均差 二階均差 三階均差 \(x_0^{(1)}\) \(f(x_0)^{(1)}\) \(x_0^{(2)}\) \(f(x_0)^{(2)}\) \(f^{(1)}(x_0)^{(1)}\) \(x_0^{(3)}\) \(f(x_0)^{(3)}\) \(f^{(1)}(x_0)^{(2)}\) \(\frac{f^{(2)}(x_0)}{2}\) \(x_1\) \(f(x_1)\) \(f[x_0,x_1]\) \(f[x_0,x_0,x_1]\) \(f[x_0,x_0,x_0,x_1]\) 然後發現只有第三節均差我們是不知道的,由於在牛頓插值的時候其實最後一個點是用不上的,但是插值函式很顯然是通過這個點的,所以先構造插值函式(設\(f[x_0,x_0,x_0,x_1]=A\)):
\[P_3(x)=f(x_0)+f^{'}(x_0)\times(x-x_0)+\frac{1}{2}f^{''}(x_0)\times(x-x_0)^2+A\times{(x-x_0)^3} \]再將最後一個點代入函式,解得:
\[A=[\frac{f[x_0,x_1]-f^{'}(x_0)}{x_1-x_0}-\frac{1}{2}f^{''}(x_0)]\times\frac{1}{x_1-x_0} \]所以最後還是可以得到插值函式為:
\[P_3(x)=f(x_0)+f^{'}(x_0)\times(x-x_0)+\frac{1}{2}f^{''}(x_0)\times(x-x_0)^2+[\frac{f[x_0,x_1]-f^{'}(x_0)}{x_1-x_0}-\frac{1}{2}f^{''}(x_0)]\times\frac{(x-x_0)^3}{x_1-x_0} \]總結: 像套路2(普通埃爾米特插值函式)一共有三種解法
①、最樸素的解法(\(PlanA\):牛頓插值附身法): 將所有的點(包含重節點)都放入《函式-均差表》中,用牛頓插值法的思想解出函式的表示式。優點——一步一步無腦代入、缺點——繁瑣;
②、最暴力的解法(\(PlanB\):暴力硬核待定係數法): 將所有點(不包含其他重節點)放入《函式-均差表》中,先用牛頓插值法寫出前半部分,然後再用待定係數法構造出後半部分的高階多項式。最後將導數值的差之條件代入,並解出各個待定的係數。優點——由於插值的時候不考慮重節點,所以對計算機更加友好、缺點——常識告訴我們暴力的方法只有計算機能勝任;
③、當樸素和暴力擦除愛情的火花時(\(PlanC\):牛頓待定係數法): 當滿足一下兩個條件時才能觸發:
只有一項均差不知道
&&這一項對應的節點不能是重節點
。這種情況及其罕見,除非有人刻意安排(就像愛情一樣),所以大家一定要長點兒心,不要和這玩意兒失之交臂。通過待定係數構造出插值函式之後,將所求點代入方程接觸係數。
例題2(參考《數值分析 第五版》\(P_{49} T_{14}\))\(\Longrightarrow\) 套路3(兩點三次埃爾米特插值)
題目: 求小於等於3的多項式\(P_3(x)\)使其滿足條件\(P_3(0)=0\)、\(P_3^{'}(0)=1\)、\(P_3(1)=1\)、\(P_3^{'}(1)=2\)。
解答:
\[\begin{aligned}H_3(x)=&(1+2\cdot\frac{x-x_k}{x_{k+1}-x_k})(\frac{x-x_{k+1}}{x_k-x_{k+1}})^2\cdot y(x_k)+(1+2\cdot\frac{x-x_{k+1}}{x_k-x_{k+1}})(\frac{x-x_{k}}{x_{k+1}-x_k})^2\cdot y(x_{k+1})\\\\&+({x-x_k})(\frac{x-x_{k+1}}{x_k-x_{k+1}})^2\cdot y^{'}(x_k)+({x-x_{k+1}})(\frac{x-x_{k}}{x_{k+1}-x_{k}})^2\cdot y^{'}(x_{k+1})\end{aligned} \]直接代入,無腦求解:
\[\begin{aligned}P_3(x)&=(1+2\cdot\frac{x-0}{1-0})(\frac{x-1}{0-1})^2\cdot 0+(1+2\cdot\frac{x-1}{0-1})(\frac{x-0}{1-0})^2\cdot 1\\\\&+({x-0})(\frac{x-1}{0-1})^2\cdot 1+({x-1})(\frac{x-0}{1-0})^2\cdot 2\\\\&=x^2(3-2x)+x(x-1)^2+2x(x-1)=x^3-x^2+x\end{aligned} \]總結: 像這種題一般都是無腦題,只要翻翻書就知道答案了(但是知道和算對永遠是兩碼事);
例題3(參考《數值分析 第五版》\(P_{49} T_{16}\))\(\Longrightarrow\) 套路3(兩點三次埃爾米特插值)— 埃爾米特與牛頓
題目: 求一個不高於4次的多項式\(P_4(x)\),使它滿足\(P_4(0)=P_4^{'}(0)=0\)、\(P_4(1)=P_4^{'}(1)=1\)、\(P_4(2)=1\)。
解答: 重點—埃爾米特插值是一種特殊的牛頓插值
所以我們可以依據條件:\(P_4(0)=P_4^{'}(0)=0\)和\(P_4(1)=P_4^{'}(1)=1\),可以無腦得到兩點三次的埃爾米特插值多項式\(H_3(x)=x^2(2-x)\);又已知\(P_4(x)\)不高於4次,所以根據牛頓插值的改正思想建構函式:
\[P_4(x)=H_3(x)+A(x-0)^2(x-1)^2 \]最後將最後一個點(想到套路2中的\(PlanC\))代入式中解得\(A=\frac{1}{4}\),故而得出插值函式為:
\[P_4(x)=x^2(2-x)+\frac{1}{4}x^2(x-1)^2=\frac{1}{4}x^2(x-3)^2 \]總結: 埃爾米特插值是一種特殊的牛頓插值,可以運用改正的思想,並且巧妙的結合套路2中的\(PlanC\),把握機會。
例題3(參考《數值分析 第五版》\(P_{49} T_{15}\))\(\Longrightarrow\) 套路3(兩點三次埃爾米特插值)— 誤差分析
題目: 證明兩點三次埃爾米特的餘項為\(R_3(x)=\frac{1}{4!}\cdot f^{(4)}(\xi)\times(x-x_k)^2(x-x_{k+1})^2,\xi\in(x_k,x_{k+1})\)。
解答: 讓你記你就記著,你是十萬個為什麼蠻?
總結: 其實這個餘項可以從牛頓前插公式餘項中瞥見端倪,給出牛頓插值餘項:\(R_n(x)=\frac{1}{(n+1)!}\cdot f^{(n+1)}(\xi)\times\prod_{i=0}^k(x-x_i)^{j_i}\),很顯然\(n=3,j_1=j_2=2\),所以就有了兩點三次埃爾米特插值的誤差估計。
5、分段低次插值
(Ⅰ)解題思路: 掌握前面4種插值方法。
(Ⅱ)例題:
例題1(參考《數值分析 第五版》\(P_{49} T_{18}\))分段線性插值
主要掌握一點:
\[I_h(x)=\sum_{i=0}^n(f(x_i)\cdot l_i(x)) \]而其中有:(\(x=x_i\)分別對應了兩段插值函式)
\[l_i(x)=\begin{cases}&\frac{x-x_{i-1}}{x_i-x_{i-1}}=\frac{1}{h}\times(x-x_{i-1}),x_{i-1}\le x\lt x_i\\\\&\frac{x-x_{i+1}}{x_i-x_{i+1}}=\frac{1}{h}\times(x_{i+1}-x),x_{i}\le x\lt x_{i+1}\\\\&0,其他\end{cases} \]誤差分析為:
\[R_1(x)=\frac{1}{2}\cdot f^{''}(\xi)\times(x-x_i)(x-x_{i+1}) \]所以誤差限為:
\[\underset{a\le x\le b}{max}|R_{(1,h)}(x)|=\frac{1}{2}\cdot\underset{a\le x\le b}{max}{|f^{''}(x)|}\times(\frac{x_{i+1}-x_i}{2})^2=\frac{1}{8}\cdot\underset{a\le x\le b}{max}{|f^{''}(x)|}\times h^2 \]
例題2(參考《數值分析 第五版》\(P_{49} T_{19}\))兩點三次埃爾米特插值
與上述同理,構造分段插值函式:
\[I_h(x)=\sum_{i=0}^n[\alpha_i(x)f(x_i)+\beta_i(x)f^{'}(x_i)] \]其中有:
\[\alpha_i(x)=\begin{cases}&(1+2\cdot\frac{x-x_{i}}{x_{i-1}-x_{i}})(\frac{x-x_{i-1}}{x_{i}-x_{i-1}})^2,x_{i-1}\le x\lt x_i\\\\&(1+2\cdot\frac{x-x_{i}}{x_{i+1}-x_i})(\frac{x-x_{i+1}}{x_{i}-x_{i+1}})^2,x_{i}\le x\lt x_{i+1}\end{cases},\qquad\beta_i(x)=\begin{cases}({x-x_i})(\frac{x-x_{i-1}}{x_i-x_{i-1}})^2,x_{i-1}\le x\lt x_i\\\\({x-x_{i}})(\frac{x-x_{i+1}}{x_{i}-x_{i+1}})^2,x_{i}\le x\lt x_{i+1}\end{cases} \]誤差分析:
\[\underset{a\le x\le b}{max}|R_{(3,h)}(x)|\le\frac{h^4}{4!\times4^{^2}}\times\underset{a\le x\le b}{max}|f^{(4)}(\xi)| \]
二、均差與差分
(Ⅰ)均差的性質
● 均差性質(1): \(k\)階均差可表示為函式值\(f(x_0)\)、\(f(x_1)\)、……\(f(x_k)\)。
\[f[x_0,x_1,……x_k]=\sum_{j=0}^k\frac{f(x_j)}{(x_j-x_0)…(x_j-x_{j-1})(x_j-x_{j+1})…(x_j-x_k)} \]
● **均差性質(2): **第\(k\)階均差可以用如下兩個\(k-1\)階均差表示(均差表的基礎)
\[f[x_0,x_1,……x_k]=\frac{f[x_1,……x_k]-f[x_0,x_1,……x_{k-1}]}{x_k-x_0} \]
● 均差性質(3): \(n\)階均差與導數的關係(分析誤差限和牛頓插值函式的精度)
\[f[x_0,x_1,……x_n]=\frac{f^{(n)}(\xi)}{n!},\xi\in[a,b] \]從上述式子中我們就可以看出,牛頓插值的餘項為\(f[x,x_0,x_1,……x_n]=\frac{f^{(n+1)}(\xi)}{{n+1}!}\),故精度即為\(n\)。
通常在做題的過程中,性質(1)和性質(3)用得多一些。
(Ⅱ)差分、導數和均差的三角戀
(1)差分與均差的關係:
\[f[x_k,……,x_{k+m}]=\frac{1}{m}\frac{1}{h^m}\Delta^mf_k,其中m=1,2,...,n \]
(2)差分與導數的關係:
\[\Delta^nf_k = h^nf^{(n)}(\xi),其中\xi \in [x_k, x_{k+n}] \]
(3)\(n\)階均差與導數的關係:
\[f[x_0,x_1,……x_n]=\frac{f^{(n)}(\xi)}{n!},\xi\in[a,b] \]
(Ⅲ)例題
例題1(參考《數值分析 第五版》\(P_{48} T_{8}\))均差與導數的關係\(\Longrightarrow\)牛頓插值函式的精度
題目: \(f(x)=x^7+x^4+3x+1\),求\(f[2^0,2^1,…2^7]\)及\(f[2^0,2^1,…2^8]\)。
解答:
根據\(n\)階均差與導數的關係:\(f[x_0,x_1,……x_n]=\frac{f^{(n)}(\xi)}{n!}\),我們不難得出:
\[f[x_0,x_1,……x_7]=\frac{f^{(7)}(\xi)}{7!} \qquad \xi\in[2^0,2^7]\\f[x_0,x_1,……x_8]=\frac{f^{(8)}(\eta)}{8!} \qquad \eta\in[2^0,2^8] \]而\(f(x)\)的最高次數為7,所以可得:
\[f[x_0,x_1,……x_7]=\frac{7!}{7!}=1\\f[x_0,x_1,……x_8]=\frac{0}{7!}=0\\ \]
例題2(參考《數值分析 第五版》\(P_{49} T_{12}\))均差與導數的關係\(\Longrightarrow\)牛頓插值函式的精度
題目: \(f(x)=a_0+a_1x+…+a_{n-1}x^{n-1}+a^nx^n\),有\(n\)個不同實根\(x_1,x_2,…,x_n\),證明:
\[\sum_{j=1}^n\frac{x_j^k}{f^{'}(x_j)}=\begin{cases}0,\qquad 0\le k\le n-2;\\\\a_n^{-1},\quad k=n-1;\end{cases} \]解答:
記\(g(x)=x^k\),\(\omega_n(x)=\prod_{i=1}^n(x-x_i)\),則有:
\[f(x)=a_n\cdot\omega_n(x),\qquad f^{'}(x_j)=a_n\omega_n^{'}(x_j) \]由均差的性質(1)可得:\(g[x_1,…x_k]=\sum_{j=0}^k\frac{f(x_j)}{\omega_k^{'}(x_j)}\),又有均差與導數的關係:\(g[x_1,……x_k]=\frac{g^{(k-1)}(\xi)}{{(k-1)}!}\)。
所以有:
\[\sum_{j=1}^n\frac{x_j^k}{f^{'}(x_j)}=\sum_{j=1}^n\frac{x_j^k}{a_n\omega_n^{'}(x_j)}=\frac{1}{a_n}\cdot\sum_{j=1}^n\frac{x_j^k}{\omega_n^{'}(x_j)}=\frac{1}{a_n}\cdot g[x_1,……x_n]=\frac{1}{a_n}\cdot\frac{g^{(n-1)}(\xi)}{{(n-1)}!} \]所以當\(0\le k\le n-2\)時,\(g(x)\)的最高次數為\(k\),對\(g(x)\)求\(n-1\)階導之後顯然為0;
當\(k=n-1\),\(g(x)=x^{n-1}\),所以對\(g(x)\)求\(n-1\)階導之後為\((n-1)!\),所以得出最後的值為\(a_n^{-1}\);
證畢。