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

mAtlAB 矩阵正定

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

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

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...

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

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

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

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

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

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