newton.cpp

来自「计算数值方法的几个源程序,牛顿法,三角法,追赶法等」· C++ 代码 · 共 47 行

CPP
47
字号
#include<iostream.h>
void main()
{
    int i,j,n; 
 float  x[100],fx[100],c[100][100],y;
 float  xk,px,fz;
    cout<<"输入数据个数:";
    cin>>n;
 for(i=0;i<n;i++)
    {
  cout<<"输入第"<<i<<"组"<<"("<<x(i)<<","<<y(i)<<"):";
  cin>>x[i]>>fx[i];
       }
    cout<<"已知的数据是:"<<endl;
 for(i=0;i<n;i++)
    {
        cout<<"("<<x[i]<<","<<fx[i]<<")"<<endl;
       }
    cout<<endl;
    int flag=1;
    while(flag!=0) 
 {
       for(j=0;j<n;j++)  //j表示列
    {
     if(j>0)
      for(i=0;i<n-j;i++)  //i表示行
       c[i][j]=((c[i+1][j-1]-c[i][j-1])/(x[i+j]-x[i]));
     else
      for(i=0;i<n;i++)
                  c[i][0]=fx[i];
    }
    px=fx[0];
    cout<<"输入所求f(x)的x值:";
       cin>>xk;
       for(i=1;i<n;i++)
       {
     fz=1;
     for(j=0;j<=i-1;j++)
      fz=fz*(xk-x[j]); //fz=(x-x0)(x-x1)(x-x2)...(x-x(j-1))
     px=px+c[0][i]*fz;
    }
       cout<<"所求f(x)="<<px<<endl;
       cout<<"继续请按1,退出请按0:";
    cin>>flag;
 }
}

⌨️ 快捷键说明

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