Yes, there were changes, including the output format, as of 4.4 (about 7 weeks ago).
See "eigenmatrix_right totally broken" at http://trac.sagemath.org/sage_trac/ticket/4756 Rob On Jun 6, 7:27 am, Mike Witt <msg...@gmail.com> wrote: > Has something changed recently. I'm running v.4.3.5 > > [m...@vector ~]$ sage > ---------------------------------------------------------------------- > | Sage Version 4.3.5, Release Date: 2010-03-28 | > | Type notebook() for the GUI, and license() for information. | > ---------------------------------------------------------------------- > sage: M=matrix([[0, .707-.707*i],[.707+.707*i, 0]]) > sage: M = M.change_ring(CDF) > sage: spectrum = M.eigenvectors_right() > sage: evalue = spectrum[0][0] > sage: evector = spectrum[0][1][0] > sage: M*evector-evalue*evector > sage: evalue > 0.999848988598 + 5.55111512313e-17*I > sage: evector > -0.99984898859777827 > [ 0.999698 + 5.55027684145e-17*I -0.706893234939 + 0.706893234939*I] > [-0.706893234939 - 0.706893234939*I 0.999698 + 5.55027684145e-17*I] > sage: > > On 06/05/2010 10:41:06 PM, Rob Beezer wrote: > > > Mike, > > > "Right eigenvectors" should be column vectors placed on the right side > > of the matrix. The output is a triple for each eigenvalue: eigenvalue > > first, then a list of eigenvectors. While the eigenvectors print as > > rows, they will behave like columns when you want them to. Indexing > > into the output just takes some thought: > > > sage: spectrum = M.eigenvectors_right() > > sage: evalue = spectrum[0][0] > > sage: evector = spectrum[0][1][0] > > sage: M*evector-evalue*evector > > (-3.33066907388e-16 + 9.47634626984e-17*I, 5.55111512313e-17) > > > So for the first eigenvalue, the output (up to rounding-off) is the > > zero vector, as expected if the items are really an eigenvalue and > > right eigenvector of M. > > > Rob > > > On Jun 5, 7:03 pm, Mike Witt <msg...@gmail.com> wrote: > > > I'm confused about this, and hoping for some clarification ... > > > > sage: M=matrix([[0, .707-.707*i],[.707+.707*i, 0]]) > > > sage: M = M.change_ring(CDF) > > > sage: M > > > [ 0 0.707 - 0.707*I] > > > [0.707 + 0.707*I 0] > > > sage: M.eigenvectors_left() > > > ([0.999848988598 + 5.55111512313e-17*I, -0.999848988598 - > > > 5.55111512313e-17*I], [0.707106781187 0.5 + 0.5*I] > > > [0.707106781187 -0.5 - 0.5*I]) > > > sage: M.eigenvectors_right() > > > ([0.999848988598 + 5.55111512313e-17*I, -0.999848988598 - > > > 5.55111512313e-17*I], [0.707106781187 0.707106781187] > > > [ 0.5 + 0.5*I -0.5 - 0.5*I]) > > > > I believe that eigenvectors_left() is giving me the answers that > > > I expected. But I don't understand the values returned by > > > eigenvectors_right(). > > > I *thought* that eigenvectors_right() was the one I wanted to call > > in > > > order > > > to get "regular old eigenvectors" (as a mathematical novice such as > > > > > myself > > > would be expecting to see). > > > > Thanks, > > > > -Mike > > > -- > > To post to this group, send email to sage-support@googlegroups.com > > To unsubscribe from this group, send email to > > sage-support+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/sage-support > > URL:http://www.sagemath.org > > -- To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org