Tuesday, 20 August 2013

linear algebra - Determinant of rank-one perturbation of a diagonal matrix



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 detA=λn1(λ+|s|2). 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+sTs)=ni=1λi+ni=1s2ijiλj



It's general application can be deduced by extension from the positive cone of Rn by analytic continuation. Alternatively we can advance a slightly modified argument for all nonzero diagonal entries. The determinant is a polynomial in the λi's, so proving the formula for nonzero λi's enables us to prove it for all D by a brief continuity argument.



First assume all λi0, and define vector v by vi=si/λi. Similar to the OP's observations:



det(D+sTs)=det(I+sTv)det(D)=(1+ni=1s2i/λi)ni=1λi




where det(I+sTv) is the product of (1+μi) over all the eigenvalues μi of sTv. As the OP noted, at most one of these eigenvalues is nonzero, so the product equals 1 plus the trace of sTv, i.e. the potentially nonzero eigenvalue, and that trace is the sum of entries s2i/λi.



Distributing the product of the λi's over that sum gives the result at top. If some of the λi's are zero, the formula can be justified by taking a sequence of perturbed nonzero λ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

real analysis - How to find limhrightarrow0fracsin(ha)h

How to find limh0sin(ha)h without lhopital rule? I know when I use lhopital I easy get $$ \lim_{h\rightarrow 0}...