matlab 判断矩阵是正定半正定还是负定

Posted 白水baishui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 判断矩阵是正定半正定还是负定相关的知识,希望对你有一定的参考价值。

用Matlab 判断矩阵是正定、半正定还是负定

% 判断矩阵m是正定、半正定还是负定
m = [2 -1; -1 2]; 

if issymmetric(m) % 检查矩阵是否对称
    % disp('矩阵对称');
    d = eig(m); % 计算矩阵特征值
    if all(d > 0)
        disp('矩阵正定');
    elseif all(d >= 0)
        disp('矩阵半正定');
    else
        disp('矩阵负定');
    end
else
    disp('矩阵不对称');
end

有时候,会在求出海森矩阵之后去判定海森矩阵是否是正定或者半正定:

syms x1 x2;
f = x1.^2+x2.^2-x1*x2;
h = hessian(f, [x1, x2]); % 求函数f的海森矩阵

以上是关于matlab 判断矩阵是正定半正定还是负定的主要内容,如果未能解决你的问题,请参考以下文章

matlab 里怎么随机产生一个对称正定矩阵

hessian 矩阵

MIMO中矩阵的小笔记(正定,半正定)

正定矩阵和半正定矩阵

半正定矩阵

将随机矩阵变为半正定