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/11/24 10:24:25
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来,为什么啊
xRMsP+ّ8;0Sedq"Ҡ3 k[hm|R3֚&^U7/RKw߹sދ)s{H @VlwIݙFiE& .:&)>*_碊Wzd!Ȏ[Rt~BGI1E%mF; |.TPJ[(NTOHΩj:Y`%.9XE}N˜/` W&.yRBeEKFxϒY\_=VC70K7wLfmwxMR(hm*PBJ<Jq2vmEH_sGDb*|襀s?"rӋdͰpkM4w y(ʣ))gp-d~!1kx s,WU$ֲ'a^FLFi.qy۬帍+^矎D~ ćK$ٵGx?hqP.mاPkꜝЌX!44o(xvM8JôCV5gسk_iipK|6=_

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);来分解