//Lagrange插值函数
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define N 10
float LagrangeFun(float a[],float b[],int n,float c);
void main()
{
float aa[N],bb[N],f,xx;
int nn;
printf("输入个数:n=");
scanf("%d",&nn);
printf("输入x的值:");
for(int i=0;i<nn;i++)
scanf("%f",&aa[i]);
printf("输入y的值:");
for(int j=0;j<nn;j++)
scanf("%f",&bb[j]);
printf("输入要求的xx值:");
scanf("%f",&xx);
f=LagrangeFun(aa,bb,nn,xx);
printf("求得f(xx)=%f\n",f);
}
float LagrangeFun(float a[],float b[],int n,float x)
{
int i,j,k;
float t=1,y=0;
for(k=0;k<n;k++)
{
for(i=0;i<k;i++)
{
t=t*((x-a[i])/(a[k]-a[i]));
}
for(j=k+1;j<n;j++)
{
t=t*((x-a[j])/(a[k]-a[j]));
}
y=y+t*b[k];
t=1;
}
return y;
}
Lagrange插值求解线性方程
最新推荐文章于 2021-02-04 13:27:42 发布