| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2188 人关注过本帖
标题:高斯勒让德积分提高精度的问题
只看楼主 加入收藏
bubuluan
Rank: 1
等 级:新手上路
帖 子:10
专家分:2
注 册:2011-5-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
高斯勒让德积分提高精度的问题
为了做一个程序,需要求解一个积分,想到用的是高斯勒让德积分,下边的函数是从别的地方弄到的。
我自己也试了一下,如果仅仅用高斯勒让德积分直接求想要的积分,即使弄到了15阶,还是精度不够,下载的这个函数里面用了一个方法把这个精度提高了。
可是没看懂,请高手帮忙解惑,谢谢
static double fk(k,f)
  double k,f;
  { int m,i,j;
    double s,p,ep,h,aa,bb,w,xx,g,q;
    static double t[15]={-0.98799251802067,
  -0.93727339240030,
  -0.84820658341075,
  -0.72441773136004,
  -0.57097217260858,
  -0.39415134707756,
  -0.20119409399743,
                  0,
  0.20119409399743,
  0.39415134707756,
  0.57097217260857,
  0.72441773136009,
  0.84820658341064,
  0.93727339240040,
  0.98799251802063};
    static double c[15]={0.03075324199563,
  0.07036604748857,
  0.10715922046708,
  0.13957067792619,
  0.16626920581700,
  0.18616100001556,
  0.19843148532711,
  0.20257824192556,
  0.19843148532711,
  0.18616100001557,
  0.16626920581698,
  0.13957067792617,
  0.10715922046709,
  0.07036604748844,
  0.03075324199577};
    m=1; g=0.0;
    h=fabs(f); s=fabs(0.0001*h);
    p=1.0e+35; ep=0.000001;
    while ((ep>=0.0000001)&&(fabs(h)>s))
      { g=0.0;
        for (i=1;i<=m;i++)
          { aa=(i-1.0)*h; bb=i*h;
            w=0.0;
            for (j=0;j<=14;j++)
              { xx=((bb-aa)*t[j]+(bb+aa))/2.0;
                q=sqrt(1.0-k*k*sin(xx)*sin(xx));
                w=w+c[j]/q;
              }
            g=g+w;
          }
        g=g*h/2.0;
        ep=fabs(g-p)/(1.0+fabs(g));
        p=g; m=m+m; h=0.5*h;
      }
    return(g);
  }
搜索更多相关主题的帖子: double 
2011-05-10 14:55
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:5 
这种专业性太强的问题
俺只能帮顶了
2011-05-10 14:56
bubuluan
Rank: 1
等 级:新手上路
帖 子:10
专家分:2
注 册:2011-5-10
收藏
得分:0 
额,这个专业性不是太强额,我就把数值积分的地方弄出来了,就是求解一个积分的函数,积分是椭圆余弦函数积分
不明白程序中ep那个是怎么控制精度的,好像是用一个循环逐渐提高精度,但是怎么也不明白。
2011-05-10 14:59
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
收藏
得分:5 
专业啊!c就是那么精!

楼上,楼下的一定要幸福开心哦!
2011-05-10 15:17
bubuluan
Rank: 1
等 级:新手上路
帖 子:10
专家分:2
注 册:2011-5-10
收藏
得分:0 
回复 4楼 w123012306
额,高手指点下吧。。。我说的不明白是不,主要就是有个提升精度的循环不懂,别的地方不重要
2011-05-10 15:23
plm3642833
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2011-5-10
收藏
得分:5 
路过看下。。。
2011-05-10 16:28
bubuluan
Rank: 1
等 级:新手上路
帖 子:10
专家分:2
注 册:2011-5-10
收藏
得分:0 
木有人会么。。。。
2011-05-10 22:34
快速回复:高斯勒让德积分提高精度的问题
数据加载中...
 
   



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

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