kein durchblick bei NumPy/LinearAlgebra.py

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Simonheld
User
Beiträge: 2
Registriert: Sonntag 11. Mai 2008, 13:31

kein durchblick bei NumPy/LinearAlgebra.py

Beitragvon Simonheld » Sonntag 11. Mai 2008, 13:46

Hallo
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:
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)



und meine fehlermeldung:
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'

kann mir da vielleicht irgendjemand weiter helfen ?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Beitragvon Darii » Sonntag 11. Mai 2008, 18:52

Ich kenne mich mit Numpy nicht so aus, aber versuch erstmal die ganzen Sternchenimports zu vermeiden. Das wird vermutlich die Probleme verursachen.
Und beschräke dich am besten nur auf numpy. Numeric/LinearAlgebra ist veraltet. Versuchs mal mit der Funktion "eig" aus "numpy.linalg"

Achja: Was ist U?
Zuletzt geändert von Darii am Sonntag 11. Mai 2008, 18:58, insgesamt 4-mal geändert.
Simonheld
User
Beiträge: 2
Registriert: Sonntag 11. Mai 2008, 13:31

Beitragvon Simonheld » Montag 12. Mai 2008, 12:29

ach ja die zeile wo ich U gesetzt habe, habe ich beim posten anscheinend mit rausgetan alsich die kommentare gelöscht habe (wg. besserer Übersicht)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]