QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |正序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的. U/ l3 b  y6 W) X& F# F2 G
5 i- E9 ^4 y% [+ d9 Z# l% K, s

$ r! @$ p0 i: b/ p' C8 {//////////////////////////////////////////////////////////////////////
8 w5 r4 d4 U* x* h5 c// 龙贝格求积法
9 L% B/ g6 @' q1 l1 \//
5 K) [1 g1 X9 _// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)* A$ I  \0 i- b0 ^
//1 Q3 h1 b" }1 k
// 参数:8 {. Z- T8 L0 v! B7 N( v* v9 ?
// 1. a - Double型变量,积分下限
4 f  f4 ?. y4 R// 2. b - Double型变量,积分上限,要求b&gt;a
( e0 q+ M0 g1 y) j// 3. eps - Double型变量,积分精度要求
! C0 O  H6 j; s3 r4 X9 O3 @7 C//# U  Z& t( n" @" s5 i+ ]
// 返回值:double 型,积分值6 l4 }* r) y3 q8 H) }+ l! d
//////////////////////////////////////////////////////////////////////
$ r2 ]' d/ C1 n' T: ?double Integral_Romberg(double a, double b, double eps /*= 0.000001*/); O) ^2 @# A. _% A; c
{
2 l1 c. W& ~* y( q    int m,n,i,k;
8 T: s) @0 A5 V! M: y    double y[10],h,ep,p,x,s,q;</P>
3 R# V0 ?- v* \/ `5 G* {. V# @) ]<> // 迭代初值
' X3 @: D! K- p7 D# Z! i  \    h=b-a;3 b# V6 w9 i- s/ `) g% ^7 ?6 a
    y[0]=h*(Func(a)+Func(b))/2.0;
5 f0 ]  ~( n- w/ r" o    m=1; ! ~- L- z0 N; b# p8 V; {* I+ c8 X/ S
n=1;
; x; n0 ?3 L! x, }6 x ep=eps+1.0;
) `# v! I, N( C# ^0 m    0 ^' v  k4 d" p- }
// 迭代计算3 d' z, d5 E/ X7 `
while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
+ Q% m  q2 a! r4 V' {0 ?! l    {
) ^4 {9 e" q1 ?3 R7 O& Y4 v4 Q  p=0.0;
: `0 s% ^# t7 v  }9 L7 ]6 I        for (i=0;i&lt;=n-1;i++)& W, u0 g: M* s/ d$ \
        { * J& C4 n& ?2 K
   x=a+(i+0.5)*h;" h3 q4 r5 v$ z6 @6 i
            p=p+Func(x);
" P. z5 }$ W" N6 S        }6 S" ~- M: f3 Z0 d' F
        . h/ e' v& g, [9 R  S
  p=(y[0]+h*p)/2.0;
" x6 l, h* |" ?2 |. p        s=1.0;* {: ?) N0 |9 |
        for (k=1;k&lt;=m;k++)
8 }/ b! g% r8 g7 A0 ?- G        {
' C7 F5 i  G6 c* i; g( `4 D$ W- ~   s=4.0*s;
/ _' y, n: ]2 }3 @            q=(s*p-y[k-1])/(s-1.0);
% O6 J) |: k3 S; o            y[k-1]=p; p=q;
3 f$ H( h4 Y* g) f2 [3 b& P        }</P>8 `3 h' v, t  I
<>        ep=fabs(q-y[m-1]);0 S8 i% Z4 G. ]/ b3 p5 U" z
        m=m+1; , l& s/ V  c. F/ \! U3 f7 z, R7 A/ J
  y[m-1]=q;
' s1 O; U, i4 L  n=n+n; 9 f) a( F; @  }3 w8 R9 X' C
  h=h/2.0;( W8 J1 }( ~2 s0 g
    }2 e: i; L, a4 S: I8 o, z1 g5 k6 H
      u" T) z4 j5 C) E( E+ F$ @  ]. D+ d
return(q);
" O0 `) L/ D! _6 }3 @% 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-11 22:22 , Processed in 0.584149 second(s), 53 queries .

回顶部