插值法:拉格朗日、牛顿插值(一)

2013-07-22 18:17:16 · 作者: · 浏览: 321

  算法流程

  算法代码

  [cpp] view plaincopyprint

  #include

  #include

  #include

  using namespace std;

  double ChaShang(int n,vector&X,vector&Y);

  double Newton(double x,vector&X,vector&Y);

  int main(){

  int n;

  cin>>n;

  vectorX(n,0);

  vectorY(n,0);

  for(int i=0;i

  cin>>X[i]>>Y[i];

  }

  double x;

  cin>>x;

  cout<

  }

  double ChaShang(int n,vector&X,vector&Y){

  double f=0;

  double temp=0;

  for(int i=0;i

  temp=Y[i];

  for(int j=0;j

  if(i!=j) temp /= (X[i]-X[j]);

  f += temp;

  }

  return f;

  }

  double Newton(double x,vector&X,vector &Y){

  double result=0;

  for(int i=0;i

  double temp=1;

  double f=ChaShang(i,X,Y);

  for(int j=0;j

  temp = temp*(x-X[j]);

  }

  result += f*temp;

  }

  return result;

  }

  #include

  #include

  #include

  using namespace std;

  double ChaShang(int n,vector&X,vector&Y);

  double Newton(double x,vector&X,vector&Y);

  int main(){

  int n;

  cin>>n;

  vectorX(n,0);

  vectorY(n,0);

  for(int i=0;i

  cin>>X[i]>>Y[i];

  }

  double x;

  cin>>x;

  cout<

  }