QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的' E. ?3 N* P+ J! o  y0 ]! p1 g

) m! U' `' Z' x( k) ?7 ?! E3 `2 b( z% u8 G
//////////////////////////////////////////////////////////////////////: r: ?" o2 y6 \+ w6 A* ?$ B4 N
// 龙贝格求积法
0 V7 T1 M5 C" C& f9 A1 ?6 T//4 F7 X8 d) w1 R& h" H
// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)  R: k, L& o! }' k. D7 |
//
. G. a5 j; K, t: M4 W// 参数:
) y3 r+ t9 \: }. M// 1. a - Double型变量,积分下限
7 {# G0 C3 M/ a7 k// 2. b - Double型变量,积分上限,要求b&gt;a0 S% }9 q! A, e5 c7 ]7 V6 S
// 3. eps - Double型变量,积分精度要求
) v1 ^0 P; W  C' z& b: k//( [" q0 C- y5 X5 o) u# r
// 返回值:double 型,积分值
1 t9 j3 W- I  c0 m7 @//////////////////////////////////////////////////////////////////////5 j+ v5 y% E, h: r" q
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)* Z) i& J1 V) u2 A+ E) D
{ * ~+ a. a8 ^6 K8 Z( m3 ~4 u
    int m,n,i,k;
, B' q( [# T. A: W; n    double y[10],h,ep,p,x,s,q;</P>
  ~5 K5 P9 I, v! A" n<> // 迭代初值
1 _. y$ R7 \' R% n; l. Y    h=b-a;
9 K, z/ B3 w. _, ]    y[0]=h*(Func(a)+Func(b))/2.0;  ?4 C# U/ |! t# E
    m=1;
4 }( u3 n% w2 ^, E; Z n=1; / b- ?$ _! D9 Z
ep=eps+1.0;$ ?- d' \; a/ O8 m
   
* P4 T3 w2 I! o3 Y. I // 迭代计算5 C) e2 ]& Q6 y, \
while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))* J& O7 g7 J4 r; P
    { 2 A# y4 T) z( W1 ?/ E) O4 s
  p=0.0;0 @" h" h, o/ }' W+ A+ S  _! y
        for (i=0;i&lt;=n-1;i++)& x: @6 v$ L* c6 w
        { . H2 q% }2 ]8 g
   x=a+(i+0.5)*h;# i4 q* C2 k" |/ c- S
            p=p+Func(x);
5 @8 K/ r- t* ]5 y* {. g- w  I8 b3 J        }0 l1 ?& O' g9 _, N6 L, O; u# g7 a4 K
        % S0 D7 h' t, K  M1 T
  p=(y[0]+h*p)/2.0;
2 Y0 P* O' a2 I9 G' z3 B9 q7 `        s=1.0;& h) R/ M# {8 O
        for (k=1;k&lt;=m;k++)
; X  t7 U. I. \) ?  v# c! u( g- j9 z; B        { ( R4 N( {3 N4 P/ l
   s=4.0*s;
) Y$ Q+ ?- T# w. E& d  T/ d- U  d            q=(s*p-y[k-1])/(s-1.0);
, I% N+ c5 E: K% {  N2 W            y[k-1]=p; p=q;, S' j4 @3 E6 D- h
        }</P>
$ n1 k6 ^7 r5 B7 P<>        ep=fabs(q-y[m-1]);  d' }  t8 u1 L  x. t
        m=m+1; 7 a8 `9 r# L+ a8 Z. x
  y[m-1]=q; - n  |) s) }$ a8 b+ Y9 X
  n=n+n; : |7 g4 s; [* z% l" t
  h=h/2.0;
8 [; R2 n" F# @    }6 l9 o* E$ C: Z! ]1 t& R
   
5 M/ J( A( J7 V return(q);
% p! H+ j6 [- @/ ^& N1 z}</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-27 08:26 , Processed in 0.590617 second(s), 52 queries .

回顶部