当前在线人数15873
首页 - 分类讨论区 - 学术学科 - 电子工程版 -文摘区 - 阅读文章
未名交友
[更多]
[更多]
文章阅读:Re: 请教:How to generate Gaussian Noise in C?
[版面: 电子工程] [作者:oncestrong] , 2000年10月17日16:23:26
oncestrong
进入未名形象秀
我的博客
[上篇] [下篇]

发信人: oncestrong (小时候胖不算胖), 信区: EE
标  题: Re: 请教:How to generate Gaussian Noise in C?
发信站: The unknown SPACE (Tue Oct 17 16:24:01 2000), 转信


numerical recipes online
http://www.ulib.org/webRoot/Books/Numerical_Recipes/bookcpdf.html

【 在 steffi (steffi) 的大作中提到: 】
: Thanks. I've send request to get that book from library. But
: still haven't got reply, maybe still in the queue,.....maybe
: still last one.......
: Is there any Ebook of numerical recipes online?
: Thanks so much!
: 【 在 oncestrong (小时候胖不算胖) 的大作中提到: 】
: : numerical recipes 上就有呀,我给你COPY 一个在这里, page 892.
: : #include <math.h>
: : float gasdev(idum)
: : return a normally distributed deviate with zero mean and unit variance,
: : using ran1(idum) as the source of uniform deviates
: : int *idum;
: : {
: :         static int iset=0;
: :         static float gset;
: :         float fac,r,v1,v2;
: :         float ran1();
: :         if  (iset == 0) {
: :                 do {
: :                         v1=2.0*ran1(idum)-1.0;
: :                         v2=2.0*ran1(idum)-1.0;
: :                         r=v1*v1+v2*v2;
: :                 } while (r >= 1.0);
: :                 fac=sqrt(-2.0*log(r)/r);
: :                 gset=v1*fac;
: :                 iset=1;
: :                 return v2*fac;
: :         } else {
: :                 iset=0;
: :                 return gset;
: :         }
: : }
: : ran1.c
: : #define M1 259200
: : #define IA1 7141
: : #define IC1 54773
: : #define RM1 (1.0/M1)
: : #define M2 134456
: : #define IA2 8121
: : #define IC2 28411
: : #define RM2 (1.0/M2)
: : #define M3 243000
: : #define IA3 4561
: : #define IC3 51349
: : float ran1(idum)
: : int *idum;
: : {
: :         static long ix1,ix2,ix3;
: :         static float r[98];
: :         float temp;
: :         static int iff=0;
: :         int j;
: :         void nrerror();
: :         if (*idum < 0 || iff == 0) {
: :                 iff=1;
: :                 ix1=(IC1-(*idum)) % M1;
: :                 ix1=(IA1*ix1+IC1) % M1;
: :                 ix2=ix1 % M2;
: :                 ix1=(IA1*ix1+IC1) % M1;
: :                 ix3=ix1 % M3;
: :                 for (j=1;j<=97;j++) {
: :                         ix1=(IA1*ix1+IC1) % M1;
: :                         ix2=(IA2*ix2+IC2) % M2;
: :                         r[j]=(ix1+ix2*RM2)*RM1;
: :                 }
: :                 *idum=1;
: :         }
: :         ix1=(IA1*ix1+IC1) % M1;
: :         ix2=(IA2*ix2+IC2) % M2;
: :         ix3=(IA3*ix3+IC3) % M3;
: :         j=1 + ((97*ix3)/M3);
: :         if (j > 97 || j < 1) nrerror("RAN1: This cannot happen.");
: :         temp=r[j];
: :         r[j]=(ix1+ix2*RM2)*RM1;
: :         return temp;
: : }           
: : #undef M1
: : #undef IA1
: : #undef IC1
: : #undef RM1
: : #undef M2
: : #undef IA2
: : #undef IC2
: : #undef RM2
: : #undef M3
: : #undef IA3
: : #undef IC3


--
※ 来源:.The unknown SPACE bbs.mit.edu.[FROM: 128.227.158.25]

[上篇] [下篇]
[转寄] [转贴] [回信给作者] [修改文章] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回] [收藏] [举报]
 
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996