QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
; R) K) p0 d" {& ~0 ?4 u8 f# }7 S2 r3 E4 d
. r! X- e) c2 `" j
/////////////////////////////////////////////////////////////////////// C% z! F+ x; K5 @
// 龙贝格求积法
; S3 c( H: J7 e' }& u- N8 `) f- z- [//# h+ X) ^% V0 i' ?( w. g" N" ]% V
// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)
! r3 ^6 e8 ], N. U//
# B0 v! ]  Z9 x! N' Q8 X// 参数:, v- u" E0 ]: }& h9 X$ }6 d: Y! G
// 1. a - Double型变量,积分下限
4 w6 Z" m2 i- _// 2. b - Double型变量,积分上限,要求b&gt;a
9 e( I; W) j( V* v4 C% Y: q+ H3 V// 3. eps - Double型变量,积分精度要求
- m- b+ m& h" M' L//
: c! ^1 ?* P% W+ c/ L  Z- u// 返回值:double 型,积分值
" {0 L  P( u! s4 s9 n1 g/ |//////////////////////////////////////////////////////////////////////# p* ^4 s5 i) E: V9 Z( o' S
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)# u( Z& x1 C# s: ~8 L( Z& S+ }5 b5 g
{
, D0 i; Y- ?3 ^; c( Z+ V# x4 o: ?& ]    int m,n,i,k;
4 |- }# A, y+ i% i: Y    double y[10],h,ep,p,x,s,q;</P>' a; R8 o" S; r: X4 \: X7 |
<> // 迭代初值, m0 h; D- K$ b8 [/ E% _1 x0 B
    h=b-a;0 {! I4 O$ M& A
    y[0]=h*(Func(a)+Func(b))/2.0;& A: Y3 u& W) h# I
    m=1; 5 ^7 `1 a0 y* `6 R* ?4 ~
n=1; ( l1 j9 B- I: p1 }# h  o
ep=eps+1.0;
. y' ^/ d6 T1 B/ L   
0 L! ~$ x6 L+ Z // 迭代计算
9 M. f1 }- v6 G& R7 w. m while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
2 P8 g, @7 Q* x+ ]  y' W    {
2 v8 I/ W+ y( b" P. I' X' A  p=0.0;
2 a5 D( R; ?7 g        for (i=0;i&lt;=n-1;i++)
1 E% }+ X( b3 z        {
  c: @9 `& G. P) g# I6 s' p   x=a+(i+0.5)*h;( ~* B( b/ n0 u  d! M8 Y
            p=p+Func(x);7 n, o* E2 \. V# U7 p/ k, c1 J8 x8 O, Q
        }
  |9 ?* F  q) L& `& ], x        
$ a! v8 H/ P* l8 s6 C" W2 h  p=(y[0]+h*p)/2.0;9 c# R: {% ]/ B3 E# B: i8 f
        s=1.0;' s1 r" k* Z2 ]! @7 `
        for (k=1;k&lt;=m;k++)# ^, y* y+ j% I6 W
        { 9 d; F1 |: e$ Q, `6 S
   s=4.0*s;
) j. }& F: ]5 ?, V  `            q=(s*p-y[k-1])/(s-1.0);: y! c5 ?7 c# U" f: R0 g  Z
            y[k-1]=p; p=q;3 t$ `8 h' n9 v7 N0 h3 w6 f2 V, E
        }</P>
/ y  Z9 s1 d# P<>        ep=fabs(q-y[m-1]);  a( M7 T6 G7 P; N) }3 d0 V3 Y8 G
        m=m+1;
; ^/ w4 U& T9 P0 z  y[m-1]=q; % M7 X7 K) W/ m" g+ k
  n=n+n; % ]8 q5 C; H3 {6 Q, _; i
  h=h/2.0;. d9 L; u- H9 I
    }6 x/ E) h# m2 R# X% y* p+ L
    5 S2 d* n& T* ~& c; q& }
return(q);! B' ?4 v' i: u, i" G6 K, i0 Z: R
}</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-6-13 02:40 , Processed in 0.441346 second(s), 52 queries .

回顶部