插值算法之:拉格朗日插值

記一下拉格朗日插值公式的推導和一些要點【這裏說的都是二維插值,多維上的以此類推】

 

1、插值問題:在做實驗的過程中,往往得到一堆離散的數據,現在想用數學公式模擬這堆離散數據。怎麼辦,數學家們提出了插值問題。插值問題的提法是這樣的給定一堆數據點(x0, y0), (x1, y1), (x2, y2)...(xn, yn),要求一個函數 y = f(x) ,要求該函數經過上面所有的數據點。

 

2、多項式插值及其唯一性:在所有的函數中,多項式函數是最簡單的函數,所以只要是人就會想到用多項式函數來作爲插值函數,好,以上給定了n+1個點,現在要求一個n次多項式y = an * x^n + ... a1 * x + a0, 使它們經過這n+1個點;通過範德蒙行列式 和 克萊姆法則,可以判定如果這n+1個點的x值各不相同,那麼這個多項式是唯一的。結果唯一,但是用直接法很不好求。現在用別的辦法來求之。這就是:拉格朗日多項式

 

3、拉格朗日多項式的構造,以四個點爲例子進行說明

 

由於函數經過4個點(x0, y0),(x1, y1),(x2, y2),(x3, y3),所以可以設函數爲:

 

f(x) = b0(x) * y0 + b1(x) * y1 + b2(x) * y2 + b3(x) * y3

 

注意:b0(x),...,b3(x)都是x的3次多項式,稱之爲拉格朗日插值基函數。

 

由於要求當x爲x0時候,f(x) = y0, 所以最簡單的做法就是讓b0(x0) = 1, b1(x0) = b2(x0) =  b3(x0) = 0;

 

同理可知,在x1,x2,x3點上,插值基函數的值構造如下:

 

                b0(x)        b1(x)        b2(x)        b3(x)

 

x=x0         1                0              0              0

 

x=x1         0                1              0              0

 

x=x2         0                0              1              0

 

x=x3         0                0              0               1

 

問題1、根據這些值來確定b0(x)的表達式,

 

由於b0(x1) = b0(x2) = b0(x3) = 0,所以x1, x2, x3是b0(x)的零點,由於b0(x)是三次多項式,所以設

 

b0(x) = c0 * (x-x1) * (x-x2) * (x-x3)

 

由於b0(x0) = 1,所以 1 = c0 * (x0-x1) * (x0-x2) * (x0-x3)  得到 c0 = 1/[(x0-x1)(x0-x2)(x0-x3)]

 

所以:b0(x) = (x-x1)*(x-x2)*(x-x3)/[(x0-x1)*(x0-x2)*(x0-x3)]

 

同理可求b1(x)、b2(x),略

 

問題2、根據上面的表格說明插值基函數的一個性質:無論x取和值,它們的和都爲1.【這個叫做調和函數】

 

以3次爲例子說明:將上述表格的每一行分別相加,得到的事函數:g(x) = b0(x) + b1(x) + b2(x) + b3(x)在x0, x1, x2, x3的值,都爲1.

 

                     b0(x) + b1(x) + b2(x) + b3(x)

 

x=x0                    1+0+0+0 = 1

 

x=x1                    0+1+0+0 = 1

 

x=x2                    0+0+1+0 = 1

 

x=x3                    0+0+0+1 = 1

 

所以:方程g(x) - 1 = 0,應該有4個根x0, x1, x2, x3;但是,由於b0(x)、b1(x)、b2(x)、b3(x)都是3次多項式,所以,g(x)最多也是3次多項式,至多隻有3個根,所以等式:g(x) = 1 應該是恆等式。得證。

 

問題3、基函數:b0(x)、b1(x)、b2(x)、b3(x) 是線性無關的。

 

設:數t0, t1, t2, t3使得:t0 * b0(x) + t1 * b1(x) + t2 * b2(x) + t3 * b3(x) = 0

 

x=x0時候:0 = t0 * b0(x0) + t1 * b1(x0) + t2 * b2(x0) + t3 * b3(x0) = t0 * 1 + t1 * 0 + t2 * 0 + t3 * 0 得到:t0 = 0;

 

同理有:t1 = t2 = t3 = 0,根據定義(所有係數爲0)。所以插值基函數是線性無關的。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章