Given positive definite $X$, how to generate Hermitian $H$ such that $X\geq H\geq -X$

77 Views Asked by At

For simulation purpose I need to generate $n\times n$ Hermitian matrix $H$ many times. However, all $H$ must satisfy the following inequalities: $$X\geq H\geq-X,$$

where $X$ is known $n\times n$ positive definite matrix and $X\geq H$ means that $X-H$ is positive semidefinite.

Current method on Matlab:

  1. Find largest eigenvalue of $X$, lets call it $\lambda$.

  2. Generate random diagonal matrix $D$ with diagonal elements being between $-\lambda$ and $\lambda$ .

  3. Set $H=VDV^*$, where $V$ is some unitary matrix.

     beta=2;
     alpha=10;
     for i=1:10
         T=2.*rand(10,10)-1*ones(10,10)+i*(2.*rand(10,10) -1*ones(10,10));   
         [U,S,V]=svd(T);                                                     
         rX=cosd(alpha).*((beta-1/beta).*rand(10,1)+1/beta);                 
         Ah=U*diag(rX)*U';                                                   
         X=Ah*tand(alpha);      
    
         rH=(2).*rand(10,1)-1;                                  
         H=sqrt(X)*U*diag(rH)*U'*sqrt(X);       
    
         [eig(X-H) eig(H+X)]                                                
      end
    

Generated $H$ doesn't satisfy above inequalities. I don't understand where I am doing mistake, please help me to understand.

1

There are 1 best solutions below

2
On BEST ANSWER

That all eigenvalues of $H$ lie between $\lambda_\max(X)$ and $-\lambda_\max(X)$ is only a necessary condition for $-X\le H\le X$. It is not a sufficient condition. Consider $X=\operatorname{diag}(3,1)$ and $H=2I$ for instance.

One way to generate $H$ is to use the fact that $-X\le H\le X$ if and only if $-I\le X^{-1/2}HX^{-1/2}\le I$. So, if $U$ is a random unitary matrix, $D$ is a random real diagonal matrix whose diagonal entries lie inside the interval $[-1,1]$, then $H=X^{1/2}UDU^\ast X^{1/2}$ will be a Hermitian matrix that lies between $-X$ and $X$ in the positive semidefinite partial ordering.