📄 gauss_new.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 + -