QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的" S" M7 ~$ l' N, {

9 N+ a/ R& A0 H8 S1 V
8 \% \& Q1 j/ U3 z7 x8 n//////////////////////////////////////////////////////////////////////  [) t7 F' S$ K' w$ ?8 y
// 龙贝格求积法7 s! Q  r( H3 g9 M- ]
//: K9 |* ?3 _3 S* S# {# p0 l7 {1 P- Y
// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)
7 A! I3 I6 b' _( q//
9 ]! F+ @& T) }) Z: j// 参数:
3 t0 _' K+ H0 Q% `( i// 1. a - Double型变量,积分下限
; I- e2 y9 Q, c3 F1 t// 2. b - Double型变量,积分上限,要求b&gt;a
! }( ^2 |: Q/ D// 3. eps - Double型变量,积分精度要求, r" Y4 y8 X; S6 ~
//
$ x$ [5 ~, [- X2 @+ V# Y// 返回值:double 型,积分值# N/ I1 J3 C# i2 E4 i0 G
//////////////////////////////////////////////////////////////////////
" T+ o/ U0 z* H# v9 p/ u1 idouble Integral_Romberg(double a, double b, double eps /*= 0.000001*/)
! _. d+ j" y9 M" n{ / l1 N1 o1 E& ~" z
    int m,n,i,k;
  H! r' D9 j9 F; S/ L    double y[10],h,ep,p,x,s,q;</P>
5 W7 B/ r  X1 t4 Z<> // 迭代初值
  m5 [: C0 [4 b6 E" p% g8 @3 o* j    h=b-a;
0 H0 F" K0 |/ G6 r+ g3 W  O* ~; E    y[0]=h*(Func(a)+Func(b))/2.0;
9 V( B* |2 S$ C" i$ V6 H# I    m=1;
* }/ R" S7 P4 _/ P5 [% q n=1;
% v3 _, ]( `' u( F ep=eps+1.0;
6 v& C+ a7 x2 W2 f+ C    " ?3 V4 V% Z5 h$ }, p% _' R/ \7 ~
// 迭代计算
) H+ ^1 U9 t2 e while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
) m2 k( k* L6 N2 E    { / o( G& i  n5 W" ^# e* h0 R
  p=0.0;) ~: ^7 d' E2 _: N- {! M
        for (i=0;i&lt;=n-1;i++)4 v) U0 |* w6 G' D& r9 E" ~6 e2 n" X
        { 0 m) Y  |9 E, Z* h+ p9 K" M' @
   x=a+(i+0.5)*h;3 z7 i& M: R" G1 {% n
            p=p+Func(x);' j& |1 W" T0 t* M% T
        }
/ X& _7 U7 Z9 m/ _$ A9 }, L5 {        
, o  Z1 ^# g+ Q! j( w, M) x2 C5 h" @) u  p=(y[0]+h*p)/2.0;) }' G# }# r) {9 d- I4 R5 G: `
        s=1.0;
5 U4 ~7 D4 {( O        for (k=1;k&lt;=m;k++)
+ h- n1 E; {8 C" }. W        { " a9 ^( I$ j9 Y
   s=4.0*s;% c# P: r# ?9 _6 O4 n
            q=(s*p-y[k-1])/(s-1.0);
+ A* Z/ s, W, V( B2 N& Q  j; R            y[k-1]=p; p=q;) z3 X- o4 }& f6 R, K# N, {- J
        }</P>% ^9 B* n9 k  z1 j
<>        ep=fabs(q-y[m-1]);
2 G  J9 r* A* j6 V5 K- ]6 s5 T        m=m+1; , a9 E2 V9 l% M/ u" L$ f. _
  y[m-1]=q; " r) g, k+ p/ |" f, u
  n=n+n;
1 R' q: @0 _/ G% C& D6 G. ^) u5 |7 t* s  h=h/2.0;
( L2 |4 h% W/ {" @% l) c# O: M    }- l+ W8 i7 P) F4 w3 d$ u
      H  j- H) M* r7 R* S& e  F9 c" X
return(q);
5 F) m, O8 n0 R$ u$ [+ s+ [}</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-7-21 01:39 , Processed in 0.461935 second(s), 53 queries .

回顶部