A slight variation on John's answer: you could also do:

sage: R.<x,y,z>=QQ[]
sage: X = matrix( [ [x, y, z], [y, z, x], [z, x, y] ])
sage: Y = X*X^-1
sage: Y = matrix(R,Y)
sage: Y

 [1 0 0]
 [0 1 0]
 [0 0 1]

M. Hampton

On Oct 7, 8:16 pm, SK <[EMAIL PROTECTED]> wrote:
> Thank you Mike and John. It seemed unlikely to me that there was a bug
> anyway, but I had to ask. I used the 'simplify_rational' and it worked
> perfectly. Also, I noticed that Mike used 'apply_map'. That and lambda
> make it look rather close to Lisp; it looks like the more I look at
> sagemath, the better it seems to be.
>
> Thanks again, and the software seems to be *very* addictive! I wish I
> had had something like this when I was in graduate school.
>
> Regards,
>
> SK
>
> On Oct 7, 2:05 am, John Cremona <[EMAIL PROTECTED]> wrote:
>
> > On Oct 7, 8:45 am, "Mike Hansen" <[EMAIL PROTECTED]> wrote:
>
> > > Hello,
>
> > > On Mon, Oct 6, 2008 at 6:50 PM, SK <[EMAIL PROTECTED]> wrote:
> > > > Now, I try and compute X * (X^(-1)). Instead of getting an identity
> > > > matrix, I get a complicated matrix in x, y and z. Thinking that the
> > > > "^" may be the issue, I tried X * (X.inverse()), but got the same
> > > > issue.
>
> > > > Am I doing something wrong? Or is there a way to simplify and reduce
> > > > it to an identity matrix? I tried Y = X * (X.inverse()) and then
> > > > Y.simplify(), but it did not help.
>
> > > The simplification routine you want is simplify_rational.  This
> > > notation / simplification comes from Maxima.  For example,
>
> > > sage: x,y,z = var('x,y,z')
> > > sage: X = matrix( [ [x, y, z], [y, z, x], [z, x, y] ])
> > > sage: Y = X*X^-1
> > > sage: Y.simplify_rational()
> > > [1 0 0]
> > > [0 1 0]
> > > [0 0 1]
>
> > > Note you could do this by calling simplify_rational on each of the
> > > elements of the matrix.  The method that allows you to do this is
> > > apply_map().  It takes in a function and replaces each entry with the
> > > result of calling that function on the entry.
>
> > > sage: Y.apply_map(lambda a: a.simplify_rational())
> > > [1 0 0]
> > > [0 1 0]
> > > [0 0 1]
>
> > > --Mike
>
> > What about this for a not-quite solution?
>
> > sage: R.<x,y,z>=QQ[]
> > sage: X = matrix( [ [x, y, z], [y, z, x], [z, x, y] ])
> > sage: Y = X*X^-1
> > sage: Y
>
> > [(-1)/(-1)         0         0]
> > [        0 (-1)/(-1)         0]
> > [        0         0 (-1)/(-1)]
>
> > John
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to