0

ギブスサンプリングアルゴリズムを作成していますが、mvnrnd関数を使用すると次のメッセージが表示されます。

??? Error using ==> mvnrnd SIGMA must be a symmetric positive semi-definite matrix.

mvnrndを使用する前にchol関数を使用したことに注意してください

nu02=chol(nu01);
nu0=s*nu02;
z = mvnrnd(mu0,nu0)';

問題を解決するために何ができますか?

4

1 に答える 1

0

nu0に渡すときに、それが対称正の半確定であるはずだと推測していますmvnrndが、何らかの理由で、完全に対称ではない非常に小さな数値の問題があります。

別の問題があるかもしれませんが、これが問題である場合は、コマンドを使用して完全に対称にすることができます

nu0 = (nu0 + nu0')/2;

お役に立てば幸いです。

于 2013-02-12T16:40:23.907 に答える