Wie löst man die (nicht triviale) Lösung Ax = 0 für x in MATLAB ?
A = matrix
x = matrix trying to solve for
Ich habe versucht, solve('A * x = 0', 'x') zu lösen, aber ich erhalte nur 0 als Antwort.
Wie löst man die (nicht triviale) Lösung Ax = 0 für x in MATLAB ?
A = matrix
x = matrix trying to solve for
Ich habe versucht, solve('A * x = 0', 'x') zu lösen, aber ich erhalte nur 0 als Antwort.
Bitte beachten Sie, dass null(A) das Gleiche tut (für eine Matrix mit Rangdefizit) wie im Folgenden, allerdings unter Verwendung der svd(A)
Funktion in MATLAB (die, wie ich in meinen Kommentaren erwähnt habe, die null(A)
tut).
[U S V] = svd(A);
x = V(:,end)
Weitere Informationen hierzu finden Sie in einem lien zu diesem Thema (kann es wegen der Formeln nicht hier veröffentlichen).
Wenn Sie ein intuitiveres Gefühl für Singular- und Eigenwertzerlegungen bekommen möchten, lesen Sie eigshow
in MATLAB.
Sie können verwenden N = null(A)
um eine Matrix zu erhalten N
. Jede der Spalten von N
(oder jede lineare Kombination von Spalten von N
) wird erfüllt Ax = 0
. Dies beschreibt alle möglichen solchen x
- haben Sie gerade eine orthogonale Basis für den Nullraum von A
.
Hinweis: Sie können nur eine solche x
wenn A
einen nicht-trivialen Nullraum hat. Dies ist der Fall, wenn rank(A) < #cols of A
.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.