| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:求数字积分源程序
只看楼主 加入收藏
张晓伟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
求数字积分源程序
大家好!急需数字积分方面的源程序,请大家给予指导!
搜索更多相关主题的帖子: 积分 数字 
2009-10-26 10:12
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:20 
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
class F
{
public:
    virtual double operator()(double x) const=0;
};
class Fun: public F
{
public:
    double operator()(double x)const
    {
        return log(1.0+x)/(1.0+x*x);
    }
};
class Integ
{
public:
    virtual double operator()(double a,double b,double eps) const=0;
};
class Trapz:public Integ
{
public:
    Trapz(const F &pf):f(pf){};
    double operator()(double a,double b,double eps) const;
private:
    const F &f;
};
double Trapz::operator()(double a,double b,double eps)const
{
    int done(0);
    int n;
    double h,Tn,T2n;
    n=1;
    h=b-a;
    Tn=h*(f(a)+f(b))/2;
    while(!done)
    {
        double temp(0.0);
        for(int k=0;k<n;k++)
        {
            double x=a+(k+0.5)*h;
            temp+=f(x);
        }
        T2n=(Tn+h*temp)/2;
        if(fabs(T2n-Tn)<eps)  
            done=1;
        else
        {
             Tn=T2n;
             n*=2;
             h/=2;
        }
    }
    return T2n;
}
void main()
{
    Fun f;
    Trapz trapz1(f);
    cout<<"TRAPZ int:"<<setprecision(7)<<trapz1(0,2,1e-7)<<endl;
 
}
这个程序是求一个函数的积分

Anything is possible!
2009-10-26 12:47
快速回复:求数字积分源程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020311 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved