Beide sind direkte Löser zur Lösung linearer Systeme (im Gegensatz zu iterativen Lösern).
mldivide
EINA x = bmldivide
mldivide
für quadratische Matrizen: Wenn A symmetrisch ist und reale, positive diagonale Elemente aufweist, versucht MATLAB eine Cholesky-Faktorisierung. Wenn die Cholesky-Faktorisierung fehlschlägt, führt MATLAB eine symmetrische, unbestimmte Faktorisierung durch. Wenn A oberer Hessenberg ist, verwendet MATLAB die Gaußsche Eliminierung, um das System auf eine dreieckige Matrix zu reduzieren. Wenn A quadratisch ist, aber weder permutiert dreieckig, symmetrisch und positiv definit noch Hessenberg ist, führt MATLAB eine allgemeine Dreiecksfaktorisierung unter Verwendung der LU-Faktorisierung mit teilweisem Schwenken durch
linsolve
für quadratische Matrizen: LU-Faktorisierung mit teilweisem Schwenken
mldivide
und linsolve
für rechteckige Matrizen: QR-Faktorisierung
linsolve
opts
EIN
opts.POSDEF = true; linsolve(A,b,opts)
xEINopts
Wenn bestimmte Kriterien erfüllt sind linsolve
und mldivide
denselben Faktorisierungsprozess verwenden. Zum Beispiel für ein dichtes positives bestimmtes System, das bestimmte Eigenschaften erfüllt, oder Sie haben ein überbestimmtes System und beide führen eine Anpassung der kleinsten Quadrate durch.
Darüber hinaus linsolve
könnte auch eine symbolische Berechnung durchgeführt werden . Dies ist praktisch, wenn Sie ein kleines, unbestimmtes System haben, das unendlich viele Lösungen bietet. linsolve
ermöglicht es Ihnen, es symbolisch zu lösen, mldivide
kann das nicht. Wenn die Variablen jedoch nicht symbolisch deklariert sind mldivide
und linsolve
dieselbe Warnmeldung angezeigt wird: "Matrix ist einzigartig für die Arbeitsgenauigkeit."
Last but not least werden linsolve
keine spärlichen Systeme wie die folgende Matrix unterstützt (blauer Punkt bedeutet Eintrag ungleich Null). Während mldivide
spärliche Systeme robust handhaben könnten, wenn die Größe unter 200k mal 200k liegt.