Seite 1 von 1

Eingabeform

Verfasst: Sonntag 10. Januar 2010, 11:52
von sorgenlos
Hallo Leute, ich habe ein Script welches mir in der Mathematik zur QR-Zerlegung verhilft mit Hilfe der Householdertransformation (wen es interessiert: http://de.wikipedia.org/wiki/Householdertransformation)

Meine Frage ist es wie ich die Eingabe der Matrix aussieht. Ich habs mit A = [ [0,1,0,1,1], [0,1,0,1,1], [0,1,0,1,1], [0,1,0,1,1], [0,1,0,1,1] ] probiert so geht's nicht. Bzw. weiß ich nicht woher das "shape" kommt.

Code: Alles auswählen

def householder(A):

    m = A.shape[0]; n = A.shape[1]; Q = eye(m, n);

    QA = A

    for j in range(n-1):

        a = QA[j:, j]

        na = linalg.norm(a)

        v = a + sign(a[0].item)*na*eye(m-j,1)

        nv2 = linalg.norm(v)**2

        Qr = eye(m-j, n-j) - 2.0*dot(v, v.T)/nv2

        Qrx = eye(m, n); Qrx[j:, j:] = Qr

        Q = dot(Qrx, Q)

        QA = dot(Qrx, A)

    R = dot(Q, A)

    return Q, R

Verfasst: Sonntag 10. Januar 2010, 11:58
von Hyperion
Was steht denn noch so im Script? (Wo hast Du das denn her? - von Dir stammt es ja offensichtlich nicht). Da fehlen ja def. noch imports (z.B. für eye() oder dot() oder "linalg".

Verfasst: Sonntag 10. Januar 2010, 12:01
von sma
Frage doch am besten den, der das Script geschrieben hat, was die Funktion da für ein Objekt erwartet, das ein "shape"-Attribut hat. Und dann frage doch gleich auch, wo er (oder sie) die "eye"-Funktion, das Modul "linalg" und noch ein paar andere unbekannte Funktionen für dich hat.

Ich würde ja "numpy" raten...

Stefan

Verfasst: Sonntag 10. Januar 2010, 12:03
von sorgenlos
ja das script ist selbst nicht von mir sonst hät ich glaub ich den dreh raus :D
ich hab es mal aus dem mathplanet forum aufgegabelt. hab den link nicht parat gerade. ich hätte auch auf numpy getippt nach 10min recherche. kenn mich mit numpy aber leider nicht aus :/

Verfasst: Sonntag 10. Januar 2010, 12:05
von hendrikS

Verfasst: Sonntag 10. Januar 2010, 12:09
von Hyperion
Das hab ich mal gefunden:

http://www.scipy.org/Tentative_NumPy_Tu ... d71602cf93

http://www.scipy.org/Numpy_Example_List#eye

http://www.scipy.org/Numpy_Example_List#dot

So, das scheint mir ja eindeutig. Also numpy installieren, imports setzen und dann sollte es wohl laufen.

Verfasst: Sonntag 10. Januar 2010, 12:13
von sorgenlos
hab grade eben schon mal from numpy import * reingehauen, steh aber trotzdem iwie auf dem schlauch, mit array wills nicht funktionieren.

Verfasst: Sonntag 10. Januar 2010, 12:15
von Hyperion
sorgenlos hat geschrieben:hab grade eben schon mal from numpy import * reingehauen,
* importe sind idR nicht sinnvoll... Python wird schon meckern, wenn es was nicht kennt ;-)
steh aber trotzdem iwie auf dem schlauch, mit array wills nicht funktionieren.
Jetzt ist alles klar!