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

📄 gauss_new.cpp

📁 一个求函数积分的工具(c/c++写的
💻 CPP
字号:
#include<iostream>
#include<cmath>
#include<string>
using namespace std;

#define fun 1/(1+x*x)

class Gauss_legendre {
	double up;
	double down;
	double x;
	double integrate_f;
	double f(double _x){x=_x;integrate_f=fun;return integrate_f;};
public:
	int input_get();
	int Gauss_two_nodes();
	int Gauss_three_nodes();
	int Gauss_four_nodes();
};

int Gauss_legendre::input_get()
{
	cout<<"input integrate up and down\n";
	cin >>up >>down;
	return 0;
}

int Gauss_legendre::Gauss_two_nodes()
{
	double x_1= (up+down)/2.0 +(up-down)*0.5773503/2.0;
	double x_2= (up+down)/2.0 +(up-down)*(0-0.5773503)/2.0;
	double result_two_nodes;
	result_two_nodes= (up-down)*( f(x_1)+f(x_2) )/2.0;
	cout <<"with two nodes,the result is:	";
	cout << result_two_nodes<<endl;
	return 0;
}

int Gauss_legendre::Gauss_three_nodes()
{
	double x_three_1= (up+down)/2.0 +(up-down)*0.77145967/2.0;
	double x_three_2= (up+down)/2.0 +(up-down)*(0-0.77145967)/2.0;
	double x_three_3= (up+down)/2.0;
	double result_three_nodes;
	result_three_nodes= (up-down)*( 5.0*( f(x_three_1)+ f(x_three_2) )/9.0 + 8.0*f( x_three_3 )/9.0 )/2.0;
	cout <<"with three nodes,the result is:	";
	cout << result_three_nodes <<endl;
	return 0;
}

int Gauss_legendre::Gauss_four_nodes()
{
	double x_four_1= (up+down)/2.0 +(up-down)*0.8611363/2.0;
	double x_four_2= (up+down)/2.0 +(up-down)*(0-0.8611363)/2.0;
	double x_four_3= (up+down)/2.0 +(up-down)*0.3399810/2.0;
	double x_four_4= (up+down)/2.0 +(up-down)*(0-0.3399810)/2.0;
	double result_four_nodes;
	result_four_nodes= (up-down)*( 0.3478548*(f(x_four_1)+f(x_four_2))+0.6521452*(f(x_four_3)+f(x_four_4)) )/2.0;
	cout <<"with four nodes,the result is:	";
	cout << result_four_nodes <<endl;
	return 0;
}

int main()
{
	class Gauss_legendre lanyao;
	lanyao.input_get();
	lanyao.Gauss_two_nodes();
	lanyao.Gauss_three_nodes();
	lanyao.Gauss_four_nodes();
	return 0;
}

⌨️ 快捷键说明

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