/**
  复化梯形积分  
                                                     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;
}
posted on 2007-04-20 10:56 哈哈 阅读(807) 评论(0)  编辑 收藏 引用 所属分类: 算法与数据结构

专题:Android  iPad jQuery Chrome OS

博客园首页  IT新闻  知识库  学英语  C++程序员招聘
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
网站导航: