QQ登录

只需要一步,快速开始

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

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

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

3

主题

2

听众

19

积分

升级  14.74%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-4-1 16:34 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>积分的源代码,效率很好的
" \/ D# i# n2 R% P7 y% ]. E7 [
( E' ]; U6 R/ q, Q) U: }/ x; Y9 X" x) S" ]+ Z
//////////////////////////////////////////////////////////////////////  v: [* A$ i- \% F; c8 q$ U
// 龙贝格求积法
( p1 G% U" \- k' T$ ?3 z" @//
) J- Y* C  y, u* x7 X0 Y// 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x)4 ?3 a/ ?2 g' q* S
//
" G% Q- ~) U! X// 参数:1 ?: F# U$ t; P( T8 j0 A9 [7 H
// 1. a - Double型变量,积分下限
& @" p2 ^3 V! @0 o4 r// 2. b - Double型变量,积分上限,要求b&gt;a
$ V7 G" \8 B% Y% w4 T// 3. eps - Double型变量,积分精度要求
# |8 j: F7 R: ]" ]5 t! G# }# M//
7 G3 x* F3 w" M4 N5 a- \// 返回值:double 型,积分值
- Q3 P- X0 f2 Z) n1 B) q  n7 a//////////////////////////////////////////////////////////////////////7 {! N0 g% M) Q" D
double Integral_Romberg(double a, double b, double eps /*= 0.000001*/)
- N' K5 h# y* z6 F7 C$ h{
  N7 B! \# Z) U4 ^    int m,n,i,k;
3 V5 K3 R) v. ~& K' q. Y    double y[10],h,ep,p,x,s,q;</P>
) T+ Z" @& ^9 ]% ?$ c. q<> // 迭代初值0 M3 T7 {2 R  c
    h=b-a;
: J) g# Q5 h( @' Z+ u: f    y[0]=h*(Func(a)+Func(b))/2.0;6 u( C! L* x! x' N( h+ l( k) z
    m=1;   S" [* j9 k* X  M
n=1; / \: e* T! l& Q- G) {
ep=eps+1.0;
, i1 p! z: L+ J7 U; D: W3 Z    . v. R  _3 ]2 H, q- I  R# M9 I5 S
// 迭代计算+ c+ s# {  E3 E
while ((ep&gt;=eps)&amp;&amp;(m&lt;=9))
3 S" L, i+ _4 m, W* Q    {
1 p2 p1 x- U" c' Z  ]: R0 v  p=0.0;
: E; o: h8 T- K& h$ \        for (i=0;i&lt;=n-1;i++)/ z' P! X- ?6 E% |
        { 0 j+ R- ~2 k, F" P  P& F2 H
   x=a+(i+0.5)*h;
" [1 q+ P* R: O/ l6 A            p=p+Func(x);# v  Z1 S3 {3 \% t7 D1 L3 C0 `
        }6 Q& z7 x( V0 V
        
2 O+ Q9 A# V: e' |  p=(y[0]+h*p)/2.0;/ b+ S: |, {; j
        s=1.0;
2 v  G' X. ^6 o* w6 B; G2 G2 x        for (k=1;k&lt;=m;k++)
; M3 D" p% X7 I  X+ A5 n4 }2 l! B2 p        { 6 S  {8 o  J5 s) n& s
   s=4.0*s;
1 n! M. S! f+ P  |1 i            q=(s*p-y[k-1])/(s-1.0);
" O; G- s. M( e! j) e0 }            y[k-1]=p; p=q;
8 K$ m8 L+ a/ E4 m        }</P>. _: I3 i+ J- v4 W' B# ~1 _
<>        ep=fabs(q-y[m-1]);; ]- p5 z9 d1 n+ R6 y$ t4 M2 Y
        m=m+1;
& }% A* `, H9 o' d2 @  y[m-1]=q; 6 i" j9 j6 }1 T: j' B8 |
  n=n+n; ) l) e- p2 P( K& N( ^/ Q
  h=h/2.0;
3 g  g1 E: Q: ~% z    }- N$ r( G. f- o- S7 u
    - w4 M; B5 T  T- L, M
return(q);
0 N$ G2 b, m1 T}</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 05:08 , Processed in 0.413124 second(s), 52 queries .

回顶部