⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isdef.m

📁 一个时滞系统的工具箱
💻 M
字号:
function [out]=isdef(Q)
%ISDEF checks the definiteness of the square matrix Q. 
%      Output returns the following message.
%
%        not definite            
%        positive definite
%        positive semidefinite
%        negative definite
%        negative semidefinte
%
%  Using the fact that x'Qx=1/2*x'(Q+Q')*x, we check the definiteness 
%  of Q. For symmetrical or Hermitian matrix it is well known that the  
%  matrix is positive (semi)definite whenever all eigenvalues of matrix 
%  is positive(nonnegative). 
%

[numrow numcol]=size(Q);
if numrow~=numcol
   out='The input matrix must be square';
else
   temp=1/2*(Q+Q'); 
   eigenvalue=eig(temp);
   positive=find(eigenvalue>0);
   zero=find(eigenvalue==0);
   lenpos=length(positive);
   lenzero=length(zero);
   if(numrow==lenpos)
      out='positive definite';    
   end 
   if((lenzero>0)&((numrow-lenpos)==lenzero))
      out='positive semidefinite';
   end
   if((lenzero==0)&(lenpos==0))
      out='negative definite'; 
   end
   if((lenzero>0)&(lenpos==0))
      out='negative semidefinite';
   end 
   if((lenpos~=0)&((numrow-lenzero-lenpos)~=0))
      out='not definite'; 
   end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -