Matlab, Operator A \ B

9

Was ist das Ergebnis der Operation A \ B, wobei A (1, m) und B (1, m)?

Im Handbuch steht geschrieben:

%Vor%

Also bedeutet es x = inv (A '* A) * A' * B? Die Matrix A '* A ist jedoch singulär ...

Nehmen wir an:

%Vor%

Wenn MLS verwendet wird:

%Vor%

Also sind A \ B und inv (A '* A) * A' * B anders ...

    
justik 14.11.2012, 14:10
quelle

3 Antworten

5

Mein Matlab (R2010b) sagt ziemlich viel darüber aus, was A \ B tut:

mldivide (A, B) und das Äquivalent A \ B führen die Matrix-Links-Division (umgekehrter Schrägstrich) aus. A und B müssen Matrizen sein, die die gleiche Anzahl von Zeilen haben, außer A ist ein Skalar, in welchem ​​Fall A \ B eine elementweise Aufteilung durchführt - dh A \ B = A. \ B.

Wenn A eine quadratische Matrix ist, ist A \ B ungefähr dasselbe wie inv (A) * B, außer dass es auf eine andere Weise berechnet wird. Wenn A eine n-mal-n-Matrix ist und B ein Spaltenvektor mit n Elementen oder eine Matrix mit mehreren solcher Spalten ist, dann ist X = A \ B die Lösung für die Gleichung AX = B. Eine Warnmeldung wird angezeigt, wenn A ist schlecht skaliert oder nahezu singulär.

Wenn A eine m-mal-n-Matrix mit m ~ = n ist und B ein Spaltenvektor mit m Komponenten oder eine Matrix mit mehreren solcher Spalten ist, dann ist X = A \ B die Lösung im Sinne der kleinsten Quadrate zu dem unter- oder überbestimmten Gleichungssystem AX = B. Mit anderen Worten minimiert X die Norm (A * X - B), die Länge des Vektors AX - B. Der Rang k von A wird aus der QR-Zerlegung mit der Spalte bestimmt schwenken. Die berechnete Lösung X hat höchstens k von null verschiedene Elemente pro Spalte. Wenn k & lt; n ist dies normalerweise nicht die selbe Lösung wie x = pinv (A) * B, die eine Lösung der kleinsten Quadrate zurückgibt.

mrdivide (B, A) und das entsprechende B / A führen eine Matrix-Rechts-Division (Schrägstrich) durch. B und A müssen die gleiche Anzahl von Spalten haben.

Wenn A eine quadratische Matrix ist, ist B / A ungefähr dasselbe wie B * inv (A). Wenn A eine n-mal-n-Matrix ist und B ein Zeilenvektor mit n Elementen oder eine Matrix mit mehreren solcher Zeilen ist, dann ist X = B / A die Lösung für die Gleichung XA = B, die durch Gaußsche Eliminierung mit partieller Verschwenkung berechnet wird . Eine Warnung wird angezeigt, wenn A schlecht skaliert oder fast singulär ist.

Wenn B eine m-mal-n-Matrix mit m ~ = n ist und A ein Spaltenvektor mit m Komponenten oder eine Matrix mit mehreren solcher Spalten ist, dann ist X = B / A die Lösung im Sinne der kleinsten Quadrate zu dem unter- oder überbestimmten Gleichungssystem XA = B.

    
FakeDIY 14.11.2012, 15:22
quelle
3

x = inv (A'*A)*A'*B gilt für über bestimmte Systeme (d. h. welches Merkmal A als n x m Matrix mit n>m ; unter diesen Umständen ist A'A invertierbar).

In Ihrem Fall haben Sie ein unterbestimmtes System.

Also, was kann passieren?

Meine Meinung, obwohl Sie zumindest in Ihrem Fall nachschauen können:

wenn Sie A\B Matlab lösen ein Optimierungsproblem im umgekehrten Sinne w.r.t. die üblichen kleinsten Quadrate, das ist

%Vor%

Dabei ist S die Menge der Lösungen. Mit anderen Worten, es gibt Ihnen die Lösung des Systems mit der minimalen L ^ 2 Norm. (Bedenken Sie, dass Sie das Problem zumindest in Ihrem Fall mit den Händen lösen können).

    
Acorbe 14.11.2012 15:12
quelle
0

Link zur Antwort in einem anderen Forum:

Ссылка

Danke für Ihre Hilfe.

    
justik 14.11.2012 19:12
quelle

Tags und Links