一、拉格朗日插值法實(shí)驗(yàn)計算近似值例題
在數(shù)值分析中,拉格朗日插值法是以法國十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項(xiàng)式插值方法。
許多實(shí)際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實(shí)驗(yàn)和觀測來了解。如對實(shí)踐中的某個物理量進(jìn)行觀測,在若干個不同的地方得到相應(yīng)的觀測值,拉格朗日插值法可以找到一個多項(xiàng)式,其恰好在各個觀測的點(diǎn)取到觀測到的值。
二、計算方法拉格朗日插值實(shí)驗(yàn)報告
拉格朗日插值公式
約瑟夫·拉格朗日發(fā)現(xiàn)的公式
拉格朗日插值公式線性插值也叫兩點(diǎn)插值,已知函數(shù)y = f (x)在給定互異點(diǎn)x0, x1上的值為y0= f (x0),y1=f (x1)線性插值就是構(gòu)造一個一次多項(xiàng)式P1(x) = ax + b使它滿足條件P1 (x0) = y0 P1 (x1) = y1其幾何解釋就是一條直線,通過已知點(diǎn)A (x0, y0),B(x1, y1)。
三、拉格朗日插值多項(xiàng)式計算近似值
拉格朗日點(diǎn)是三體意義下的一種平衡點(diǎn),在拉格朗日點(diǎn),第三體受到的另外兩個物體的引力合力為零。如果稍微偏離平衡點(diǎn),第三體就會受到一個大概指向拉格朗日點(diǎn)方向的合力,類似于繞天體中心的萬有引力。從而可以得到環(huán)繞拉格朗日點(diǎn)的暈軌道。
四、計算方法實(shí)驗(yàn)拉格朗日插值
構(gòu)造一組插值基函數(shù).”就是構(gòu)造一個函數(shù),這個函數(shù)在其中一點(diǎn)的值為1,其它點(diǎn)的值為0。這樣的話把n個這樣的函數(shù)加權(quán)加起來得到的函數(shù)就是在每個點(diǎn)上的值都是需要的了
五、拉格朗日插值求近似值
Pn(x)=a0+a1x+……+anxn
將{x}ni=0代入,構(gòu)造出一個關(guān)于系數(shù)a0,a1,……,an的n+1元線性方程組,并解出{a}。
由于這種插值方法是最繁雜的,所以一般不會用到(除非在小學(xué)生面前裝*),所以也不會考慮其誤差,如果非得考慮的話,由范德蒙德矩陣可知,矩陣非奇異所以Pn(x)存在且唯一,故而誤差和其他插值方法的誤差是一樣的,這里就不做討論了。
六、拉格朗日插值法求近似值
一、拉格朗日插值法
是以法國十八世紀(jì)數(shù)學(xué)家約瑟夫·路易斯·拉格朗日命名的一種多項(xiàng)式插值方法。許多實(shí)際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實(shí)驗(yàn)和觀測來了解。如對實(shí)踐中的某個物理量進(jìn)行觀測,在若干個不同的地方得到相應(yīng)的觀測值,拉格朗日插值法可以找到一個多項(xiàng)式,其恰好在各個觀測的點(diǎn)取到觀測到的值。這樣的多項(xiàng)式稱為拉格朗日(插值)多項(xiàng)式。
二、Lagrange基本公式:
拉格朗日插值公式,設(shè),y=f(x),且xi< x < xi+1,i=0,1,…,n-1,有:
Lagrange插值公式計算時,其x取值可以不等間隔。由于y=f(x)所描述的曲線通過所有取值點(diǎn),因此,對有噪聲的數(shù)據(jù),此方法不可取。
一般來說,對于次數(shù)較高的插值多項(xiàng)式,在插值區(qū)間的中間,插值多項(xiàng)式能較好地逼近函數(shù)y=f(x),但在遠(yuǎn)離中間部分時,插值多項(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作為臨時變量,記錄拉格朗日插值多項(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();
}
七、拉格朗日插值法計算插值函數(shù)
不是,是一種分式函數(shù),算初等函數(shù)。但是該內(nèi)容出現(xiàn)在數(shù)學(xué)分析中。
八、用拉格朗日插值法求近似值
線性插值也叫兩點(diǎn)插值,已知函數(shù)y = f (x)在給定互異點(diǎn)x0, x1上的值為y0= f (x0),y1=f (x1)線性插值就是構(gòu)造一個一次多項(xiàng)式:P1(x) = ax + b,使它滿足條件:P1 (x0) = y0, P1 (x1) = y1 其幾何解釋就是一條直線,通過已知點(diǎn)A (x0, y0),B(x1, y1)