复化梯形积分

复化梯形积分

/**
  复化梯形积分  
                                                     n-1
 复化梯形公式: Tn = h{ f(a)/2  +  * ∑ f ( x(a + i*h)  + f(b)/2 )} 
                                                     i=1
 步长: h=b-a/n

 属性: 数值积分法

《数值计算方法与算法》-2 Editon -科学出版社 P54
   
 代码维护:2007.04.20   pengkuny
**/

#include < iostream >
#include
< cmath >

using   namespace  std;

#define  f(x) (sin(x))   // 举例函数
#define  epsilon 0.00001   // 精度

// 复化梯形公式
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  main()
{
    
float a,b;
    
long n;
    cout
<<"复化梯形积分,请输入积分范围a,b:"<<endl;
    cin
>>a>>b;
    cout
<<"请输入分割区间数n:"<<endl;
    cin
>>n;

    cout
<<"积分结果:"<<computerT(a, b, n)<<endl;

    system(
"pause");
    
return 0;
}

你可能感兴趣的:(复化梯形积分)