首页 > 应用开发 > IT综合 > 拉格朗日一元三点插值多项式(C++版)
/////////////////
////拉格朗日一元三点插值多项式
/////////////////
#include
#include
using namespace std;
//////////////
//////////////
double LAG2(int n,double x,double *tx,double *ty);
//////////////
//////////////
int main()
{
int i,n;
double x,y;
cout<
while(n<3)
{
cout<
}
double *tx=new double[n];
double *ty=new double[n];
cout<
cout<<"第"<>tx[i];
cout<<"y["<>ty[i];
cout<
cout<<"请输入初始点值: x=";cin>>x;
cout<
cout<<"x="<
delete [] ty;
return 0;
return 0;
}
//////////////
double LAG2(int n,double x,double *tx,double *ty)
{
double y=0.0;
int i,j,k;
k=0;
double *l=new double[3];
for(i=0;i
if((x-tx[i])*(x-tx[i+1])<=0)
k=i;
}
if(k==0)
{
if(fabs(x-tx[0])
else
k=n-2;
}
if(k==n-2||k>0)
k=k-1;
for(i=k;i<=k+2;i++)
{
for(j=k;j<=k+2;j++)
{
if(j!=i)
l[i]=(x-tx[j])/(tx[i]-tx[j]);
}
y+=l[i]*ty[i];
}
delete [] l;
return (y);
}
//////////////
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11355887/viewspace-974951/ ,如需转载,请注明出处,否则将追究法律责任。