QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
0 E% [8 G) S* _5 o9 J! ]2 w7 I; K( f1 n

7 J! E' W) v; c) q//////////////////////////////////////////////////////////////////////7 A, V  }9 S- v
// 龙贝格求积法
+ ~: Z$ q* y# A6 s& ?! S* ]3 R4 w, F//
- ]2 g1 n- b: J% ]// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)
( ]; \4 I  B; W' S: B/ ]//
7 d  L' q# O, N0 |3 o4 t# n// 参数:
( J* J" l1 e  B/ G+ Y) l/ }// 1. a - Double型变量,积分下限" n+ S- ~/ Y: A" S1 f& q
// 2. b - Double型变量,积分上限,要求b&gt;a
) r1 Q5 N  w/ }/ B' d: s% f// 3. eps - Double型变量,积分精度要求
$ `/ A3 Y; b( m% }# V  J//& e! |, q7 C+ Q, ~4 Z( t& I$ F6 K
// 返回值:double 型,积分值' @6 H, J% ^2 N' z+ _/ z2 P: B
//////////////////////////////////////////////////////////////////////
/ m9 G" K5 P# r" Z1 [' k$ Idouble Integral_Romberg(double a, double b, double eps /*= 0.000001*/)
; g& y+ Y) W: c, t{
% |* r+ }" j  |7 }0 B$ {" C/ ?    int m,n,i,k;
* M( z  M  [. c: q    double y[10],h,ep,p,x,s,q;</P>
- U% E$ S( X7 i/ I$ L<> // 迭代初值* F, e/ T1 P  [1 o& f2 l
    h=b-a;7 }9 j) q/ O; p9 U( Z; @% n
    y[0]=h*(Func(a)+Func(b))/2.0;8 v3 C* @! C/ P) O" f3 e
    m=1; " J+ l& g& G; e0 o* [: n; |$ R* _
n=1;
( p6 d0 O- o" b) k; U  y- j ep=eps+1.0;2 a# U- _7 T$ v( r
      u' O/ |- k( u. T& w" D) L
// 迭代计算
5 h- N# L% V. S1 T" u while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))& X4 F6 [0 M9 x+ J
    { ! {. A$ E& _9 ~5 m& I6 Q5 O6 M
  p=0.0;) U/ [6 E$ X' \% G7 B9 j7 e
        for (i=0;i&lt;=n-1;i++)
7 u2 n+ s) _+ q% h  s# E        { 8 y1 l; G' \: y  l8 M2 w% n
   x=a+(i+0.5)*h;9 N" {7 R0 i. z8 F# o) P6 |
            p=p+Func(x);
( F( u9 n- R7 w. l/ }6 z8 _        }  h% l6 R/ F# v# {7 d
        ) ?/ U* Q. s: c8 I* ?
  p=(y[0]+h*p)/2.0;
; P( i" a; ^8 A7 x2 \6 @2 S        s=1.0;
" l3 O' c% y/ g        for (k=1;k&lt;=m;k++)
( o4 r8 }' {- U$ n$ |' M/ G        { ( {, F/ r% F, T: A! u  O
   s=4.0*s;0 ^, g1 D5 F6 M8 x! H$ n  B3 Y/ G
            q=(s*p-y[k-1])/(s-1.0);
' T3 R0 ?: V) z5 S0 I' X            y[k-1]=p; p=q;
0 B. i$ Z" U# K        }</P>* d4 n" z- G% i# s  J( ?: c) O
<>        ep=fabs(q-y[m-1]);2 _! l  W- V- {$ i8 b* _
        m=m+1;
9 ~% F+ h! t) I' d4 U1 @4 U  y[m-1]=q; + I6 ]$ b/ J* F: e& n9 o$ Q
  n=n+n;
% Y5 T3 _2 g, `  m. [  h=h/2.0;( @! s1 l) z3 @3 ~& O1 }  h7 n
    }
- {# Y2 H/ P2 k5 J$ i4 j( Z; F   
+ T# ^! I' O$ `# A- O+ P* _; B) q return(q);
( ~6 j; [* X! c& ~. z  \" g}</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-4-20 09:55 , Processed in 0.347781 second(s), 52 queries .

回顶部