Beide sind direkte Löser zur Lösung linearer Systeme (im Gegensatz zu iterativen Lösern).
mldivideEINA x = bmldivide
mldividefü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
mldivideund linsolvefür rechteckige Matrizen: QR-Faktorisierung
linsolveoptsEIN
opts.POSDEF = true; linsolve(A,b,opts)
xEINopts
Wenn bestimmte Kriterien erfüllt sind linsolveund mldividedenselben 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 linsolvekönnte auch eine symbolische Berechnung durchgeführt werden . Dies ist praktisch, wenn Sie ein kleines, unbestimmtes System haben, das unendlich viele Lösungen bietet. linsolveermöglicht es Ihnen, es symbolisch zu lösen, mldividekann das nicht. Wenn die Variablen jedoch nicht symbolisch deklariert sind mldivideund linsolvedieselbe Warnmeldung angezeigt wird: "Matrix ist einzigartig für die Arbeitsgenauigkeit."
Last but not least werden linsolvekeine spärlichen Systeme wie die folgende Matrix unterstützt (blauer Punkt bedeutet Eintrag ungleich Null). Während mldividespärliche Systeme robust handhaben könnten, wenn die Größe unter 200k mal 200k liegt.
