Wie löst man die (nicht triviale) Lösung Ax = 0 für x in MATLAB?Lösen einer Matrix in MATLAB?
Ich habe versucht zu lösen ('A * x = 0', 'x'), aber ich bekomme nur 0 für eine Antwort.
Wie löst man die (nicht triviale) Lösung Ax = 0 für x in MATLAB?Lösen einer Matrix in MATLAB?
Ich habe versucht zu lösen ('A * x = 0', 'x'), aber ich bekomme nur 0 für eine Antwort.
Bitte beachten Sie, dass die Null (A) tut das Gleiche (für einen Rang-defiziente Matrix) als die folgenden, aber dies wird mit der svd(A)
Funktion in MATLAB (die wie ich in meinen Kommentaren erwähnt habe, ist, was null(A)
tut).
[U S V] = svd(A);
x = V(:,end)
Für mehr dazu, hier ein link im Zusammenhang mit diesem (es kann nicht hier posten aufgrund der Formeln).
Wenn Sie ein intuitiveres Gefühl für Singular- und Eigenwertzerlegungen haben möchten, lesen Sie in MATLAB eigshow
.
eingegangen danke für die Erklärung :) – yxk
Sie können N = null(A)
verwenden, um eine Matrix N
zu erhalten. Jede der Spalten von N
(oder tatsächlich irgendeine lineare Kombination von Spalten von N
) erfüllt Ax = 0
. Dies beschreibt alle möglichen solchen x
- Sie haben gerade eine orthogonale Basis für den Nullraum von A
gefunden.
Hinweis: Sie können einen solchen x
nur finden, wenn A
einen nicht-trivialen Nullraum hat. Dies wird auftreten, wenn rank(A) < #cols of A
.
Sie können sehen, ob MATLAB eine singuläre Wertzerlegung in seiner Toolbox hat. Das wird Ihnen den Nullraum des Vektors geben.
null(A)
wird Ihnen die direkte Antwort geben. Wenn Sie eine nicht triviale Lösung benötigen, versuchen Sie es mit einem reduzierten Zeilenrang und beziehen Sie sich auf die erste Seite der PDF.
R = rref(A)
ist ein umkehrbar? – manji
Invertierbarkeit ist nicht besonders relevant (für sich). – Peter
Wenn A invertierbar ist, ist die einzige Lösung für Ax = 0 0, nein? – manji