QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |正序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
4 c* U. r6 M$ z- Y* v
  U. ]- y# q, y4 R& l/ Q
3 C3 B/ J# k- p+ F//////////////////////////////////////////////////////////////////////
+ R& m7 Z/ P& k' D, E// 龙贝格求积法0 s" }# c  x& j+ D
//
+ k: i" s  e) Z$ }) i2 m// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)3 c' y2 X! \" {* y9 t
//
  ?) J& ]5 A- L1 \8 f0 b5 A// 参数:
  t7 v1 b9 O' s) J! M% l8 s0 H6 E3 M// 1. a - Double型变量,积分下限* K) }# T) [+ ]5 B0 l0 u
// 2. b - Double型变量,积分上限,要求b&gt;a' p+ S0 t% r& D0 }. X
// 3. eps - Double型变量,积分精度要求6 h- A6 L  P' u( m/ Y
//
: p9 g/ H( W( K- G// 返回值:double 型,积分值% u9 B; U  X( d& e0 p+ _0 b
//////////////////////////////////////////////////////////////////////7 y2 Y0 o3 z+ D7 g) A
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)
/ H! m& S; R6 V- f{ * ~9 \* o% E2 u% T4 k
    int m,n,i,k;% Z" F9 e8 I- [+ s% h
    double y[10],h,ep,p,x,s,q;</P>
# M/ ?! M8 x) e$ Y$ R6 }( U/ N9 q% W<> // 迭代初值
5 ]" V4 ?) d- I5 I& V5 q+ q    h=b-a;8 o1 |9 R. h+ x( U* M
    y[0]=h*(Func(a)+Func(b))/2.0;0 c+ M0 X! ]' |. n$ I/ E4 h
    m=1;
- a% ]$ @6 [( c  p: ? n=1;
* G9 ]6 @) i  K3 B. O ep=eps+1.0;
( W, F) P/ f$ [7 w/ c4 z    9 s* b6 V4 l/ x) _2 y* s" A
// 迭代计算
- m" ?( Y* n2 z6 F while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
& w3 ^* ]$ X3 W    { , N/ _# }$ D9 H9 F
  p=0.0;
3 n  u8 J( T3 N6 _1 |& |        for (i=0;i&lt;=n-1;i++)6 b" c1 |' m; d' o" K/ j
        { # R% c4 t3 O4 R5 n
   x=a+(i+0.5)*h;
3 t7 l4 }' u& L            p=p+Func(x);3 S" @& C+ B% a9 u* b# ~- p
        }
; m9 D6 E4 [! p3 J3 k        : }# k# \) ?' ?5 R% G
  p=(y[0]+h*p)/2.0;
3 ^9 p) W  `) _5 c7 k. H1 {! R        s=1.0;
* `! U/ _8 V' w        for (k=1;k&lt;=m;k++)
' w, e) v$ x4 b3 g$ q9 H        {
8 }' B& I8 n5 r# F# z3 s/ S   s=4.0*s;5 C; W) y0 n2 H- f1 ?; }
            q=(s*p-y[k-1])/(s-1.0);! u' u8 l8 B" o8 b7 {3 G+ t
            y[k-1]=p; p=q;/ |& h0 A$ [8 e6 _3 W8 {6 z9 }
        }</P>. N! ^- R9 c  E/ y! O/ F' e
<>        ep=fabs(q-y[m-1]);
$ W) D4 S" R& A9 ~9 Z( i% P: ?        m=m+1;
) B7 [9 J0 E6 |6 L  y[m-1]=q; 7 h7 p6 L; r& F, F  t  X& Z
  n=n+n; 2 i6 _" O. @" a! Q; _
  h=h/2.0;/ |+ }2 v' P& s) X, M: W, N
    }
; k* G# g2 f! j" E   
  T/ L9 V5 m' P; p8 S8 x* @" \ return(q);
% T: M; L9 j# a1 r' o}</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-25 04:08 , Processed in 0.308154 second(s), 52 queries .

回顶部