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

📄 niu_dun.cpp

📁 利用拉格朗日、牛顿插值法解方程组
💻 CPP
字号:
// niu_dun.cpp : Defines the entry point for the console application.
//


#include "stdafx.h"
#include"fstream.h"
#include"iostream.h"
#include"iomanip.h"

class NIU_DUN
{
protected:
	int n;
	double *XI;
	double *YI;
	double x;
public:
	NIU_DUN(char * file_name);
	double func(int k,int g);
	void print_result();
};
NIU_DUN::NIU_DUN(char * file_name)
{
	ifstream input(file_name);
	
	input>>n;
	XI=new double[n];
	YI=new double[n];
	for(int i=0;i<n;i++)
		input>>XI[i]>>YI[i];
	input>>x;
}
double NIU_DUN::func(int k,int g)
{
	if(k==2)
		return (YI[g]-YI[0])/( XI[g]-XI[0]);
	else
		return ( func(k-1,g)-func(k-1,g-1) )/( XI[g]-XI[g-1]);
}
void NIU_DUN::print_result()
{
	double temp;
	double sum;
	sum=YI[0];
	for(int i=1;i<n;i++)
	{
		temp=1;
		for(int j=0;j<i;j++)
			temp*=(x-XI[j]);
		sum+=func(i+1,i)*temp;
	}
	
	cout<<"结果为:  "<<setiosflags(ios::fixed)<<setprecision(6)<<sum<<endl;

}

void main()
{
	NIU_DUN niudun("a.txt");

	niudun.print_result();

}

⌨️ 快捷键说明

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