ich benutze python im rahmen meines Studiums/Diplomarbeit(physik) zum ersten mal
und bin auf der suche nach einer methode zum diagonalisieren von matrizen (energie-eigenwerte und eigenzustände bestimmen).
dabei bin ich auf das paket bzw. die klasse "LinearAlgebra" gestossen, welche eine methode "eigenvalues(matrix m)" (siehe http://numpy.scipy.org/numpydoc/numdoc.htm)zur verfügung stellt ... so wie ich das verstehe ist diese nur auf "matrix"-objekte anwendbar, deren klasse wiederum eine unterklasse von "array" ist.
wie dem auch sei hier mein code:
und meine fehlermeldung:from math import *
from Numeric import *
from numpy import *
import sys
from LinearAlgebra import *
N = 10
H = matrix([[0.]*(N+1)]*(N+1))
for x in xrange(N+1):
H[x,x] = U*(N/2*(N/2-1)+(x-N/2)**2)
for x in xrange(N):
H[x,x+1] = .5*((x-N/2)*(x-N/2+1)-N/2*(N/2+1))
H[x+1,x] = H[x,x+1]
evals, evecs = eigenvectors(H)
kann mir da vielleicht irgendjemand weiter helfen ?Traceback (most recent call last):
File "test.py", line 26, in ?
evals, evecs = eigenvectors(H)
File "/usr/lib64/python2.4/site-packages/Numeric/LinearAlgebra.py", line 216, in eigenvectors
t =_commonType(a)
File "/usr/lib64/python2.4/site-packages/Numeric/LinearAlgebra.py", line 30, in _commonType
t = a.typecode()
AttributeError: 'matrix' object has no attribute 'typecode'