Opened 10 years ago
Last modified 10 years ago
#11553 closed enhancement
Matrix morphism additions — at Version 5
Reported by:  rbeezer  Owned by:  jason, was 

Priority:  minor  Milestone:  sage4.7.2 
Component:  linear algebra  Keywords:  sd32 bijective identity inverse 
Cc:  SimonKing, mmarco  Merged in:  
Authors:  Rob Beezer  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  Commit:  
Dependencies:  #11552  Stopgaps: 
Description (last modified by )
Adds three methods to the matrix morphism class:

is_bijective()

is_identity()

inverse()
I did not notice that __invert___
via ~ was available by using tabcompletion, which should explain the last one.
If there is a theme, it is better support for compositions of these morphisms.
Depends
Apply:
Change History (8)
Changed 10 years ago by
comment:1 Changed 10 years ago by
 Cc SimonKing mmarco added
 Dependencies set to #11552
 Description modified (diff)
 Status changed from new to needs_review
comment:2 Changed 10 years ago by
comment:3 Changed 10 years ago by
Strikes me there is a more general problem with free module equality, which I will ask about on sagedevel:
sage: R = PolynomialRing(QQ, 'a') sage: x = vector(R, [1, 0]) sage: y = vector(R, [0, 1]) sage: z = vector(R, [0,1]) sage: A = (R^2).span([x, y]) sage: B = (R^2).span([x, z]) sage: A == B False sage: A.is_submodule(B) True sage: B.is_submodule(A) True
which at its root might be
sage: S = matrix([x, y]) sage: S._echelon_form_PID()[1] [1 0] [0 1] sage: T = matrix([x, z]) sage: T._echelon_form_PID()[1] [ 1 0] [ 0 1]
comment:4 Changed 10 years ago by
Changed 10 years ago by
comment:5 Changed 10 years ago by
 Description modified (diff)
v2 patch adds a nullity()
method for matrix morphisms, as a companion to the rank()
method.
Changed 10 years ago by
Note: See
TracTickets for help on using
tickets.
The surjectivity test doesn't work fine over other euclidian domains:
But
I think the problem is in ticket 11552, it still needs work.