Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*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 2005

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

Search the Archive

Re: Matrix equations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53925] Re: Matrix equations
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Fri, 4 Feb 2005 04:11:23 -0500 (EST)
  • Organization: The University of Western Australia
  • References: <ctnhce$ero$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <ctnhce$ero$1 at smc.vnet.net>,
 Jamie Vicary <jamievicary at gmail.com> wrote:

>      I'm using Mathematica 5.1 and trying to solve equations like the 
> following:
> 
>          A.{{1,0},{0,2}} == -{{1,0},{0,2}}.A
> 
> i.e. I want to find the matrix that anticommutes with {{1,0},{0,2}}. The 
> only matrix that solves this is the zero matrix {{0,0},{0,0}} but 
> Mathematica refuses to solve the above equation for A, giving the usual 
> "The equations appear to involve the variables to be solved for in an 
> essentially non-algebraic way."
> 
>      If I set A={{a,b},{c,d}} and then solve the above equation for 
> {{a,b},{c,d}} then Mathematica correctly tells me {{a->0, b->0, c->0, 
> d->0}}, but this isn't what I want. I want to give Mathematica equations 
> in terms of matrices, not in terms of their components.
> 
>      In summary: why, when I give Mathematica the above equation to 
> solve for A, does it not solve it giving A->{{0,0},{0,0}} which is the 
> trivial, unique solution to the equation?

Because Solve has not been designed to do this. However, it is easy to 
use Solve to obtain this functionality:

  AntiCommutingMatrix[m_?MatrixQ, sym_:a] :=   
    Module[{n = Length[m], b},    
      b = Table[Subscript[sym, i, j], {i, n}, {j, n}];
      b /. First[Solve[b . m == -m . b, Flatten[b]]]
    ]

For example,

  AntiCommutingMatrix[{{1,0},{0,2}}]

The following command correctly produces a Solve::svars warning message 
(this can be turned off using Off[Solve::svars] if you like)

  AntiCommutingMatrix[DiagonalMatrix[{a, a, -a}]]

Cheers,
Paul

-- 
Paul Abbott                                   Phone: +61 8 6488 2734
School of Physics, M013                         Fax: +61 8 6488 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: List Partition
  • Next by Date: Re: Re: Area Under Curve (Min Length Interval)
  • Previous by thread: Matrix equations
  • Next by thread: New Web Site for Mathematica Users using WikiMedia