一、拉格朗日插值的基函數(shù)性質(zhì)
一.線性插值(一次插值) 已知函數(shù)f(x)在區(qū)間[xk ,xk+1 ]的端點(diǎn)上的函數(shù)值yk =f(xk ), yk+1 = f(xk+1 ),求一個(gè)一次函數(shù)y=P1 (x)使得yk =f(xk ),yk+1 =f(xk+1 ), 其幾何意義是已知平面上兩點(diǎn)(xk ,yk ),(xk+1 ,yk+1 ),求一條直線過(guò)該已知兩點(diǎn)。
首先,插值法是:利用函數(shù)f (x)在某區(qū)間中插入若干點(diǎn)的函數(shù)值,作出適當(dāng)?shù)奶囟ê瘮?shù),在這些點(diǎn)上取已知值,在區(qū)間的其他點(diǎn)上用這特定函數(shù)的值作為函數(shù)f (x)的近似值,這種方法稱為插值法.
其目的便就是估算出其他點(diǎn)上的函數(shù)值.
而拉格朗日插值法就是一種插值法.
二、拉格朗日插值基函數(shù)特點(diǎn)
線性插值也叫兩點(diǎn)插值,已知函數(shù)y = f (x)在給定互異點(diǎn)x0, x1上的值為y0= f (x0),y1=f (x1)線性插值就是構(gòu)造一個(gè)一次多項(xiàng)式:P1(x) = ax + b,使它滿足條件:P1 (x0) = y0, P1 (x1) = y1 其幾何解釋就是一條直線,通過(guò)已知點(diǎn)A (x0, y0),B(x1, y1)
三、拉格朗日插值基函數(shù)滿足性質(zhì)
拉格朗日插值法與牛頓插值法都是二種常用的簡(jiǎn)便的插值法。但牛頓法插值法則更為簡(jiǎn)便,與拉格朗日插值多項(xiàng)式相比較,它不僅克服了“增加一個(gè)節(jié)點(diǎn)時(shí)整個(gè)計(jì)算工作必須重新開始”的缺點(diǎn),而且可以節(jié)省乘、除法運(yùn)算次數(shù)。
同時(shí),在牛頓插值多項(xiàng)式中用到的差分與差商等概念,又與數(shù)值計(jì)算的其他方面有著密切的關(guān)系。所以?。?/p>
從運(yùn)算的角度來(lái)說(shuō)牛頓插值法精確度高從數(shù)學(xué)理論上來(lái)說(shuō)的話,我傾向于拉格朗日大神?。?/p>
話說(shuō)拉格朗日當(dāng)初不搞天文,不搞物理,專弄數(shù)學(xué),估計(jì)是數(shù)學(xué)歷史上最偉大的數(shù)學(xué)家了,沒有之一。
四、拉格朗日插值基函數(shù)的相關(guān)性質(zhì)
拉格朗日乘數(shù)法是多元微分學(xué)中用來(lái)求函數(shù)z=f(x,y)在滿足g(x,y)=0條件下的極值問(wèn)題的方法:通過(guò)設(shè)F(x,y)=f(x,y)+λg(x,y),其中λ稱為拉格朗日乘數(shù),并求F(x,y)的極值點(diǎn)求得條件極值的方法
五、證明拉格朗日插值基函數(shù)線性無(wú)關(guān)
在數(shù)值分析中,拉格朗日插值法是以法國(guó)十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項(xiàng)式插值方法。
許多實(shí)際問(wèn)題中都用函數(shù)來(lái)表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過(guò)實(shí)驗(yàn)和觀測(cè)來(lái)了解。如對(duì)實(shí)踐中的某個(gè)物理量進(jìn)行觀測(cè),在若干個(gè)不同的地方得到相應(yīng)的觀測(cè)值,拉格朗日插值法可以找到一個(gè)多項(xiàng)式,其恰好在各個(gè)觀測(cè)的點(diǎn)取到觀測(cè)到的值。
六、拉格朗日插值基函數(shù)在節(jié)點(diǎn)上的取值是
一、拉格朗日插值法
是以法國(guó)十八世紀(jì)數(shù)學(xué)家約瑟夫·路易斯·拉格朗日命名的一種多項(xiàng)式插值方法。許多實(shí)際問(wèn)題中都用函數(shù)來(lái)表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過(guò)實(shí)驗(yàn)和觀測(cè)來(lái)了解。如對(duì)實(shí)踐中的某個(gè)物理量進(jìn)行觀測(cè),在若干個(gè)不同的地方得到相應(yīng)的觀測(cè)值,拉格朗日插值法可以找到一個(gè)多項(xiàng)式,其恰好在各個(gè)觀測(cè)的點(diǎn)取到觀測(cè)到的值。這樣的多項(xiàng)式稱為拉格朗日(插值)多項(xiàng)式。
二、Lagrange基本公式:
拉格朗日插值公式,設(shè),y=f(x),且xi< x < xi+1,i=0,1,…,n-1,有:
Lagrange插值公式計(jì)算時(shí),其x取值可以不等間隔。由于y=f(x)所描述的曲線通過(guò)所有取值點(diǎn),因此,對(duì)有噪聲的數(shù)據(jù),此方法不可取。
一般來(lái)說(shuō),對(duì)于次數(shù)較高的插值多項(xiàng)式,在插值區(qū)間的中間,插值多項(xiàng)式能較好地逼近函數(shù)y=f(x),但在遠(yuǎn)離中間部分時(shí),插值多項(xiàng)式與y=f(x)的差異就比較大,越靠近端點(diǎn),其逼近效果就越差。
三、C++實(shí)現(xiàn)
#include <iostream>
#include <conio.h>
#include <malloc.h>
double lagrange(double *x,double *y,double xx,int n)/*拉格朗日插值算法*/
{
int i,j;
double *a,yy=0.0;/*a作為臨時(shí)變量,記錄拉格朗日插值多項(xiàng)式*/
a=(double *)malloc(n*sizeof(double));
for(i=0;i<=n-1;i++)
{
a[i]=y[i];
for(j=0;j<=n-1;j++)
if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]);
yy+=a[i];
}
free(a);
return yy;
}
/
int main()
{
int i;
int n;
double x[20],y[20],xx,yy;
printf("Input n:");
scanf("%d",&n);
if(n>=20)
{
printf("Error!The value of n must in (0,20).");
getch();
return 1;
}
if(n<=0)
{
printf("Error! The value of n must in (0,20).");
getch();
return 1;
}
for(i=0;i<=n-1;i++)
{
printf("x[%d]:",i);
scanf("%lf",&x[i]);
}
printf("\n");
for(i=0;i<=n-1;i++)
{
printf("y[%d]:",i);
scanf("%lf",&y[i]);
}
printf("\n");
printf("Input?xx:");
scanf("%lf",&xx);
yy=lagrange(x,y,xx,n);
printf("x=%.13f,y=%.13f\n",xx,yy);
getch();
}