QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
/ J: V6 s* a# S, v+ l6 D8 J5 a* Z* o9 O' N7 E; Z" r1 c

  U# R: y* S; V/ X7 `% l//////////////////////////////////////////////////////////////////////$ ?- h* K4 \' J2 S1 ~
// 龙贝格求积法
9 [/ B# X" H5 v) M3 _  ^//
6 e- t1 p: E* @6 s9 x8 B// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)! x' D1 r4 W5 C- d3 i
//
* B, n$ Y; I! @( ]// 参数:1 C3 N. {/ X: Q9 @. d0 o
// 1. a - Double型变量,积分下限
! }0 v! S. p. V" U7 s// 2. b - Double型变量,积分上限,要求b&gt;a% V$ C/ G9 G4 Q. H
// 3. eps - Double型变量,积分精度要求
* I" o6 X6 D! Q- v8 V4 b//9 y9 W2 a& a1 b3 ?' Q$ r
// 返回值:double 型,积分值* N7 v' M/ h4 W) k# y+ u
//////////////////////////////////////////////////////////////////////
) u+ X! v+ m! Odouble Integral_Romberg(double a, double b, double eps /*= 0.000001*/)9 l( G5 j/ W% z6 ^
{ % Z& E5 J' W! f8 W4 B- e
    int m,n,i,k;
& j4 {  Y8 F" ]9 H! i- V( V# g! F2 Q, y    double y[10],h,ep,p,x,s,q;</P>
1 c' r4 b7 j" _. E) x& g/ R7 b<> // 迭代初值
, h' E  c7 c9 L2 s3 D: t; O    h=b-a;
! c4 D! o) p9 |! i& u; A    y[0]=h*(Func(a)+Func(b))/2.0;
3 X6 F9 @+ k" t9 u, K* ?* T% [    m=1; 8 [. m  _* a+ q1 }
n=1;   a# Y: {! H% [5 |; U$ _9 m
ep=eps+1.0;% w( ~' R1 U% _% A
   
4 g' l3 P6 Z" F // 迭代计算8 X/ I# c; Q9 w/ d* G! m
while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))1 q' S' z5 ?/ V9 a6 F" ]: B
    {
1 y% }6 S$ _: [. U% t  p=0.0;0 l( k. S1 i9 U- M; }; E  q9 i
        for (i=0;i&lt;=n-1;i++)
, ^" h; v! @4 d5 i- K9 p: U2 I        { / }$ N+ V. H8 B$ C4 Y9 i
   x=a+(i+0.5)*h;9 H; A. G/ {! A: x9 y! H$ I
            p=p+Func(x);
4 f6 e* z' a: O- f        }
( A9 s# s: X8 g2 {        
; t+ E* p" ?# N* c; {  p=(y[0]+h*p)/2.0;" p. q" \9 R9 W
        s=1.0;# _- j3 ]0 _/ w( E! S
        for (k=1;k&lt;=m;k++)
4 ?, z5 o7 |2 D4 v* Z' p! V0 j* |. `        {
" w0 {! \3 d! @' P; R1 R   s=4.0*s;
' P( ^1 H  @0 M% T5 [2 U6 q            q=(s*p-y[k-1])/(s-1.0);
- }# M: {  }* W. O            y[k-1]=p; p=q;: m/ Y" G% l2 U
        }</P>
- F7 V% H! q) f- O4 z0 g+ C<>        ep=fabs(q-y[m-1]);
5 m4 i. _2 z+ S4 Y        m=m+1;
$ H' y  K( W2 y9 J: i  y[m-1]=q; 4 X( U; G6 q7 o/ x3 D
  n=n+n;
, L+ @# i% j1 w8 B1 V1 P& e  h=h/2.0;1 E( ]7 `; G0 J. C9 {
    }
  `" |1 b4 q: j, E, s    9 w  p1 ]) W% T, i3 Y! F$ O
return(q);
: l% `3 ]# f8 C* 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-4-20 14:20 , Processed in 0.443464 second(s), 52 queries .

回顶部