Let A be a rank-one perturbation of a diagonal matrix, i. e. A=D+sTs, where D=diag{λ1,…,λn}, s=[s1,…,sn]≠0. Is there a way to easily compute its determinant?
One the one hand, sTs has rank one so that it has only one non-zero eigenvalue which is equal to its trace |s|2=s21+⋯+s2n. On the other hand, if D was a scalar operator (i.e. all λi's were equal) then all eigenvalues of A would be shifts of the eigenvalues of sTs by λ. Thus one eigenvalue would be equal to λ+|s|2 and the others to λ. Hence in this case we would obtain det. But is it possible to generalize these considerations to the case of diagonal non-scalar D?
Answer
As developed in the comments, for positive diagonal entries:
\det(D + s^Ts) = \prod\limits_{i=1}^n \lambda_i + \sum_{i=1}^n s_i^2 \prod\limits_{j\neq i} \lambda_j
It's general application can be deduced by extension from the positive cone of \mathbb{R}^n by analytic continuation. Alternatively we can advance a slightly modified argument for all nonzero diagonal entries. The determinant is a polynomial in the \lambda_i's, so proving the formula for nonzero \lambda_i's enables us to prove it for all D by a brief continuity argument.
First assume all \lambda_i \neq 0, and define vector v by v_i = s_i/\lambda_i. Similar to the OP's observations:
\det(D+s^Ts) = \det(I+s^Tv)\det(D) = (1 + \sum\limits_{i=1}^n s_i^2/\lambda_i) \prod\limits_{i=1}^n \lambda_i
where \det(I+s^Tv) is the product of (1 + \mu_i) over all the eigenvalues \mu_i of s^Tv. As the OP noted, at most one of these eigenvalues is nonzero, so the product equals 1 plus the trace of s^T v, i.e. the potentially nonzero eigenvalue, and that trace is the sum of entries s_i^2/\lambda_i.
Distributing the product of the \lambda_i's over that sum gives the result at top. If some of the \lambda_i's are zero, the formula can be justified by taking a sequence of perturbed nonzero \lambda_i's whose limit is the required n-tuple. By continuity of the polynomial the formula holds for all diagonal D.
No comments:
Post a Comment