首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 数值分析中的定积分求pi
【标  题】:数值分析中的定积分求pi
【关键字】:
【来  源】:http://blog.csdn.net/fcesndgn/archive/2006/12/17/1446151.aspx

数值分析中的定积分求pi

# include <math.h>
# include <stdio.h>
# define L 9
double f(double x)
{
    return 1.0/(1.0+x*x);
}
double fc(double a,double b,double (*f)())
{
    int m,n,i,k;
    double y[L],h,ep,p,x,s,q;
    h=b-a;
    y[0]=h*((*f)(a)+(*f)(b))/2.0;
    m=1;n=1;ep=1.0;
    while((ep>=1e-10)||(m<=L)){
        p=0.0;
        for(i=0;i<=n-1;i++){
            x=a+(i+0.5)*h;
            p+=(*f)(x);
        }
        p=(y[0]+h*p)/2.0;
        s=1.0;
        for(k=1;k<=m;k++){
            s*=4.0;
            q=(s*p-y[k-1])/(s-1.0);
            y[k-1]=p;p=q;
        }
        ep=fabs(q-y[m-1]);
        m+=1;
        y[m-1]=q;
        n+=n;
        h/=2.0;
    }
    return q;
}
main()
{
    double a,b,t;
    a=0.0;b=1.0;
    t=fc(a,b,f);
    printf("π=3.14159265358979323\n");
    printf("   %.15f",t*4.0);
    getch();
}
把一个新数插入到一个有序的单链表中:【上一篇】
C与面向对象设计:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Perl学习笔记(B)
  • 声明:P2P这个主题主要是因为项目需要整理资料
  • WPS 2005→打败Office(WPS 2005 试用手记)
  • Linux系统中的超级权限的控制
  • Yacc 与 Lex 快速入门
  • 一定范围内随机排列不重合的多个小球
  • ADS连接器使用手册
  • 了解IEEE 802.11x:选择适合你的无线网络
  • 总结:Cisco设备做流量监控的方法
  • 红旗加入国际 Linux 组织 推动其在中国应用
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.