Ambos são solucionadores diretos para resolver sistemas lineares (opostos ao solucionador iterativo).
mldivide
UMAA x = bmldivide
mldivide
para 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
mldivide
e linsolve
para matrizes retangulares: fatoração QR
linsolve
opts
UMA
opts.POSDEF = true; linsolve(A,b,opts)
xUMAopts
Se determinados critérios sejam cumpridos, linsolve
e mldivide
que 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, linsolve
també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. linsolve
permite que você resolva simbolicamente, mldivide
não pode fazer isso. No entanto, se as variáveis não forem declaradas simbolicamente mldivide
e linsolve
receberem a mesma mensagem de aviso "Matriz é singular para trabalhar com precisão".
Por último, mas não menos importante, linsolve
não suporta sistemas esparsos como a seguinte matriz (ponto azul significa entrada diferente de zero). Embora mldivide
possa lidar com sistemas esparsos com robustez quando o tamanho estiver abaixo de 200k por 200k.