QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的- N0 K# y) U1 X& j+ `

: f3 y/ F) S( i0 _
/ C, k" N) c' u1 h//////////////////////////////////////////////////////////////////////4 h5 o6 s* z$ h' x" H% O
// 龙贝格求积法
* k' D! Y) M, m0 k* i//
5 x" d4 u/ U; ^7 }  b  I* F// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)# O! @2 D% r1 r% C: B
//
7 }! t! Z, @1 C6 j// 参数:
7 G& T/ ?8 _9 L/ e7 a5 r+ A// 1. a - Double型变量,积分下限
2 t% K' v7 p! t0 t8 }. o// 2. b - Double型变量,积分上限,要求b&gt;a
% A4 j' d5 O- P; F' R// 3. eps - Double型变量,积分精度要求/ h: e7 H! `. S( |( O3 Q, M" K
//, D, {; _6 y+ `6 B6 W, s2 w; L
// 返回值:double 型,积分值/ I' R( x# q; s# G; q8 W: |" K/ C
//////////////////////////////////////////////////////////////////////
% Y$ t) M5 K5 K+ ~, U; Tdouble Integral_Romberg(double a, double b, double eps /*= 0.000001*/)2 O7 @8 G6 N! B$ x; l% K+ Y$ [1 V3 i
{ 5 e! M5 d) m: }. B3 q# m8 n
    int m,n,i,k;
; m  ~$ ?/ e" ^# M1 ?, V2 W; S    double y[10],h,ep,p,x,s,q;</P>0 g; z1 U! c$ Y
<> // 迭代初值: e# C. k  ^: N# _8 L
    h=b-a;" j( n3 o4 e8 A3 i
    y[0]=h*(Func(a)+Func(b))/2.0;
- F" M- e% N8 X3 y    m=1;
1 i0 z( Q: F4 ~- s; ?: `5 Z* | n=1;
0 o7 F- n3 T3 }% e  u+ i( ` ep=eps+1.0;
/ i  v( k0 e  g4 S    3 H8 t5 }; ?! W7 b6 O, b7 y
// 迭代计算
3 W6 i  v0 w" R* J while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))* V9 T8 _0 o, t, o9 [& L/ r$ c
    {
* D% n9 ]! j* |2 W+ J) R  p=0.0;
8 g/ |' n6 ]/ `. }# F        for (i=0;i&lt;=n-1;i++)' J- j% c6 L  j  [0 _' X
        { 1 G' s  B. t3 e! Z0 T8 f
   x=a+(i+0.5)*h;, c" V9 I! Z$ m: c8 o2 U6 R  S
            p=p+Func(x);' W# R) s' S$ m+ C8 s0 f
        }; W+ w2 J& H6 K8 K8 t# e
        ! g& r0 }4 g* Z- i
  p=(y[0]+h*p)/2.0;2 w: ^4 ]1 ]. Y* }* T( Z* l7 ?3 _
        s=1.0;
& Y" {6 O. m5 X* n, x        for (k=1;k&lt;=m;k++). O  ^+ f; s4 a  l+ r5 A
        { - [( g$ \& j4 @0 h% L2 Z0 U& A+ G  ^& E
   s=4.0*s;
% Q# v* ^2 z+ L" l& z* T            q=(s*p-y[k-1])/(s-1.0);: ]- U" Q0 i; s2 e, Q# k3 \( b
            y[k-1]=p; p=q;4 R: l. W5 m0 p5 j( i& v
        }</P>
) R# J% k* X1 U4 L" I! e' F<>        ep=fabs(q-y[m-1]);
) V! H4 a8 O, a3 h8 R        m=m+1;
2 X/ @) y0 P8 |$ U* h6 d7 Y. B) h  y[m-1]=q; / c5 ]) G6 O. T! w3 B) o% P$ `8 F" V! C
  n=n+n;
! l( J" c* w7 h% K$ l! k  h=h/2.0;; I9 F) v) u- x0 ?( ^% o
    }! @* P9 A. g) A+ x3 R
    - m/ N% |' t/ \7 Z3 R
return(q);
3 j$ f2 o3 ]% 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-6-11 16:46 , Processed in 0.396774 second(s), 51 queries .

回顶部