最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【數(shù)學(xué)】拉格朗日插值法&牛頓插值法

2023-03-06 06:31 作者:景叢  | 我要投稿

一. 介紹

經(jīng)常在某乎看見此類問題:“數(shù)字找規(guī)律題,數(shù)字1、2、4、6、8、( ),請問括號內(nèi)應(yīng)填幾?”。我覺得這個問題很2B,不知道是哪個傻叉250問的。

那我在括號里隨手填個250,對不對?


對!沒毛病!


原因:假設(shè)整個數(shù)列通項符合某個?f(x)?,其中?x?從0開始計數(shù),代入第0-5項可以找出這個通項公式為:

f(x)%3D%5Cfrac%7B239%7D%7B120%7D%20x%5E5-%5Cfrac%7B159%7D%7B8%7D%20x%5E4%2B%5Cfrac%7B1663%7D%7B24%7D%20x%5E3-%5Cfrac%7B785%7D%7B8%7D%20x%5E2%2B%5Cfrac%7B2863%7D%7B60%7D%20x%2B1

不講武德


如果繼續(xù)填下一個:1、2、4、6、8、250、( )

嘿,那我還可以填:114514

原因:

f(x)%3D%5Cfrac%7B113063%7D%7B720%7D%20x%5E6-%0A%5Cfrac%7B188279%7D%7B80%7Dx%5E5%2B%20%5Cfrac%7B1919209%7D%7B114%7D%20x%5E4%2B%0A%5Cfrac%7B1692619%7D%7B48%7D%20x%5E3-%5Cfrac%7B7727153%7D%7B180%7D%20x%5E2%0A-%5Cfrac%7B1127767%7D%7B60%7D%20x%2B1

114514


這種不講武德的找規(guī)律填數(shù)字方法叫“多項式插值”。理論上給定n+1個x值不同的點,都可以找到一個對應(yīng)的n次多項式,它可以通過所有這些點。

比如上面的找規(guī)律問題,我把它轉(zhuǎn)換成了兩個插值問題:求過點(0,1)、(1,2)、(2,4)、(3,6)、(4,8)、(5,250) 的5次多項式,以及求過點(0,1)、(1,2)、(2,4)、(3,6)、(4,8)、(5,250)、(6,114514) 的6次多項式。


本文將介紹兩種通過已知點求多項式的方法。



二.多項式唯一

首先有個結(jié)論要了解:有n+1個點(x_%7B0%7D%2Cy_%7B0%7D)%E3%80%81(x_%7B1%7D%2Cy_%7B1%7D)%E3%80%81(x_%7B2%7D%2Cy_%7B2%7D)%E3%80%81...%E3%80%81(x_%7Bn%7D%2Cy_%7Bn%7D),他們的x值各不相同。那么過所有這些點的n次多項式存在且唯一。


證明過程

左側(cè)的矩陣通常叫作范德蒙矩陣(Matrice de Vandermonde),它的行列式不為零(因為xi各不相同),這也就證明了唯一性定理:存在唯一的一個插值多項式。

所以對于同一系列的點,用拉格朗日插值法和牛頓插值法得到的多項式完全一致。



三. 拉格朗日插值法

先說插值法。插值法是做什么用的?插值法是通過已知點,求過這些點的未知函數(shù)的數(shù)學(xué)方法。

所以我們輸入的,是一堆點,也就是一堆x一堆y。

我們想要得到的,是一個函數(shù),這個函數(shù)能完美的通過一堆x這一堆y

那你要怎么解決這個問題呢?說白了很簡單,就是一個開開關(guān)的問題。

這就是拉格朗日插值法的想法。

假設(shè)有三個點%EF%BC%88x_%7B1%7D%20%2Cy_%7B1%7D%EF%BC%89%E3%80%81%EF%BC%88x_%7B2%7D%20%2Cy_%7B2%7D%EF%BC%89%E3%80%81%EF%BC%88x_%7B3%7D%20%2Cy_%7B3%7D%EF%BC%89,可以通過“開關(guān)”的方式構(gòu)造通過這三個點的二次函數(shù)P(x):

P(x)%3D%E5%BC%80%E5%85%B31%C3%97y_%7B1%7D%20%2B%E5%BC%80%E5%85%B32%C3%97y_%7B2%7D%20%2B%E5%BC%80%E5%85%B31%C3%97y_%7B3%7D%20


這個三個開關(guān)有什么性質(zhì)呢?它們的值只能是0或1。

????1. 將x1帶入P(x),開關(guān)1的值為1,開關(guān)2和開關(guān)3的值為0。

????????P(x_%7B1%7D%20)%3D1%C3%97y_%7B1%7D%20%2B0%C3%97y_%7B1%7D%2B0%C3%97y_%7B3%7D%3Dy_%7B1%7D?這樣就保證P(x)了過第一個點。

????2.?將x2帶入P(x),開關(guān)2的值為1,開關(guān)1和開關(guān)3的值為0。

????????P(x_%7B2%7D%20)%3D0%C3%97y_%7B1%7D%20%2B1%C3%97y_%7B1%7D%2B0%C3%97y_%7B3%7D%3Dy_%7B2%7D?保證P(x)過第二個點。

????3.?將x3帶入P(x),開關(guān)3的值為1,開關(guān)1和開關(guān)2的值為0。

????????P(x_%7B3%7D%20)%3D0%C3%97y_%7B1%7D%20%2B0%C3%97y_%7B1%7D%2B1%C3%97y_%7B3%7D%3Dy_%7B3%7D?保證P(x)過第三個點。


那么開關(guān)的狀態(tài)是開(值為1)還是關(guān)(值為0),取決于什么呢?帶入的x值。

——任何數(shù)除自己都是1,零除任何數(shù)都是0。

以開關(guān)2為例,可以這樣構(gòu)造:

????????????%E5%BC%80%E5%85%B32%20%3D%20%5Cfrac%7B(x-x_%7B1%7D%20)(x-x_%7B3%7D)%7D%7B(x_%7B2%7D-x_%7B1%7D%20)(x_%7B2%7D-x_%7B3%7D)%7D%20

????????我們會發(fā)現(xiàn),帶入x=x2,分子和分母的值相同,即開關(guān)為1。如果帶入x1或x3,則分子為0,即開關(guān)為0。

同理可得開關(guān)1和開關(guān)3的表達式。


進過簡單類推,我們就得到了拉格朗日插值法(Interpolation de Lagrange)的公式。

拉格朗日插值法的公式

把它翻譯成人話:

%E6%89%80%E6%B1%82%E5%A4%9A%E9%A1%B9%E5%BC%8F%3D%E5%BC%80%E5%85%B31%C3%97y_%7B1%7D%20%2B%E5%BC%80%E5%85%B32%C3%97y_%7B2%7D%2B%20...%2B%E5%BC%80%E5%85%B3n%C3%97y_%7Bn%7D,其中任一開關(guān)i的表達式是分式,分子為:該開關(guān)對應(yīng)的x值減其他非該點的x值,全部乘起來:

??(x-x_%7B1%7D%20)(x-x_%7B2%7D%20)...(x-x_%7Bi-1%7D%20)(x-x_%7Bi%2B1%7D%20)...(x-x_%7Bn%7D%20)

這樣帶入非該點的x值時,分子為0,開關(guān)的值為0。

分母則把上式中所有x替換成xi,這樣就保證帶入xi時,分子和分母一模一樣,開關(guān)的值為1:? ??(x_%7Bi%7D-x_%7B1%7D%20)(x_%7Bi%7D-x_%7B2%7D%20)...(x_%7Bi%7D-x_%7Bi-1%7D%20)(x_%7Bi%7D-x_%7Bi%2B1%7D%20)...(x_%7Bi%7D-x_%7Bn%7D%20)

?

?另外補充與拉格朗日插值法相關(guān)的兩個點:

????1. 一般i從0開始取,以適應(yīng)計算機編程時的算法邏輯。

????2. 開關(guān)i一般用L_%7Bi%7D(x)%20表示,它被稱為為拉格朗日基本多項式(或稱插值基函數(shù))。??????


來一道例題:用拉格朗日插值法求經(jīng)過 (1,1),(2,4),(3,9)三個點的插值多項式。

解:

  1. 首先構(gòu)造出這個多項式的基本結(jié)構(gòu):

    P(x)%3Dy_%7B0%7DL_%7B0%7D(x)%2By_%7B1%7DL_%7B1%7D(x)%2By_%7B2%7DL_%7B2%7D(x)?注意這里第一個點表示為(x0,y0),以此類推...


  2. 寫出每一個開關(guān)結(jié)構(gòu):

    L_%7B0%7D(x)%3D%5Cfrac%7B(x-x_%7B1%7D)(x-x_%7B2%7D)%7D%7B(x_%7B0%7D-x_%7B1%7D)(x_%7B0%7D-x_%7B2%7D)%7D?

    簡單驗算下:代入x=x0,L0(x)=1;代入x=x1 或 x=x2,L0(x)=0。沒問題。

    同理得剩余兩個開關(guān):

    L_%7B1%7D(x)%3D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B2%7D)%7D%7B(x_%7B1%7D-x_%7B0%7D)(x_%7B1%7D-x_%7B2%7D)%7D%EF%BC%8C%0AL_%7B2%7D(x)%3D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B1%7D)%7D%7B(x_%7B2%7D-x_%7B0%7D)(x_%7B2%7D-x_%7B1%7D)%7D


  3. 代入,化簡,得結(jié)果:????P(x)%3Dy_%7B0%7D%5Cfrac%7B(x-x_%7B1%7D)(x-x_%7B2%7D)%7D%7B(x_%7B0%7D-x_%7B1%7D)(x_%7B0%7D-x_%7B2%7D)%7D%0A%2By_%7B1%7D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B2%7D)%7D%7B(x_%7B1%7D-x_%7B0%7D)(x_%7B1%7D-x_%7B2%7D)%7D%0A%2By_%7B2%7D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B1%7D)%7D%7B(x_%7B2%7D-x_%7B0%7D)(x_%7B2%7D-x_%7B1%7D)%7D?P(x)%3D1%C3%97%5Cfrac%7B(x-2)(x-3)%7D%7B(1-2)(1-3)%7D%20%0A%2B4%C3%97%5Cfrac%7B(x-1)(x-3)%7D%7B(2-1)(2-3)%7D%0A%2B9%C3%97%5Cfrac%7B(x-1)(x-2)%7D%7B(3-1)(3-2)%7D%20%20P(x)%3D%5Cfrac%7B1%7D%7B2%7D%20(x%5E2-5x%2B6)-4(x%5E2-4x%2B3)%2B%5Cfrac%7B9%7D%7B2%7D%20(x%5E2-3x%2B2)P(x)%3D%5Cfrac%7B1%7D%7B2%7Dx%5E2-%5Cfrac%7B5%7D%7B2%7D%20%2B3-4x%5E2%2B16x-12%2B%5Cfrac%7B9%7D%7B2%7D%20x%5E2-%5Cfrac%7B27%7D%7B2%7Dx%2B9%3D...%3Dx%5E2%20



四.牛頓插值法

承接上面的例題,在有三個點的基礎(chǔ)上,增加第四個點(4,16),求經(jīng)過這四個點的插值多項式。如果繼續(xù)用拉格朗日插值法構(gòu)造開關(guān)的方法,會發(fā)現(xiàn)一個問題:每個開關(guān)都需要重新構(gòu)造,它們的分子和分母都要接納第四個點的x3和y3。

以第二個點的開關(guān)L1(x)為例,原本構(gòu)造為:

L_%7B1%7D(x)%3D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B2%7D)%7D%7B(x_%7B1%7D-x_%7B0%7D)(x_%7B1%7D-x_%7B2%7D)%7D


由于新增了一個點,需要重新構(gòu)造為以下形式:

L_%7B1%7D(x)%3D%5Cfrac%7B(x-x_%7B0%7D)(x-x_%7B2%7D)(x-x_%7B3%7D)%7D%7B(x_%7B1%7D-x_%7B0%7D)(x_%7B1%7D-x_%7B2%7D)(x_%7B1%7D-x_%7B3%7D)%7D

原有的三個開關(guān)都要重新構(gòu)造,還要加構(gòu)造一個新的開關(guān)L3(x)。如果再增加一個點,則前四個開關(guān)都要重新構(gòu)造,再加構(gòu)一個L4(x)。如果再增加一個點,前五個開關(guān)又雙叒叕要重新構(gòu)造......


很明顯,拉格朗日插值法不具備遞歸性(Récursivité),每次插入新的點都會帶來大量的計算。而牛頓插值法則(Interpolation de Newton)可以解決這個問題。


牛頓插值法也用到了類似構(gòu)造開關(guān)的思想,考慮遞歸性,可以這樣構(gòu)造:

P_%7Bi%7D(x)%3DP_%7Bi-1%7D(x)%2Ba_%7Bi%7D(x-x_%7B0%7D)(x-x_%7B1%7D)(x-x_%7B2%7D)...(x-x_%7Bi-1%7D)

它要表達的意思是:某一項的值 = 前一項的值 + ai×開關(guān)。

現(xiàn)在開關(guān)的作用是,根據(jù)x的值決定要不要加上兩個多項式之間的差ai。每次新增一個插值點只需要多計算一個ai,之前算好的ai值不再變化。


以三個點為例

P(x)%3Da_%7B0%7D%2Ba_%7B1%7D(x-x_%7B0%7D)%2Ba_%7B2%7D(x-x_%7B0%7D)(x-x_%7B1%7D)

如果增加第四個點的話,直接在原式后面增加第四項即可。之前算出的a0、a1、a2的值可保留:

P(x)%3Da_%7B0%7D%2Ba_%7B1%7D(x-x_%7B0%7D)%2Ba_%7B2%7D(x-x_%7B0%7D)(x-x_%7B1%7D)%2Ba_%7B3%7D(x-x_%7B0%7D)(x-x_%7B1%7D)(x-x_%7B2%7D)


按照這個邏輯,分別帶入x值算算a:

1.?%E5%B8%A6%E5%85%A5x%3Dx_%7B0%7D%20%2Cy_%7B0%7D%3DP(x_%7B0%7D)%3Da_%7B0%7D

2.?%E5%B8%A6%E5%85%A5x%3Dx_%7B1%7D%20%2Cy_%7B1%7D%3DP(x_%7B1%7D)%3Da_%7B0%7D%2Ba_%7B1%7D(x_%7B1%7D-x_%7B0%7D)%E5%88%99%E6%9C%89y_%7B1%7D%3Dy_%7B0%7D%2Ba_%7B1%7D(x_%7B1%7D-x_%7B0%7D)%20%2C%20%0A%E5%8F%AF%E6%8E%A8%E5%BE%97a_%7B1%7D%3D%5Cfrac%7By_%7B1%7D-y_%7B0%7D%7D%7Bx_%7B1%7D-x_%7B0%7D%20%7D

3.?%E5%B8%A6%E5%85%A5x%3Dx_%7B2%7D%20%2Cy_%7B2%7D%3DP(x_%7B2%7D)%3Da_%7B0%7D%2Ba_%7B1%7D(x_%7B2%7D-x_%7B0%7D)%2Ba_%7B2%7D(x_%7B2%7D-x_%7B0%7D)(x_%7B2%7D-x_%7B1%7D)

%E5%88%99%E6%9C%89y_%7B2%7D%3Dy_%7B0%7D%2B%5Cfrac%7By_%7B1%7D-y_%7B0%7D%7D%7Bx_%7B1%7D-x_%7B0%7D%20%7D(x_%7B2%7D-x_%7B0%7D)%2Ba_%7B2%7D(x_%7B2%7D-x_%7B0%7D)(x_%7B2%7D-x_%7B1%7D)

%E5%8C%96%E7%AE%80%E5%90%8E%E5%8F%AF%E5%BE%97a_%7B2%7D%3D%5Cfrac%7B1%7D%7Bx_%7B2%7D-x_%7B0%7D%7D%0A(%0A%5Cfrac%7By_%7B2%7D-y_%7B1%7D%7D%7Bx_%7B2%7D-x_%7B1%7D%7D%20%0A-%0A%5Cfrac%7By_%7B1%7D-y_%7B0%7D%7D%7Bx_%7B1%7D-x_%7B0%7D%7D%20%0A)

觀察到a0的值為y0,它被稱為0階差商。可表示為f(x0)。

a1的值為點(x0,y0)和點(x1,y1)之間的斜率。它被稱為1階差商??杀硎緸閒[x0,x1]。

a2的值為 【點(x0,y0)和點(x1,y1)之間的斜率】和【點(x1,y1)和點(x2,y2)之間的斜率】?的斜率(好繞啊...),它被稱為2階差商。可表示為f[x0,x1,x2]。

...

以此類推,可以得出ai的值為i階差商??梢员硎緸閒[x0,x1, ... ,xi]。


為了方便計算(不被繞暈),我們一般用差商表(Table de différences divisées)來計算每一階差商:

差商表


來個例題展示下這個方法的過程:用牛頓插值法求經(jīng)過 點1(1,1),點2(2,4),點3(3,9)的插值多項式。

三個點


在此基礎(chǔ)上,增加第四個點(4,16)。用牛頓插值法只需要多算下一階差商,再帶入到新增項后加入原式即可。

四個點



五.龍格現(xiàn)象

用前面兩種插值法,n個點需要得到n-1次的多項式。點越多,多項式的次數(shù)也越高。通過計算得到的多項式,并不只是給本文開頭扯淡的找規(guī)律題編一個像樣的理由。它更多地會被用于預(yù)測還沒有出現(xiàn)的點的位置。

為了預(yù)測準(zhǔn)確,我們希望這條曲線盡可能平滑自然、保持當(dāng)前趨勢。

舉個例子,有如下已知四點,預(yù)測第五個點x4的縱坐標(biāo)y4:

已知前四點求第五點坐標(biāo)


比較理想的情況是用前四點得到一條平滑的插值多項式,帶入x=x4來預(yù)測第五個點的縱坐標(biāo):

理想情況


不理想的情況是得到的多項式彎彎扭扭地通過前四點。用這樣的曲線來預(yù)測第五點的位置不具備說服力。尤其是多項式次數(shù)高了的話就容易出這個問題。

不理想情況


龍格現(xiàn)象(Phénomène de Runge)就是描述了這樣的不理想情況。

在科學(xué)計算領(lǐng)域,龍格現(xiàn)象(Runge)指的是對于某些函數(shù),使用均勻節(jié)點構(gòu)造高次多項式差值時,在插值區(qū)間的邊緣的誤差可能很大的現(xiàn)象。它是由Runge在研究多項式差值的誤差時發(fā)現(xiàn)的,這一發(fā)現(xiàn)很重要,因為它表明,并不是插值多項式的階數(shù)越高,效果就會越好。

我會在下一篇文章用另一種插值法來回避這個問題。


至于本文這兩種插值法,預(yù)測未知點可能會出問題,但用來在某乎上回答找規(guī)律的題肯定綽綽有余咯。



六.參考資料

  1. 在線計算器: 拉格朗日多項式計算器 (planetcalc.com)

  2. 在線計算器: 牛頓多項式插值 (planetcalc.com)

  3. Analyse_Numerique__Slides_Etu_1x2.pdf (univ-lorraine.fr)

  4. 多項式插值 - 維基百科,自由的百科全書 (wikipedia.org)

  5. 如何直觀地理解拉格朗日插值法? - 知乎 (zhihu.com)

  6. 拉格朗日插值法 - 維基百科,自由的百科全書 (wikipedia.org)

  7. 牛頓多項式 - 維基百科,自由的百科全書 (wikipedia.org)

  8. 龍格現(xiàn)象(Runge Phenomenon) - 知乎 (zhihu.com)

  9. 找規(guī)律的數(shù)列問題真的沒有任何意義嗎? - 知乎 (zhihu.com)








【數(shù)學(xué)】拉格朗日插值法&牛頓插值法的評論 (共 條)

分享到微博請遵守國家法律
林周县| 永嘉县| 吐鲁番市| 永靖县| 赣州市| 康马县| 余庆县| 蒙自县| 彭州市| 汉川市| 抚顺市| 河西区| 寿阳县| 辽阳市| 漳州市| 内黄县| 张北县| 凤山市| 天津市| 万安县| 万年县| 长泰县| 安义县| 嘉兴市| 锦州市| 天长市| 宝应县| 鸡东县| 五台县| 绥滨县| 彩票| 巴青县| 海伦市| 容城县| 留坝县| 崇明县| 中卫市| 枝江市| 万山特区| 章丘市| 阿瓦提县|