拉格朗日插值.cpp

来自「qingduozhijiao」· C++ 代码 · 共 38 行

CPP
38 行
字号
#include<iomanip.h>
#include<math.h>
float Ln(int k,int m,float z,float g[])
{int i,j;
float s=1,t=1,w;
for(i=0;i<=m;i++)
{if(i!=k)
{t=t*(z-g[i]);
s=s*(g[k]-g[i]);}}
w=t/s;
return w;}

main()
{int i,j,k,n,m;
float x[20],y[20],s=0,z,t;
cout<<"press in n and x\n";
cin>>n>>z;
for(i=0;i<=n;i++)
{cout<<"\npress in x[i] and f(x[i])\n";
cin>> x[i]>>y[i];}
for(j=0;j<=n;j++)
s=s+Ln(j,n,z,x)*y[j];
cout<<"the exquation L(x)=\n";
for(j=0;j<=n;j++)
{if(Ln(j,n,z,x)==0)
  continue;
cout<<"("<<Ln(j,n,z,x)<<")"<<"*";
for(i=0;i<=n;i++)
{
if(i!=j)
cout<<"(x"<<(x[i]>=0?'+':'-')<<fabs(x[i])<<")";
if(i!=n&&i!=j)
cout<<"*";}
if(j<n)
cout<<"+";}
cout<<"\b"<<" ";
cout<<"\nans ="<<s;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?