QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2865|回复: 0
打印 上一主题 下一主题

龙贝格求积法源代码,效率很好的

[复制链接]
字体大小: 正常 放大
maleesky        

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
( N/ L" |- Y( ]/ T6 i' {0 _& Q; w  m6 t8 l, C6 s

1 v6 ?0 H) I$ E. _- M6 j//////////////////////////////////////////////////////////////////////% o" A& u" {+ r) E: l2 b
// 龙贝格求积法
: h# P" g4 q* i/ N7 ^' Z5 i//
% }# q! q+ b. `// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x), U3 e4 q  h# [! w( Z
//9 S% o# d! R: W+ v2 W
// 参数:3 G$ i* R3 e' c2 s/ y5 |3 p/ U" S
// 1. a - Double型变量,积分下限0 m+ O$ H- U4 S  j
// 2. b - Double型变量,积分上限,要求b&gt;a7 B! H- k; o1 N% y
// 3. eps - Double型变量,积分精度要求1 u7 G9 O4 D! x- A
//
; w4 I& M  D3 i5 b// 返回值:double 型,积分值
  E) A1 h6 E: O& d- G//////////////////////////////////////////////////////////////////////4 D( x1 a# G+ l
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)( a3 R0 ]5 e2 x4 W7 L# V
{ - l" x$ V& _: `% G7 B4 Q  T
    int m,n,i,k;$ ~* L1 {! F) ?2 `
    double y[10],h,ep,p,x,s,q;</P>8 ]) n# A; Q6 u2 C' r% U; w4 g
<> // 迭代初值
, C3 S8 F" s( j8 m    h=b-a;1 V% y; }2 G: c7 \* K" \1 g. ~
    y[0]=h*(Func(a)+Func(b))/2.0;2 u' g; B7 Q9 d9 O. q# d, P. F
    m=1; + x& T. z2 `7 V/ M" C
n=1;
8 q, u  g; ]- x% e, r' z" } ep=eps+1.0;
* C  G8 y2 e. ~    # [. W& ^3 U6 n2 V, m  |5 l5 \. y0 B0 Q
// 迭代计算7 J  d% I# c4 X$ J- z" U
while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))! K8 a0 s4 ]. e5 M
    {
! Z- s) P5 S4 y* t; _  p=0.0;
; N7 A; D, f' ~3 @6 |; Q        for (i=0;i&lt;=n-1;i++)
% I- }7 B$ M; n        { 4 ~* s9 Q' K8 C4 K
   x=a+(i+0.5)*h;5 V3 P( z# W' ~+ Q& z
            p=p+Func(x);
3 h4 z. q1 j9 L4 ^6 e6 n+ y3 C        }
$ A' Q9 Y  E" W3 H" F1 {4 G/ R: r2 y        8 ~  }& i3 y3 E$ o. R* t' d
  p=(y[0]+h*p)/2.0;
! h4 H+ a9 H) z5 A. [        s=1.0;
: }3 U- i$ ]" d+ }( k1 L; `# K        for (k=1;k&lt;=m;k++)  A" L  v$ k; U+ K5 r
        { 2 z9 N2 a  p$ C. h( Y* o- w( z7 v4 n
   s=4.0*s;$ }( i" B7 F7 O  E* I3 ?9 |
            q=(s*p-y[k-1])/(s-1.0);
: F: c! N; j! j$ o1 J: |3 K            y[k-1]=p; p=q;# x! }) b6 ~. p& ^
        }</P>
# R/ R+ `; f, z- Q' u+ K<>        ep=fabs(q-y[m-1]);0 Z& p3 e" ?8 A. l
        m=m+1;
$ s5 [# P3 Q8 f  y[m-1]=q;
$ y% S0 U" x, ?& J, r8 e  n=n+n;
5 _, G3 i4 G: \) N  h=h/2.0;* [. c7 w1 N! u8 n0 f
    }
" Y# L! Y( P% Q   
; `- n( K; f# A* w* [; k return(q);: \* d& b7 h' A: Q  d
}</P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-10-24 03:00 , Processed in 0.290949 second(s), 51 queries .

回顶部