Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Re: eigenquery

From   Kit Baum <[email protected]>
To   [email protected]
Subject   st: Re: eigenquery
Date   Fri, 3 Oct 2003 10:33:03 -0400

On Friday, Oct 3, 2003, at 02:33 US/Eastern, Pinaki wrote:

I would like to clarify my original problem. I have a couple of 88 by 88
square matrices, some of them are symmetric and some are not. I would like
to diagonalize them. Now, the way I understand Matrix diagonalization is
that it is the process of taking a square matrix and converting it into a
diagonal matrix, where the entries in the diagonals are the eigen values. Is
this right?

I would like to do this in Stata. Since I couldn't find any command in Stata
that can do diagonalization directly, I thought if I could find the eigen
values, I could construct a diagonalized matrix with the eigen values in the
diagonals and zeros in the off-diagonals. In Stata, symeigen and genigen
calculate eigen values for symmetric and non-symmetric matrices,
respectively. Is there anything wrong in this process? Is yes, could you
please recommend how can I do diagonalization in Stata?
The diagonalization of a square (not necessarily symmetric) matrix involves both the eigenvalues and
eigenvectors of the matrix. From de la Fuente, Mathematical methods and models for economists (Cambridge U Press, 2000):

Thm 6.7: Let A be an n x n matrix with n linearly independent eigenvectors. Then A is diagonalizable, with diagonalizing matrix E=[e_1, ..., e_n] whose columns are the eigenvectors of A and the resulting diagonal matrix is the matrix \Lambda = diag(\lambda_1, ... \lambda_n) with the eigenvalues of A in the principal diagonal, and zeros elsewhere. That is, E^{-1} A E = \Lambda.

Thm 6.8: Let A be an n x n matrix with n distinct eigenvalues. Then its eigenvectors are linearly independent, and A is diagonalizable.

The combination of these theorems suggests that if you run my program geneigen on a matrix A and get n (numerically) distinct eigenvalues, you may create the diagonal matrix referred to above with the eigenvalues on the diagonal, and call that the diagonalization of A. geneigen does not compute the eigenvectors because that is a hard problem, particularly so in a language that does not contain a complex data type. Of course, there is no guarantee that the n eigenvalues of the real general matrix A will have zero imaginary parts. If there are imaginary parts, then the theorem above implies that the diagonalizing matrix will not be real, but complex, and I don't know what you're going to do with that in Stata.


* For searches and help try:

© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index