0

我正在创建一个 gibbs 采样算法,当我使用 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 回答