Вони обидва є прямим розв’язувачем для вирішення лінійних систем (протилежних ітераційному розв'язувачу).
mldivide
АA x = bmldivide
mldivide
для квадратних матриць: Якщо A симетричний і має реальні, позитивні діагональні елементи, MATLAB намагається факторизувати Холеського. Якщо факторизація Холеського не вдається, MATLAB виконує симетричну, невизначену факторизацію. Якщо A є верхнім Гессенбергом, MATLAB використовує усунення Гаусса для зведення системи до трикутної матриці. Якщо A квадратний, але не є перестановленим трикутним, симетричним і позитивним певним, або Гессенберг, то MATLAB виконує загальну трикутну факторизацію, використовуючи LU-факторизацію з частковим поворотом
linsolve
для квадратних матриць: LU-факторизація з частковим поворотом
mldivide
і linsolve
для прямокутних матриць: QR-факторизація
linsolve
opts
А
opts.POSDEF = true; linsolve(A,b,opts)
хАopts
Якщо певні критерії дотримані, linsolve
і mldivide
дійсно використовують один і той же процес факторизації. Наприклад, для щільної позитивної визначеної системи, що задовольняє певним властивостям, або ви маєте переопределену систему, і обидві виконують мінімальну площу.
Більше того, linsolve
також можна було б виконати символічні обчислення . Це зручно, коли у вас є невелика недостатньо визначена система, яка має нескінченну кількість рішень. linsolve
дозволяє вирішити це символічно, mldivide
не може цього зробити. Однак, якщо змінні не оголошуються символічно, mldivide
і linsolve
дають вам те саме попередження: "Матриця є сингулярною до робочої точності".
І останнє, але не менш важливе, linsolve
не підтримує такі розріджені системи, як наступна матриця (синя крапка означає ненульовий запис). Хоча mldivide
міг би впоратися з розрідженими системами надійно, коли розмір менше 200k на 200k.