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

mAtlAB 矩阵正定

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

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

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

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

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

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

恐怕要自己写程序,但有个粗略的思路: 1.随机生成一个单位正交阵A(这个不困难,用到的只有for循环和函数rand) 2.随机生成一个对角元素均大于0的对角矩阵B(这个更容易了,就是生成几个随机正数而已) 3.C=A*B*A即为一个正定矩阵,同时也是一个...

save 命令 save(‘名称.mat’,'变量名'); 如果矩阵比较大需要在最后加‘-v7.3’ save(‘名称.mat’,'变量名',‘-v7.3’);

a %注意变量a后面没有“;”号,即可输出disp(a) Matlab常用生成矩阵函数: zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) ones(m,n)生成一个 m 行 n 列的元素全为 1 的矩阵, 当m=n 时可写为 ones(n) eye(m,n) 生成一个主对角线...

MATLAB应该对矩阵的大小没限制,但是你的内存对程序有限制,即使你的内存很大,但是系统分配给matlab软件的空间应该少一些。 计算一个矩阵所用的内存大小可以这样: numel(A)*8 字节 因为matlab矩阵都是double类型的,一个double是用8个字节,可...

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