MATLAB中为何无法进行cholesky分解

问题描述:

MATLAB中为何无法进行cholesky分解
N=input('输入每个随机变量采样个数N=');
L=zeros(2*91,N);
for xx=1:1:2*91
L(xx,:)=randperm(N);
end
pL=corrcoef(L);
D=chol(pL)
取N为1,100等各种值,怎么都求不出D来,为什么啊
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
R=chol(X):产生一个上三角阵R,使R'R=X.若X为非对称正定,则输出一个出错信息.
[R,p]=chol(X):这个命令格式将不输出出错信息.当X为对称正定的,则p=0,R与上述格式得到的结果相同;否则p为一个正整数.如果X为满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足R'R=X(1:q,1:q).
就是说D = chol(p), p必须是对称正定矩阵;
所以你应该用[R,p] = chol(p);来分解
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会