sdqm.net
当前位置:首页 >> mAtlAB 矩阵正定 >>

mAtlAB 矩阵正定

用svd分解判断是错的,奇异值取的都是正的。 可以[u,s]=eig(C),其中s就是特征值对应的矩阵,看是否都为正

[r,p]=chol(x) 如果p=0说明正定,r为cholesky分解。

条件不足埃。9个未知数,3个方程,即便加上正定这个约束,总约束还是太少了。最好再加两组方程,即再给两组XY。

eig(A)求出矩阵的特征值。 所有特征值大于0,即为正定矩阵。

提取出所有的主子式,然后求行列式,都大于零则正定。

N=10;%矩阵大小N*N select=[5:10,inf]; a=zeros(N,N); for i=1:N for j=1:i; if j==i a(i,j)=inf; else rnd=rand; if rnd>0.3 a(i,j)=inf; a(j,i)=a(i,j); else b=randperm(length(select)); a(i,j)=select(b(1)); a(j,i)=a(i,j); end end end e...

看你做cholesky分解的目的。如果只是为了做分解而做分解,那么遗憾的告诉你,你给出的矩阵没法做分解,除非修改得到矩阵的代码,规避负特征值;如果是做完分解还有其他的计算,那么或许可以考虑矩阵移位之类的方法。

N=5; a=eye(N)*sprandsym(N,3); while(prod((1:N)'.*(eig(a)>0))==0) a=eye(N)*sprandsym(N,3); end a eig(a) a一定可以满足要求,至于运算时间么,看你运气了

spss里面默认就算方差不齐也可以做单因素方差分析的,得出结果后做个非参数检验验证一下就OK了、、、

优化目标呢?可以用fmin系列 或者用遗传等算法

网站首页 | 网站地图
All rights reserved Powered by www.sdqm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com