全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5766 5
2011-01-17
function [Vbeta,betanew] = Vbtane(X,betaold,B0,bkeep)
Vbeta = zeros(11,11,5);
betanew = zeros(size(betaold));
for j = 1:5
    for i =1:263
        Vbeta(:,:,j) = Vbeta(:,:,j) + exp(X(i,:)*betaold(:,j)+bkeep(i,j))*X(i,:)'*X(i,:);
    end
    Vbeta(:,:,j) = inv(inv(B0(:,:,j))+Vbeta(:,:,j));
    betanew(:,j) = mvnrnd(betaold(:,j),Vbeta(:,:,j));
end
end

这是我写的求多元正态随机数的一个程序,可运行的结果总是错的
??? Error using ==> mvnrnd at 118
SIGMA must be a symmetric positive semi-definite matrix.
Error in ==> Vbtane at 9
    betanew(:,j) = mvnrnd(betaold(:,j),Vbeta(:,:,j));
给的提示是Vbeta不是对称半正定矩阵,可我用特征值检验过,是半正定的,请问是怎么回事,请教高手,不甚感谢~!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-1-17 15:12:41
对称性呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-1-17 15:34:53
对称性我也检查了,是对称的
  0.1910    0.1698    0.1666    0.1787    0.0023   -0.0022    0.0048    0.0131   -0.0017     0.0011   -0.0027
    0.1698    0.2857    0.2549    0.1735   -0.0004   -0.1003    0.0173   -0.0035   -0.0004     -0.0006   -0.0010
    0.1666    0.2549    0.3049    0.1726   -0.0041   -0.0928    0.0036    0.0063   -0.0001     -0.0008   -0.0010
    0.1787    0.1735    0.1726    0.1976   -0.0056   -0.0017    0.0254    0.0082   -0.0010     0.0010   -0.0024
    0.0023   -0.0004   -0.0041   -0.0056    0.0099   -0.0058   -0.0057   -0.0007   -0.0011    -0.0006   -0.0002
   -0.0022   -0.1003   -0.0928   -0.0017   -0.0058    0.1026   -0.0011    0.0042   -0.0001    -0.0023   -0.0013
    0.0048    0.0173    0.0036    0.0254   -0.0057   -0.0011    0.8142    0.0136    0.0003      -0.0025   -0.0005
    0.0131   -0.0035    0.0063    0.0082   -0.0007    0.0042    0.0136    0.1053    0.0002      -0.0054   -0.0007
   -0.0017   -0.0004   -0.0001   -0.0010   -0.0011   -0.0001    0.0003    0.0002    0.0002     -0.0002    0.0000
    0.0011   -0.0006   -0.0008    0.0010   -0.0006   -0.0023   -0.0025   -0.0054   -0.0002     0.0073    0.0000
   -0.0027   -0.0010   -0.0010   -0.0024   -0.0002   -0.0013   -0.0005   -0.0007    0.0000     0.0000    0.0001
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-1-17 15:41:05
补充一下,我把betanew(:,j) = mvnrnd(betaold(:,j),Vbeta(:,:,j));单独拉出来做,也不行,总提示错误
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 10:29:45
请问楼主解决这个问题了吗? 我也遇到同样的问题了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-8-7 18:08:49
xxxx09 发表于 2012-2-29 10:29
请问楼主解决这个问题了吗? 我也遇到同样的问题了
什么意思 可以详细一点儿吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群