alex wrote:
> i have trouble in collecting the eigenvectors to form an eigenvector
> matrix (in the order given by the eigenvalue computation...).
> 
> How can i do this ?
> 
> I have tried all matrix commands.
> 


For a "normal" matrix (i.e., not symbolic), you'll probably want to use 
the .eigenmatrix_right() method.  For a symbolic matrix (until we fix it 
to be consistent), you can generate the eigenvectors as below and just 
do something like:


matrix(M._maxima_().eigenvectors().sage()[1:]).transpose()

This gets all of the eigenvectors, puts them as rows in a matrix, then 
transposes the matrix so that they are actually columns.

Jason









> THX.
> 
> On Mar 4, 6:22 pm, Jason Grout <jason-s...@creativetrax.com> wrote:
>> Alexander Hupfer wrote:
>>> thank you for your quick reply.
>>> Just for sake of documentation:
>>> the output reads as [[[eigenvalue1, eigenvalue2],[multiplicity of
>>> EVal1, multiplicity of EVal2]], Eigenvect of EVal1,..., Eigenvect
>>> EVal1, Eigenvect of EVal2,..., Eigenvect of EVal2]
>> Interestingly, there doesn't seem to be an easy way to tell (from the
>> output) which eigenvector goes with which eigenvalue in the following
>> examples:
>>
>> sage: M = matrix(SR,4,4, [[0,1,0,0],[0,0,0,0],[0,0,2,0],[0,0,0,2]]); M
>>
>> [0 1 0 0]
>> [0 0 0 0]
>> [0 0 2 0]
>> [0 0 0 2]
>> sage: M._maxima_().eigenvectors().sage()
>> [[[0, 2], [2, 2]], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
>> sage: M = matrix(SR,4,4, [[0,0,0,0],[0,0,0,0],[0,0,2,1],[0,0,0,2]]); M
>>
>> [0 0 0 0]
>> [0 0 0 0]
>> [0 0 2 1]
>> [0 0 0 2]
>> sage: M._maxima_().eigenvectors().sage()
>> [[[0, 2], [2, 2]], [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0]]
>>
>> I believe MMA helps you by making sure that the list ofeigenvectorsis
>> exactly as long as the sum of the multiplicities by inserting zero
>> vectors where needed (in other words, you can just count multiplicities
>> to get a generating set for the eigenspace).  The Sage
>> eigenvectors_right command avoids the problem by returning a set 
>> ofeigenvectorsassociated with each eigenvalue.
>>
>> Thanks,
>>
>> Jason
>>
>>
>>
>>> On 4 Mrz., 12:44, Jason Grout <jason-s...@creativetrax.com> wrote:
>>>> sonium wrote:
>>>>> Hi, I have problems calculating theeigenvectorsof asymbolicmatrix.
>>>>> I tried:
>>>>> a,b = var('a'),var('b')
>>>>> M = matrix(SR,4,4,((a, 0, 0, 0), (0,-a,0,0), (0,0,a,0), (0,0,0,-a)))
>>>>> M.eigenvectors_right()
>>>>> what results in:
>>>>> AttributeError: 'SymbolicArithmetic' object has no attribute 'degree'
>>>> This comes from us not having a special implementation of the eigen
>>>> functions forsymbolicmatrices (i.e., using maxima).  For now, you can do:
>>>> sage: a,b = var('a'),var('b')
>>>> sage: M = matrix(SR,4,4,((a, 0, 0, 0), (0,-a,0,0), (0,0,a,0), (0,0,0,-a)))
>>>> sage: M._maxima_().eigenvectors().sage()
>>>> [[[-a, a], [2, 2]], [0, 1, 0, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 0, 1, 0]]
>>>> Seehttp://maxima.sourceforge.net/docs/manual/en/maxima_25.html#Item_003a...
>>>> to understand the output of the command.
>>>> The specific error you received came from there not being a .degree()
>>>> method for asymbolicpolynomial.
>>>>> and
>>>>> P.<a,b> = PolynomialRing(QQ)
>>>>> M = matrix(P,4,4,((a, 0, 0, 0), (0,-a,0,0), (0,0,a,0), (0,0,0,-a)))
>>>>> M.eigenvectros_right()
>>>>> what gives:
>>>>> Traceback (most recent call last):
>>>>>   File "<stdin>", line 1, in <module>
>>>>>   File "/home/sage/sagenb/sage_notebook/worksheets/sonium/1/code/
>>>>> 26.py", line 6, in <module>
>>>>>     M.eigenvectors_right()
>>>>>   File "/home/sage/sage_install/sage-a/local/lib/python2.5/site-
>>>>> packages/SQLAlchemy-0.4.6-py2.5.egg/", line 1, in <module>
>>>>>   File "matrix2.pyx", line 3054, in
>>>>> sage.matrix.matrix2.Matrix.eigenvectors_right (sage/matrix/matrix2.c:
>>>>> 18020)
>>>>>   File "matrix2.pyx", line 3000, in
>>>>> sage.matrix.matrix2.Matrix.eigenvectors_left (sage/matrix/matrix2.c:
>>>>> 17523)
>>>>>   File "matrix2.pyx", line 2755, in
>>>>> sage.matrix.matrix2.Matrix.eigenspaces_left (sage/matrix/matrix2.c:
>>>>> 16250)
>>>>>   File "matrix2.pyx", line 1058, in sage.matrix.matrix2.Matrix.fcp
>>>>> (sage/matrix/matrix2.c:7456)
>>>>>   File "polynomial_element.pyx", line 2288, in
>>>>> sage.rings.polynomial.polynomial_element.Polynomial.factor (sage/rings/
>>>>> polynomial/polynomial_element.c:18681)
>>>>> NotImplementedError
>>>> I'm not sure what is going on here...
>>>> Thanks,
>>>> Jason
> > 
> 


--~--~---------~--~----~------------~-------~--~----~
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
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to