📄 lagrange_input_data.cpp
字号:
#include<iostream.h>
#include<math.h>
double ww0 (double x[],double xk, int m)//定义w0多项式
{
double w0=1;
for(int i=0;i<=m;i++)
{ w0=w0*(xk-x[i]);}
return w0;
}
double ww1(double x[],int m ,int k)//定义w1多项式
{ double w1=1;
for(int i=0; i<=m; i++)
{if(i!=k)w1=w1*(x[k]-x[i]);}
return w1;
}
void main()
{int n,k;
double xx,xp,lnx;
cout<<"输入总的节点数n:"<<endl;
cin>>n;
double x[50],y[50];
for(k=0;k<n;k++)
{ cout<<"输入第"<<k<<"个结点x的值:";
cin>>xp;
x[k]=xp;
y[k]=sin(xp);
cout<<"对应y[]的值:"<<"y["<<k<<"]="<<y[k]<<endl;
}
cout<<"输入所要求的xx的值:";
cin>>xx;
lnx=0;
for(k=0;k<=n;k++)//求拉格朗日插值多项式
{xp=ww0(x,xx,n)/((xx-x[k])*ww1(x,n,k));
lnx=lnx+y[k]*xp;
}
cout<<"ln(x)="<<lnx<<endl;
xp=sin(xx);
cout<<"输出xx的真实值:"<<xp<<endl;
cout<<"截断误差:"<<xp-lnx<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -