2

Fortran 90 でいくつかの Python / numpy コードを書き直そうとしています。私の Python コードでは、次のコマンドを使用して 5000 のランダムな対数正規分布数を生成します。

numpy.random.lognormal(mu,sigma,5000)

Fortranで同じことをしようとしています。私は Fortran にあまり詳しくありませんが、Intel の Web サイトでこれを見つけました。

status = vdrnglognormal( method, stream, n, r, a, sigma, b, beta )

http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-C564D9DC-FDF0-426B-9C9D-1740969BDBEC.htm

n,r,a,sigma,bとが何であるかは知っていbetaますが、メソッド/ストリームが何を意味するのか、それらの値を何として渡す必要があるのか​​ わかりません。また、ステータスとは何ですか?コードでこの関数を呼び出すにはどうすればよいですか? ファイルを含める必要がありますか?

4

2 に答える 2

2

または、独自のログ通常関数を作成することもできます。

ゼロ平均、単位偏差正規分布確率変数 が与えられた場合x、対数正規分布は単純です。

y = exp(mu+sigma*x)

また、関数がない場合はx、Marsaglia polar メソッドを使用して数行のコードで作成できます。

于 2012-12-08T00:03:49.050 に答える
2

別の可能な解決策: GNU Scientific Library (GSL) は、対数正規偏差を返す関数 gsl_ran_lognormal を提供します。GSL はC 言語です。ISO C Binding を使用した Fortran インターフェイス FGSL ( http://www.lrz.de/services/software/mathematik/gsl/fortran/ ) があります。または、独自のインターフェースを作成することもできます。

于 2012-12-06T22:04:29.873 に答える