?? 拉格朗日插值.txt
字號:
#include <stdio.h>
#define Max_N 20 /* Max_N為最大插值節點個數 */
float lagrange(float x[],float y[],float xx,int N)
{ int i,j;
float l,L;
L=0.0;
for(i=0;i<=N;i++) /* 計算拉格朗日插值函數的值 */
{ l=1.0;
for(j=0;j<=N;j++)
{ if(j!=i)
l=l*(xx-x[j])/(x[i]-x[j]);
}
L = L +y[i]*l;
}
return(L);
}
main()
{ float x[Max_N],y[Max_N];
float xx,L;
int i,N;
clrscr();
printf("\ninput n:\n "); /* 輸入插值次數 */
scanf("%d",&N);
printf("input x[%d]:\n ",N); /* 輸入插值點x值 */
for(i=0;i<=N;i++)
scanf("%f",&x[i]);
printf("input y[%d]:\n ",N); /* 輸入插值點y值 */
for(i=0;i<=N;i++)
scanf("%f",&y[i]);
printf("input x:\n "); /* 輸入計算插值多項式的x值 */
scanf("%f",&xx);
L=lagrange(x,y,xx,N);
printf("\nL(%f)=%f",xx,L);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -