Would adding a symmetric positive semi-definite matrix to a non-symmetric positive definite matrix increase the spectral radius

eigenvalues-eigenvectorsmatrix analysisspectral-radius

Let $A$ be a non-symmetric positive definite matrix with the spectral radius $\rho(A) = \max_i|\lambda_i|$ (note $\lambda_i$ can be complex). By positive definite, I mean $x^\top A x > 0$ for all possible $x$.

Let $B$ be a symmetric PSD matrix with the same shape as $A$.

My question is: would the spectral radius $\rho(A+B)$ be larger than (or equal to) $\rho(A)$? This looks intuitive but I have difficulty in proving it, any hints?

For general case, I have found a counter-example. But what if I know some structures of A. Say A has the following form:
$$A = \begin{bmatrix} A_{11} & A_{12} \\ -A_{12}^\top & A_{22}\end{bmatrix}$$
where $A_{11}$ and $A_{22}$ are symmetric positive definite.

Best Answer

I didn't expect this to be true because to increase $\rho$ you need to rule out rotations, but your special structure doesn't rule them out (ie, skew-symmetric matrix + identity is a rotation)

It's easy to generate counter-examples programmatically. For instance the following two matrices form a counter-example:

$$ A= \left( \begin{array}{cccc} 2.01 & 0.01 & -1.00421 & -0.475834 \\ 0.01 & 2.01 & 1.84741 & -1.73169 \\ 1.00421 & -1.84741 & 2.01 & 0.01 \\ 0.475834 & 1.73169 & 0.01 & 2.01 \\ \end{array} \right) $$

$$ B= \left( \begin{array}{cccc} \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\ \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\ \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\ \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\ \end{array} \right) $$

Generated using following Mathematica code

rho[mat_] := Max[Abs[Eigenvalues[mat]]];
try[d_] := (
   B = ConstantArray[1, {d, d}]/2;
   ii = IdentityMatrix[d/2];
   AB = RandomReal[{-2, 2}, {d/2, d/2}];
   A = ArrayFlatten[{{2 ii + .01, AB}, {-AB\[Transpose], 2 ii + .01}}];
   result = rho[A + B] - rho[A];
   If[result < 0,
    Print[A];
    Print[B];
    ];
   result
   );
Table[try[4], {20}]
Related Question