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

📄 ex3.cpp

📁 算法分析中的辛甫生公式和梯形公式
💻 CPP
字号:
// ex3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"



#include<iostream>
#include<cmath>

using namespace std;

#define f(x) (4/(1+x*x))  //举例函数
#define epsilon 0.00001  //精度

//复化Simpson公式
float Simpson(float aa, float bb, long n)
{//aa,bb:端点  n,分区数
    if (!(n%2)) //保证n为偶数
        n = n+1;
    long m = n/2;

    float sum = 0;
    float h = (bb-aa)/n; //步长

    float sum1 = 0, sum2 = 0;
    for (long i=0; i<m; i++)
    {
        sum1 += f(aa + (2*i+1)*h);
		sum2 += f(aa + (2*i)*h);
    }

    sum = f(aa) + f(bb) + 2*sum2 + 4*sum1;

    return (h*sum/3);
}

float computerT(float aa, float bb, long n)
{//aa,bb:端点  n,分区数
    float sum = 0;
    float h = (bb-aa)/n; //步长
    for (long i=1; i<n; i++)
    {
        sum += f(aa + i*h);
    }
    sum += (f(aa) + f(bb))/2;

    return (h*sum);
}


int _tmain(int argc, _TCHAR* argv[])
{
    float a,b;
    long n=2;
	cout<<"y=4/(1+x*x),求积分"<<endl;
    cout<<"Simpson积分and梯形积分,请输入积分范围a,b:"<<endl;
    cin>>a>>b;
	
    cout<<"辛甫生公式积分结果:"<<Simpson(a, b, n)<<endl;
	cout<<"梯形公式积分结果:"<<computerT(a, b, n)<<endl;


    system("pause");
    return 0;
}

⌨️ 快捷键说明

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