⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newton_input_data.cpp

📁 Newton差商插值法,并应用算法于实际问题
💻 CPP
字号:
#include<iostream.h>
#define m 10
void main()
{float x[m];//保存结点x的值
 float ff[m][m];//主要用来保存差商表的值
 float kx,ky,kw;//这三个变量都是中间变量
 int n,i,j;
 int k;
 //for(i=0;i<m;j++)
// {for(j=0;j<m;j++)
	//	 ff[i][j]=0;
 //}
 cout<<"输入x 与y 的值:"<<endl;
 cout<<"如果输入x=-1时,就表示输入结束."<<endl;
 for(i=0,j=0;i<m;i++)// 输入x的值,若x=-1就表示输入结束;同时输入y值,并把y保存在差商表的第0列中。
 {cout<<"输入X[]第"<<i<<"的值:"<<endl;
  cin>>kx;
  if(kx==-1) break;
  else{ x[i]=kx;
        cout<<"输入y第"<<i<<"的值:"<<endl;
		cin>>kx;
		ff[i][j]=kx;
		}
 }
 n=i;
 for(j=1;j<=n;j++)//求差商表中的值。
 {k=0;
    for(i=1;i<=n;i++)
	 if(i>=j){ ff[i][j]=(ff[i][j-1]-ff[i-1][j-1])/(x[i]-x[k]);
	             k++;
				 }
 }
 
 cout<<"              输出差商表:                "<<endl;
 cout<<"------------------------------------------"<<endl;
 for(i=0;i<n;i++)//输出差商表.
 {k=0;
     for(j=0;j<=i;j++)
	 {cout<<ff[i][j]<<'\t';
	  k+=1;
	  if(k%(i+1)==0)cout<<endl;
	 }
 }
cout<<"------------------------------------------"<<endl;
cout<<"输入所要求的x的值:"<<endl;
cin>>kx;
ky=ff[0][0];

for(i=n;i>0;i--)//主要是求所要求的x的值的对应y值。
{for(j=n;j>0;j--)
{kw=1;
kw=kw*(kx-x[j-1]);
}
 ky=ky+ff[i][i]*kw;
}
cout<<"输出ky="<<ky<<endl;	   
}

⌨️ 快捷键说明

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