QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
' U3 x5 F* k) b- R! K  d$ Z  A4 Z% t. u5 ^

$ l2 H$ O9 C1 {; K. o# x1 \//////////////////////////////////////////////////////////////////////5 [' z- s; ?1 B' d& ]8 L" l* v6 s
// 龙贝格求积法& W; c2 g: B$ E! N
//
0 j: m4 |6 W. k2 T/ p, D" |// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)
3 i! ~) H6 V( H5 c& H" Y, B//
5 o) k8 S5 Q9 `1 X% r// 参数:
$ k! o% o3 M, G// 1. a - Double型变量,积分下限
6 l3 {+ C. W6 ~$ B: p3 B// 2. b - Double型变量,积分上限,要求b&gt;a- [8 M, T: t( \2 I  f
// 3. eps - Double型变量,积分精度要求! P- P4 U& n; T$ _6 j
//
( M" p2 t" {3 L! R  D// 返回值:double 型,积分值% w/ |  w6 J" s; r: L  h: r" O
//////////////////////////////////////////////////////////////////////
$ Y3 r9 H0 ?' f8 \0 Tdouble Integral_Romberg(double a, double b, double eps /*= 0.000001*/)
5 f7 w" K4 Y0 M' u{   o" @( s. Y/ Z
    int m,n,i,k;
! }( X( s' N5 K' Y    double y[10],h,ep,p,x,s,q;</P>
9 \& V* A* \! I2 S, W" R9 m<> // 迭代初值
+ E0 R, L/ P2 w* g6 E    h=b-a;' A4 |8 x& M& n, ]5 {& C, ~
    y[0]=h*(Func(a)+Func(b))/2.0;
; f3 o( _  v  o    m=1; 4 Y! k* J: g+ e& O1 E: n
n=1;
: N0 n0 y+ U7 L6 H8 M7 m1 [ ep=eps+1.0;2 J6 ]- u2 x  p3 e: Y' I
    8 V5 [* ~& o: B% N+ S4 G
// 迭代计算
, X; x9 u0 m: z$ f7 P; L" _) Q while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
. b2 r  t  n, c) X    {
+ f# @; `# N2 J& P& o4 z  p=0.0;
1 z; O+ D- g0 x3 ]/ {1 o9 ~+ _- ~        for (i=0;i&lt;=n-1;i++)
' }/ [- z/ }0 Z( {3 ~# v; s        { 8 m+ _! |9 D. J- y
   x=a+(i+0.5)*h;$ J. j' H7 S# t2 ?2 |
            p=p+Func(x);
6 W# d1 ?! h; ?# v        }
4 @, d/ x0 v" f% ?) @        3 u$ G, ]% \. C
  p=(y[0]+h*p)/2.0;
5 [9 ~' E! O. n+ |/ v  C6 v3 r) T        s=1.0;4 K5 e. `. Z: \8 ~
        for (k=1;k&lt;=m;k++)' i4 C7 t& Z+ ~' Z* W
        {
. m9 m2 L4 L: ]$ g' }   s=4.0*s;
9 t* B2 _% t6 k/ Y0 c6 h            q=(s*p-y[k-1])/(s-1.0);* U0 O2 [. d; c/ \* _5 {7 \5 V0 ]
            y[k-1]=p; p=q;& _1 x. s6 ]! `9 v
        }</P>0 V8 Y8 G4 e; k+ v& h+ d
<>        ep=fabs(q-y[m-1]);
. w( `6 @, ?* @8 h! J4 q        m=m+1;
; g' r8 s9 m" v) }1 k1 V  y[m-1]=q; ! V) h" ]" H' K- F. ^9 x$ `
  n=n+n;
5 O0 F2 x+ d6 P2 M% A$ k  h=h/2.0;8 x: s& T7 ~- ^, M( G& T7 E9 T
    }
* E8 V# L% J- [5 H/ E3 u$ j; m3 Q1 }   
3 t( H* Q, i( x) I1 {9 p3 R, T return(q);' D/ \# ?) p, D: d7 N
}</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-26 09:05 , Processed in 0.371023 second(s), 51 queries .

回顶部