Entrambi sono risolutore diretto per risolvere sistemi lineari (in opposizione al risolutore iterativo).
mldivideUNA x = bmldivide
mldivideper matrici quadrate: se A è simmetrico e presenta elementi diagonali reali positivi, MATLAB tenta una fattorizzazione di Cholesky. Se la fattorizzazione di Cholesky fallisce, MATLAB esegue una fattorizzazione simmetrica e indefinita. Se A è Hessenberg superiore, MATLAB utilizza l'eliminazione gaussiana per ridurre il sistema a una matrice triangolare. Se A è quadrato ma non è né permutato triangolare, simmetrico e positivo definito, né Hessenberg, MATLAB esegue una fattorizzazione triangolare generale usando la fattorizzazione LU con pivot parziale
linsolve per matrici quadrate: fattorizzazione LU con pivot parziale
mldividee linsolveper matrici rettangolari: fattorizzazione QR
linsolveoptsUN
opts.POSDEF = true; linsolve(A,b,opts)
XUNopts
Se alcuni criteri sono soddisfatti linsolvee mldivideutilizzano lo stesso processo di fattorizzazione. Ad esempio, per un sistema definito positivo denso che soddisfa determinate proprietà, oppure si dispone di un sistema sovradeterminato ed entrambi eseguono un adattamento meno quadrato.
Inoltre, linsolvepotrebbe anche eseguire calcoli simbolici . Ciò è utile quando si dispone di un piccolo sistema sottodeterminato che ha un numero infinito di soluzioni. linsolveti consente di risolverlo simbolicamente, mldividenon puoi farlo. Tuttavia, se le variabili non sono dichiarate simbolicamente mldividee linsolvedarebbero lo stesso messaggio di avviso "Matrix è singolare per la precisione di lavoro".
Ultimo ma non meno importante, linsolvenon supporta sistemi sparsi come la seguente matrice (punto blu significa immissione diversa da zero). Mentre mldividepotrebbe gestire sistemi sparsi in modo robusto quando la dimensione è inferiore a 200k per 200k.
