Path: news.mathworks.com!not-for-mail From: <HIDDEN> Newsgroups: comp.soft-sys.matlab Subject: Finding the nearest matrix with real eigenvalues Date: Tue, 31 Aug 2010 15:14:07 +0000 (UTC) Organization: University of Cambridge Lines: 9 Message-ID: <i5j67v$4s4$1@fred.mathworks.com> Reply-To: <HIDDEN> NNTP-Posting-Host: webapp-03-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: fred.mathworks.com 1283267647 4996 172.30.248.38 (31 Aug 2010 15:14:07 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Tue, 31 Aug 2010 15:14:07 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 1451215 Xref: news.mathworks.com comp.soft-sys.matlab:666512 Hi, I've been struggling with this problem for a while and I can't seem to find out much about it. What I have are lots of 3*3 matrices which represent linear operators. I'm interested in the properties of these linear operators and have thus decomposed them into eigenvectors and eigenvalues, most of these matrices are decomposable in the real field (have real eigenvalues) and these are useful to me, but a small minority have complex eigenvalues which are of no use to me. So my question is: given a linear operator with complex eigenvalues how does one find the nearest linear operator with real eigenvalues? Also some measure of nearness is important as well. I reckon this would require some use of the matlab function 'norm' but I can't seem to make any progress on this problem. Any suggestions, pointers to relevant texts (as this may be an obscure maths problem), or pointers to relevant matlab functions would be greatly appreciated. Cheers, Gary