Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2003
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2003

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

Search the Archive

Re: Solving a matrix equation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44350] Re: Solving a matrix equation
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Wed, 5 Nov 2003 10:02:19 -0500 (EST)
  • Organization: The University of Western Australia
  • References: <bo7o1n$aeh$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <bo7o1n$aeh$1 at smc.vnet.net>, josegomez at gmx.net wrote:

>     Let T and Q be two nxn complex matrices (T is Hermitian, Q is
> not). I want to test whether a vector p (nx1) is an eigenvector of the
> following combination:
>     A=(Inverse[T]*Q)*(Inverse[T]*Conjugate[Transpose[Q]]), 
> or, in LaTeX form:
> (T^{-1}Q)*(T^{-1}*Q^{*T}.

I assume you mean (dropping the unnecessary parentheses)

  A = Inverse[T].Q.Inverse[T].Conjugate[Transpose[Q]] ?

Note that Conjugate does not work well with symbolic parameters. 
Instead, the replacement rule

   m /. Complex[x_, y_] :> Complex[x, -y]

is a simple way to obtain the (symbolic) conjugate of an object m, 
appropriate in most situations. Also, I define

  SuperDagger[m_?MatrixQ]:=Transpose[m]/.Complex[x_, y_]:>Complex[x, -y]

(which formats as, and can be input as, a superscripted dagger) for such 
applications.

>     I have punched the previous lines into Mathematica, and tried 
> to see whether my vector p was an eigenvector. 

Testing whether something is an eigenvector should be completely 
straightforward. Just substitute it in.

> However, I had Mathematica eat up all the memory and subsequently crash, so I am
> asking here to see whether someone can suggest a way around this. 
> 
>     The problem is 3x3 (n=3), but due to the relatively large number
> of parameters, it is complicated and error-prone to do by hand.

When computing eigenvalues and eigenvectors of matrices it is useful to 
use

   SetOptions[Roots, Cubics -> False, Quartics -> False] 

to prevent Mathematica from explicitly solving the Cubics that arise 
when computing the roots of a cubic equation (for n=3). This should 
greatly reduce the memory usage.

Cheers,
Paul

-- 
Paul Abbott                                   Phone: +61 8 9380 2734
School of Physics, M013                         Fax: +61 8 9380 1014
The University of Western Australia      (CRICOS Provider No 00126G)         
35 Stirling Highway
Crawley WA 6009                      mailto:paul at physics.uwa.edu.au 
AUSTRALIA                            http://physics.uwa.edu.au/~paul


  • Prev by Date: Re: Re: Integrate 5.0
  • Next by Date: Re: Function-type arguments in function definition
  • Previous by thread: Re: Solving a matrix equation
  • Next by thread: RE: New Plot output in version 5