[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-19 Thread mmarco
I have sent a patch to ticket 8974 that implements this feature. http://trac.sagemath.org/sage_trac/ticket/8974 It is mixed with the implementation of this functions for endomorphisms. I hope thats not a problem. Miguel. -- To post to this group, send an email to sage-devel@googlegroups.com To

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-15 Thread mmarco
Reading again this discusion i have noticed that eigenspaces behaviour is not what i expected: sage: M=matrix(QQ,[[1,2],[3,4]]) sage: M.eigenspaces() [ (a0, Vector space of degree 2 and dimension 1 over Number Field in a0 with defining polynomial x^2 - 5*x - 2 User basis matrix: [ 1 1/3*

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread Rob Beezer
David, All good points. > I don't agree that this is the most natural result for first year > calculus or linear algebra. Many will only consider real > solutions to be valid. I wish I had my bookshelf of roughly thirty intro linear algebra textbooks handy, but I'll go out on a limb and suggest

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread David Kohel
Hi, Backwards compatibility or not, I consider this either a bad design or a bug: sage: M = Matrix([[1,-1],[1,0]]) sage: f = M.minimal_polynomial() sage: f.roots() [] sage: M.eigenvalues() [0.5? - 0.866025403784439?*I, 0.5? + 0.866025403784439?*I] First of all, wh

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread Rob Beezer
Miguel, Having read #8974 carefully, I could see the default for endomorphisms going either way. My main concern is that matrices follow practice and default to providing eigenvalues (and eigenvectors) outside the base field. Endomorphisms could default to behave identically to matrices, or they

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread daveloeffler
On Jun 14, 5:24 pm, mmarco wrote: > I am OK with keeping the default extend=True. But i would like it to > be the opposite in the case of endomorphisms (i know it is not a good > idea to have different default behaviours for matrices and > endomorphisms, so i won't argue if its decided to keep it

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread mmarco
I am OK with keeping the default extend=True. But i would like it to be the opposite in the case of endomorphisms (i know it is not a good idea to have different default behaviours for matrices and endomorphisms, so i won't argue if its decided to keep it alwais true as default). My reason to pref

Re: [sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread John Cremona
I am happy with that. After all: sage: a=3 sage: a.sqrt() sqrt(3) works like this since the extend parameter defaults to True. Compare: sage: a.sqrt(extend=False) ... ValueError: square root of 3 not an integer John On 14 June 2010 16:24, William Stein wrote: > On Mon, Jun 14, 2010 at 8:22 A

Re: [sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread William Stein
On Mon, Jun 14, 2010 at 8:22 AM, Rob Beezer wrote: > On Jun 14, 6:12 am, mmarco wrote: >> So, what do you think? > > Sure, but can the default remain  extend = True  and maintain your > desire for correctness? It has to. I think it would be a very bad idea to change the default behavior, since

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread Rob Beezer
On Jun 14, 6:12 am, mmarco wrote: > So, what do you think? Sure, but can the default remain extend = True and maintain your desire for correctness? If a student has to read examples to get complex eigenvalues out of a real (or rational) matrix, the utility of Sage for teacing introductory line

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread daveloeffler
I'm happy with the proposed change; as John points out, we already have a sqrt() function that behaves similarly. David On Jun 14, 3:15 pm, mmarco wrote: > On 14 jun, 15:45, John Cremona wrote: > > > I think that sounds a good idea;  but can we call the parameter > > "extend" and not "base_exte

[sage-devel] Re: mathematically correct eigen* methods of matrices.

2010-06-14 Thread mmarco
On 14 jun, 15:45, John Cremona wrote: > I think that sounds a good idea; but can we call the parameter > "extend" and not "base_extend"? First, as that is less frightening > for users (who will need examples to show that for a real matrix, if > you want complex eigenvalues you have to ask for