MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Mathematica 6 obtains imaginary eigenvalues for a Hermitian

  • To: mathgroup at smc.vnet.net
  • Subject: [mg86215] Re: [mg86179] Re: Mathematica 6 obtains imaginary eigenvalues for a Hermitian
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Thu, 6 Mar 2008 02:58:08 -0500 (EST)
  • References: <fqb9ai$na0$1@smc.vnet.net> <200803021856.NAA19943@smc.vnet.net> <200803050838.DAA19250@smc.vnet.net> <577CF908-0D8D-437B-863B-00FA3094BF98@mimuw.edu.pl>

Perhaps I should have added that there are good reasons for having  
both kinds of algorithms: symbolic and numeric. This example  
illustrates a situation when there is a bug in a symbolic algorithm,  
but numeric algorithms can also be problematic, particularly when  
machine precision is used in the presence of numerical instability  
(ill-conditioning). So, while in this case Eigenvalues[N[matrix]]  
(numeric) is of course preferable to N[Eigenvalues[matrix]]  
("essentially" symbolic) I would not recommend adopting this as a  
general principle.

Andrzej Kozlowski


On 5 Mar 2008, at 11:23, Andrzej Kozlowski wrote:

> Yes, since it uses quite different algorithm. Generally algorithms  
> used for numerical solution of equations or various matrix  
> computations are quite different from (and much faster than) those  
> used in the symbolic case.
>
> Andrzej Kozlowksi
>
>
> On 5 Mar 2008, at 09:38, David Reiss wrote:
>
>> Thanks....  I stand  (or sit) corrected.
>>
>> I note that although N[Eigenvalues[matrix]] does not give correct
>> results (with the bug that Daniel Lichtblau explains),
>>
>> Eigenvalues[N[matrix]]
>>
>> does indeed work as expected...
>>
>> --David
>>
>>
>> On Mar 3, 4:48 am, Andrzej Kozlowski <a... at mimuw.edu.pl> wrote:
>>> Eigenvalues or characteristic values of a  are defined (or rather,  
>>> can =
>>
>>> be defined) as the roots of the characteristic polynomial - and it
>>> does not matter is the matrix is invertible or not. Indeed, for a
>>> nilpotent matrix, such as
>>>
>>> M = {{-1, I}, {I, 1}}
>>>
>>> we have
>>>
>>> In[39]:= Eigenvalues[M]
>>> Out[39]= {0, 0}
>>>
>>> and
>>>
>>> In[40]:= CharacteristicPolynomial[M, x]
>>> Out[40]= x^2
>>>
>>> Moreover, the problem has nothing to do with numerical precision
>>> because in this case the exact eigenvalues do not satisfy the
>>> characteristic polynomial and in fact are the exact roots of a
>>> different polynomial of the same degree (as shown in my first post  
>>> in
>>> this thread). Very weird.
>>>
>>> Andrzej Kozlowski
>>>
>>> On 2 Mar 2008, at 19:56, David Reiss wrote:
>>>
>>>> Note that your matrix is not invertible (its determinant is  
>>>> zero).  So=
>>
>>>> this is the source of your problem...
>>>
>>>> Hope that this helps...
>>>
>>>> -David
>>>> A WorkLife FrameWork
>>>> E x t e n d i n g MATHEMATICA's Reach...
>>>> http://scientificarts.com/worklife/
>>>
>>>> On Mar 1, 4:57 am, Sebastian Meznaric <mezna... at gmail.com> wrote:
>>>>> I have a 14x14 Hermitian matrix, posted at the bottom of this
>>>>> message.
>>>>> The eigenvalues that Mathematica obtains using the
>>>>> N[Eigenvalues[matrix]] include non-real numbers:
>>>>> {-9.41358 + 0.88758 \[ImaginaryI], -9.41358 -
>>>>> 0.88758 \[ImaginaryI], -7.37965 + 2.32729 \[ImaginaryI],
>>>>> -7.37965 -
>>>>> 2.32729 \[ImaginaryI], -4.46655 + 2.59738 \[ImaginaryI],
>>>>> -4.46655 -
>>>>> 2.59738 \[ImaginaryI], 4.36971, 3.21081, -2.32456 +
>>>>> 2.10914 \[ImaginaryI], -2.32456 - 2.10914 \[ImaginaryI],
>>>>> 2.04366+ 0.552265 \[ImaginaryI],
>>>>> 2.04366- 0.552265 \[ImaginaryI], -0.249588 +
>>>>> 1.29034 \[ImaginaryI], -0.249588 - 1.29034 \[ImaginaryI]}.
>>>>> However, if you do Eigenvalues[N[matrix]] it obtains different
>>>>> results
>>>>> {-9.09122, -7.41855, -7.41855, -7.2915, 4.33734, -4., -4.,  
>>>>> 3.2915, \
>>>>> -3.24612, -2.38787, -2.38787, 1.80642, 1.80642, 0}.
>>>
>>>>> These results agree with  
>>>>> Solve[CharacteristicPolynomial[matrix,x],x].
>>>>> Therefore I assume that the latter are correct. Has anyone seen  
>>>>> this?
>>>>> I am using 6.0.0.
>>>
>>>>> Here is the matrix:
>>>>> {{-6, 0, -Sqrt[3], 0, 0, Sqrt[3], 0, 0, 0, 0, 0, 0, 0, 0}, {0, -6,
>>>>> 0, -Sqrt[3], 0, 0, Sqrt[3], 0, 0, 0, 0, 0, 0, 0}, {-Sqrt[3], 0, =
>>
>>>>> -4,
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), 2 Sqrt[2/3], 0, 0, Sqrt[3], =
>>
>>>>> 0,
>>>>> 0, 0, 0, 0, 0}, {0, -Sqrt[3],
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), -4/3, -(2 Sqrt[2])/3, 0, 0, =
>>
>>>>> 0,
>>>>> Sqrt[3], 0, 0, 0, 0, 0}, {0, 0, 2 Sqrt[2/3], -(2 Sqrt[2])/3,
>>>>> 7/3, 0,
>>>>>  0, 0, 0, Sqrt[3], 0, 0, 0, 0}, {Sqrt[3], 0, 0, 0, 0, -4, 0,
>>>>> 2 (-1/(4 Sqrt[3]) + Sqrt[3]/4), 0, 0, 2 Sqrt[2/3], 0, 0, 0}, {0,
>>>>> Sqrt[3], 0, 0, 0, 0, -4, 0, 2 (-1/(4 Sqrt[3]) + Sqrt[3]/4), 0, 0,=
>>
>>>>> 2 Sqrt[2/3], 0, 0}, {0, 0, Sqrt[3], 0, 0,
>>>>> 2 (-1/(4 Sqrt[3]) + Sqrt[3]/4), 0, -14/3,
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), 2 Sqrt[2/3], (2 Sqrt[2])/3, =
>>
>>>>> 0,
>>>>> 0, 0}, {0, 0, 0, Sqrt[3], 0, 0, 2 (-1/(4 Sqrt[3]) + Sqrt[3]/4),
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), -2, -(2 Sqrt[2])/3, 0, (
>>>>> 2 Sqrt[2])/3, 0, 0}, {0, 0, 0, 0, Sqrt[3], 0, 0,
>>>>> 2 Sqrt[2/3], -(2 Sqrt[2])/3, -7/3, 0, 0,
>>>>> 2 (1/(3 Sqrt[2]) + (2 Sqrt[2])/3), Sqrt[10/3]}, {0, 0, 0, 0, 0,
>>>>> 2 Sqrt[2/3], 0, (2 Sqrt[2])/3, 0, 0, -16/3,
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), 2 Sqrt[2/3], 0}, {0, 0, 0, =
>>
>>>>> 0, 0,
>>>>>  0, 2 Sqrt[2/3], 0, (2 Sqrt[2])/3, 0,
>>>>> 2 (-1/(4 Sqrt[3]) + (3 Sqrt[3])/4), -8/3, -(2 Sqrt[2])/3, 0},  =
>>
>>>>> {0, 0,
>>>>>  0, 0, 0, 0, 0, 0, 0, 2 (1/(3 Sqrt[2]) + (2 Sqrt[2])/3),
>>>>> 2 Sqrt[2/3], -(2 Sqrt[2])/3, 1/2,
>>>>> 2 (-Sqrt[5/3]/16 - Sqrt[15]/16)}, {0, 0, 0, 0, 0, 0, 0, 0, 0,  =
>>
>>>>> Sqrt[
>>>>> 10/3], 0, 0, 2 (-Sqrt[5/3]/16 - Sqrt[15]/16), 7/2}}
>>
>>
>



  • Prev by Date: Re: RandomGraph
  • Next by Date: Re: Insufficient capacity
  • Previous by thread: Re: Mathematica 6 obtains imaginary eigenvalues for a Hermitian
  • Next by thread: Re: Re: Mathematica 6 obtains imaginary eigenvalues for a Hermitian