Ticket #4273 (closed defect: fixed)

Opened 2 months ago

Last modified 2 weeks ago

[with patch, positive review] Failure on Jordan form transformation matrices

Reported by: mhampton Assigned to: jason
Priority: critical Milestone: sage-3.2.1
Component: linear algebra Keywords: jordan form, matrix
Cc: jason

Description

Getting the change of basis matrix for Jordan forms fails if there are multiple blocks with the same eigenvalue, e.g.:

m = matrix(QQ,[[0,1,0], [0,0,0], [0,0,0]])
m.jordan_form(base_ring=QQ, transformation=True) 

gives

ValueError: cannot compute the basis of the Jordan block of size 2 with eigenvalue 0

This was reported on sage-support by Rob Beezer, subject line is: "Transformation to Jordan form for tame 6x6 integer matrix".

Attachments

trac-4273-jordan_form.patch (6.0 kB) - added by jason on 11/17/2008 08:31:34 PM.

Change History

10/14/2008 08:36:09 PM changed by mhampton

  • owner changed from was to mhampton.

11/13/2008 09:56:34 PM changed by jason

  • cc set to jason.

11/17/2008 08:31:34 PM changed by jason

  • attachment trac-4273-jordan_form.patch added.

11/17/2008 08:32:06 PM changed by jason

  • owner changed from mhampton to jason.
  • status changed from new to assigned.
  • summary changed from Failure on Jordan form transformation matrices to [with patch, needs review] Failure on Jordan form transformation matrices.

Tests pass in matrix2.pyx.

11/18/2008 07:53:03 AM changed by mhampton

  • summary changed from [with patch, needs review] Failure on Jordan form transformation matrices to [with patch, positive review] Failure on Jordan form transformation matrices.

Seems to work very well. I tested it on some tough random cases of size 12x12 to 30x30 and it seems correct, and reasonably fast. Nice work.

11/21/2008 12:21:09 AM changed by mabshoff

  • status changed from assigned to closed.
  • resolution set to fixed.

Merged in Sage 3.2.1.alpha0