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$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1283267647 4996 (31 Aug 2010 15:14:07 GMT)
NNTP-Posting-Date: Tue, 31 Aug 2010 15:14:07 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1451215
Xref: comp.soft-sys.matlab:666512


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.