用 梯形法,矩形法,辛普生法,变步长梯形法,求积分

用 梯形法,矩形法,辛普生法,变步长梯形法,求积分。

#include
#include
#include
using namespace std;
const double E=1e-10;
const int INF=10000000;
class Integration
{
private:
    double left;//积分下限
    double right;//积分上限
    double (*getv)(double x);//计算函数
    double eps;//精度
    int n;//n个区间
public:
    Integration(double (*f)(double))
    {
        left=0;
        right=0;
        getv=f;
    }
    void set1(double l,double r,double eps_)
    {
        left=l;
        right=r;
        eps=eps_;
    }
    void set2(double l,double r,int n_)
    {
        left=l;
        right=r;
        n=n_;
    }
    double func1()//用 梯 形 法 求 积 分
    {
        double distance=(right-left)/n;
        double sum=0,p;
        for(p=left;p+Eeps;e=s2-s1,n=n*2)
        {
            s1=s2;
            if(n==1)
            {
                distance=(right-left)/n;
                s2=func1();
                continue;
            }
            s2=s1/2;
            for(p=left+distance/2;p+E>l>>r>>n;
    T[choose-1].set2(l,r,n);
}
void input2(int choose)//输入,上限,下限,精度求积分
{
    system("cls");
    double l,r,eps;
    menu4();
    cin>>l>>r>>eps;
    T[choose-1].set1(l,r,eps);
}
/*主函数*/
int  main()
{
	int choose1,choose2;
	int  flag=1;
    while (flag)
	{
		system("cls");
    	menu1();
        cin>>choose1;
		system("cls");
		int flag1=1;
		switch(choose1)
		{
			case 1:
			case 2:
			case 3:
				while(flag1)
				{
                    menu2();
				    cin>>choose2;
					switch(choose2)
					{
				    case 1:
				        input1(choose1);
				        cout<


辛普森积分法:

用 梯形法,矩形法,辛普生法,变步长梯形法,求积分_第1张图片

你可能感兴趣的:(用 梯形法,矩形法,辛普生法,变步长梯形法,求积分)