QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
: x4 _- x; V# n& `8 q# p
" d: h  C4 y* h% @5 S
  V) }7 l* f1 W' C0 D- S//////////////////////////////////////////////////////////////////////
' e* _& _( L+ [$ o, p// 龙贝格求积法
5 F$ b  n: U" y* }3 K//
" S# P" }/ J+ Y// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)
5 c# [" A9 u0 E( V//
3 U8 G- g2 t# C; O0 |" A+ G* T// 参数:4 l, W' h1 C, c
// 1. a - Double型变量,积分下限
3 }1 R  H% M3 U2 l4 R6 h// 2. b - Double型变量,积分上限,要求b&gt;a
7 m; a( D+ Z$ t, J" k// 3. eps - Double型变量,积分精度要求
+ [9 T1 b% y% ^! I% C1 @+ E& w//0 o4 [" y. V5 l! U0 j
// 返回值:double 型,积分值5 Y  U# G5 Z, G
//////////////////////////////////////////////////////////////////////4 M. O, M8 {8 {! d! t$ V! j
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)) B4 I3 C3 b% o1 {" c! \7 b3 O# ?
{
* e4 i( _7 Q/ @& B    int m,n,i,k;- e3 {* |  H. f; ~* D& C2 c
    double y[10],h,ep,p,x,s,q;</P>, K. {1 x- X: T4 C7 k
<> // 迭代初值
* H% H$ B+ z& i: M$ M2 J$ J4 g    h=b-a;
" ]8 b- f5 g; }! R+ b    y[0]=h*(Func(a)+Func(b))/2.0;
# {( ^" S3 }8 K: W. E    m=1;   }" \& \; m  Z; P: H+ \% s
n=1;
# H% n$ x) z3 y2 l$ G* B, J ep=eps+1.0;
& ]1 M: A' v) t6 Z    0 \! t" {$ g6 w: ?
// 迭代计算
; u" D, g, i; y" I+ C- Z) j- o while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))' R0 A" c$ `. v6 P
    { ) u( @$ N9 g; {6 ^/ W* y4 Y( A' x- @
  p=0.0;. ^1 T+ O; x6 p* T5 m+ H$ p; D. J
        for (i=0;i&lt;=n-1;i++)' s0 U3 y2 m7 ^- e7 e$ g$ F
        { % C5 p; o8 A. |( M* C  c3 {
   x=a+(i+0.5)*h;
4 \" @6 a. d2 p! V. S            p=p+Func(x);0 f9 p! {( B1 o; z4 C! I, u/ H
        }
' e' W, q0 Q* z  \5 n# o" `! {9 Z        & L5 Y. h. k9 ~
  p=(y[0]+h*p)/2.0;
# X! f* x' ?7 E; a" f        s=1.0;* G3 A8 [" e3 ~6 [. `
        for (k=1;k&lt;=m;k++)6 r: j, V4 Z6 N
        {
/ \2 X7 J6 @8 h5 x6 r8 }   s=4.0*s;
8 V, }" [! D; H  D- K( t            q=(s*p-y[k-1])/(s-1.0);
5 \, b5 o& ?' C; T# {8 i            y[k-1]=p; p=q;2 O; e  n" f6 Q
        }</P>" u6 L2 Y9 G8 G# S
<>        ep=fabs(q-y[m-1]);' O( M; L. [+ o& A0 {" I, g
        m=m+1; 0 b7 Q" R, w+ H, n
  y[m-1]=q; * G" w# t' k8 W3 x3 k* Y/ h
  n=n+n; / z3 ?( ?& r6 |! M
  h=h/2.0;
( H, N2 ~# Q! c1 V) F! [% K2 e    }
4 g0 r; @* @0 ?# h   
3 Z) q) c1 A3 ]$ y return(q);
3 O% H' j, X7 ~+ G3 n% @4 ]}</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 06:23 , Processed in 0.348600 second(s), 52 queries .

回顶部