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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 02:24:22
MATLAB中为何无法进行cholesky分解 N=input('输入每个随机变量采样个数N=');L=zeros(2*91,N);for xx=1:1:2*91L(xx,:)=randperm(N);endpL=corrcoef(L);D=chol(pL) 取N为1,100等各种值,怎么都求不出D来,为什么啊

MATLAB中为何无法进行cholesky分解 N=input('输入每个随机变量采样个数N=');L=zeros(2*91,N);for xx=1:1:2*91L(xx,:)=randperm(N);endpL=corrcoef(L);D=chol(pL) 取N为1,100等各种值,怎么都求不出D来,为什么啊
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来,为什么啊

MATLAB中为何无法进行cholesky分解 N=input('输入每个随机变量采样个数N=');L=zeros(2*91,N);for xx=1:1:2*91L(xx,:)=randperm(N);endpL=corrcoef(L);D=chol(pL) 取N为1,100等各种值,怎么都求不出D来,为什么啊
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);来分解