Frage

Dies ist, was ich tun muss -

Ich habe diese Gleichung -

Ax = y

, wobei A eine rationale m * n-Matrix (m <= n), und x und y sind Vektoren die richtige Größe. Ich weiß, A und y, ich weiß nicht, was x gleich. ich auch wissen, dass es kein x ist, wo Ax gleich genau y. Ich mag den Vektor x finden ‚so dass Ax‘ so nahe wie möglich zu y. Was bedeutet, dass (Ax‘- y) so nahe wie möglich ist (0,0,0, ... 0)

.

Ich weiß, dass ich entweder die lstsq Funktion verwenden müssen: http://www.scipy.org/doc/numpy_api_docs/ numpy.linalg.linalg.html # lstsq

oder die SVD-Funktion: http://www.scipy.org/doc/numpy_api_docs/ numpy.linalg.linalg.html # sVD

Ich verstehe nicht, die Dokumentation überhaupt. Kann jemand bitte zeigen mir, wie diese Funktionen nutzen, um mein Problem zu lösen.

Vielen Dank !!!

War es hilfreich?

Lösung

SVD ist für den Fall von m

Die Dokumentation für lstsq sieht nicht sehr hilfreich. Ich glaube, das ist kleinste Quadrate, für den Fall, dass m> n.

Wenn m SVD .

Andere Tipps

Die aktualisierte Dokumentation kann ein bisschen mehr hilfreich sein ... sieht aus wie Sie wollen

numpy.linalg.lstsq(A, y)

Der SVD der Matrix A gibt Ihnen orthogonale Matrizen U und V und Diagonalmatrix Σ, so dass

A = U Σ V T

Dabei steht     U U T = I ;     V V T = I

Wenn also

x A = y

dann

x U Σ V T = y

x U Σ V T V = y V

x U Σ = y V

U T x Σ = y V

x Σ = U y V

x = Σ -1 U T y V

x = V T Σ -1 U T y

So gegeben SVD von A Sie können erhalten x .


Obwohl für allgemeine Matrizen AB ! = BA , es ist wahr für Vektor x , die x U = = U T x .

Man betrachtet beispielsweise x = (x, y), U = (a, b, c, d):

x U = (x, y) (a, b, c, d)

= (xa + yc, xb + km)

= (ax + cy, bx + dy)

= (a, c; b, d) (x; y)

= U T x

Es ist ziemlich offensichtlich, wenn man sich die Werte aussehen in x U ist die Skalarprodukte x und die Spalten von U , und die Werte in U T x , um die Skalarprodukte der wobei x und die Reihen von U T und die Beziehung von Zeilen und Spalten in der Umsetzung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top