Ambos são solucionadores diretos para resolver sistemas lineares (opostos ao solucionador iterativo).
mldivideUMAA x = bmldivide
mldividepara matrizes quadradas: Se A é simétrico e possui elementos diagonais reais e positivos, o MATLAB tenta uma fatoração de Cholesky. Se a fatoração de Cholesky falhar, o MATLAB executará uma fatoração simétrica e indefinida. Se A for Hessenberg superior, o MATLAB usa a eliminação gaussiana para reduzir o sistema a uma matriz triangular. Se A é quadrado, mas não é permeado triangular, simétrico e definido positivo, ou Hessenberg, o MATLAB executa uma fatoração triangular geral usando a fatoração LU com pivô parcial
linsolve para matrizes quadradas: fatoração LU com pivô parcial
mldividee linsolvepara matrizes retangulares: fatoração QR
linsolveoptsUMA
opts.POSDEF = true; linsolve(A,b,opts)
xUMAopts
Se determinados critérios sejam cumpridos, linsolvee mldivideque utilizam o mesmo processo de fatoração. Por exemplo, para um sistema definido positivo e denso que satisfaça certas propriedades, ou você tem um sistema sobredeterminado e ambos executam o ajuste menos quadrado.
Além disso, linsolvetambém poderia realizar computação simbólica . Isso é útil quando você tem um pequeno sistema sub-determinado, com um número infinito de soluções. linsolvepermite que você resolva simbolicamente, mldividenão pode fazer isso. No entanto, se as variáveis não forem declaradas simbolicamente mldividee linsolvereceberem a mesma mensagem de aviso "Matriz é singular para trabalhar com precisão".
Por último, mas não menos importante, linsolvenão suporta sistemas esparsos como a seguinte matriz (ponto azul significa entrada diferente de zero). Embora mldividepossa lidar com sistemas esparsos com robustez quando o tamanho estiver abaixo de 200k por 200k.
