こんにちは、アルゴリズムが正しいかどうかわかりません。matlab のmvnrnd関数を gsl で複製しようとしています。多変量正規乱数のベクトルを生成するアルゴリズムをいくつかのジャーナル記事で見つけましたが、多変量正規乱数の行列が必要です
分布が Z~(mu,sigma); であるとしましょう。
sigma が既に正定値の行列であると仮定します。
私がウェブから見つけたアルゴリズムは
1. cholskey(sigma) = A
2. generate uniform gaussian vector r
3. matrix vector triangular product with gsl_blas_dtrmv A * r
4. add mu to Ar and that will be a vector of multivariate normal random numbers
以下の私の方法
以下の変更は、確率変数の行列を生成するための修正です
1. cholskey(sigma) = A
2. generate uniform gaussian matrix R
3. matrix matrix scalar product AR
4. add mu to AR and that will be a matrix of multivariate normal random numbers