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

📄 newtonchazhi.cpp

📁 这是数值方法中各种插值算法
💻 CPP
字号:
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
#define pointnum 5

double Newton(double NodeX[],double NodeY[],double x)
{
	double result;
	int i,j,k;
	for(i=1;i<pointnum;i++)
		for(j=pointnum-1;j>=i;j--)
			NodeY[j]=(NodeY[j]-NodeY[j-1])/(NodeX[j]-NodeX[j-i]);
		result=NodeY[pointnum-1];
		for(k=pointnum-2;k>=0;k--)
			result=result*(x-NodeX[k])+NodeY[k];
		return result;
}
 void main()
{
	int i;double result;
	double x[2]={0.596,0.895};
	double NodeX1[pointnum]={0.4,0.55,0.65,0.8,0.9};
	double NodeX2[pointnum]={0.4,0.55,0.65,0.8,0.9};
	double NodeY1[pointnum]={0.41075,0.57815,0.69675,0.88811,1.02652};
    double NodeY2[pointnum]={0.41075,0.57815,0.69675,0.88811,1.02652};
	cout<<"插值节点数值为:"<<endl;
	cout<<"x[i]  ";
    for(i=0;i<pointnum;i++)
       cout<<setw(10)<<NodeX1[i];
	   cout<<endl;
	   cout<<"y[i]  ";
    for(i=0;i<pointnum;i++)
       cout<<setw(10)<<NodeY1[i];
	   cout<<endl;
       cout<<"需计算的值为:"<<endl;
    for(i=0;i<=1;i++)
       cout<<"x["<<i<<"]="<<x[i]<<"    ";
       cout<<endl;
       result=Newton(NodeX1,NodeY1,x[0]);
       cout<<"点x[0]="<<x[0]<<"处的函数值为:y[0]="<<result<<endl;
       result=Newton(NodeX2,NodeY2,x[1]);
       cout<<"点x[1]="<<x[1]<<"处的函数值为:y[1]="<<result<<endl;
}


⌨️ 快捷键说明

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