📄 拉格朗日插值.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 + -