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

mAtlAB 矩阵正定

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

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

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

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

设特征值矩阵为V,你只要构造出一个随机的单位正交矩阵U,则 UVU'即为满足条件的矩阵: V = diag([1 2 3]); U = orth(rand(3)); A = U*V*U'

可以试试做矩阵的特征分解,另小于零的特征值等于零,这样矩阵就能保持半正定了

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

很简单eig(A),看是不是所有的特征值大于0;

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一定可以满足要求,至于运算时间么,看你运气了

你能把那个矩阵发上来看看么? 正定的定义清楚么?

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