作者在 2012-02-16 21:36:53 发布以下内容
#include <iostream>
#include <string.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define N 4
double xx[N+1]={0.4,0.55,0.65,0.8,0.9};
double yy[N+1]={0.4175,0.57815,0.69657,0.88811,1.02652};
double lagrange(double *x,double *y,float k)
{
double l,p;
p=0.0;
for(int i=0;i<=N;i++)
{
l=1;
for(int j=0;j<=N;j++)
{
if(i!=j)
{
l=l*(k-x[j])/(x[i]-x[j]);
}
}
p=p+l*y[i];
}
return p;
}
int main()
{
int m;
cout<<"请输入插值点的个数m=";
cin>>m;
for(int i=0;i<m;i++)
{
float temp;
cout<<"请输入差指插值点的位置x"<<i<<"=";
cin>>temp;
cout<<"f("<<temp<<")="<<lagrange(xx,yy,temp)<<endl;
}
return 0;
}
#include <string.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define N 4
double xx[N+1]={0.4,0.55,0.65,0.8,0.9};
double yy[N+1]={0.4175,0.57815,0.69657,0.88811,1.02652};
double lagrange(double *x,double *y,float k)
{
double l,p;
p=0.0;
for(int i=0;i<=N;i++)
{
l=1;
for(int j=0;j<=N;j++)
{
if(i!=j)
{
l=l*(k-x[j])/(x[i]-x[j]);
}
}
p=p+l*y[i];
}
return p;
}
int main()
{
int m;
cout<<"请输入插值点的个数m=";
cin>>m;
for(int i=0;i<m;i++)
{
float temp;
cout<<"请输入差指插值点的位置x"<<i<<"=";
cin>>temp;
cout<<"f("<<temp<<")="<<lagrange(xx,yy,temp)<<endl;
}
return 0;
}