拉格朗日插值.txt
来自「数值计算方法所用的上机实验C++源程序,个人所编.」· 文本 代码 · 共 35 行
TXT
35 行
#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 + =
减小字号Ctrl + -
显示快捷键?