Les deux sont des solveurs directs pour résoudre des systèmes linéaires (opposés au solveur itératif).
mldivide
UNEA x = bmldivide
mldivide
pour les matrices carrées: Si A est symétrique et a des éléments diagonaux réels et positifs, MATLAB tente une factorisation de Cholesky. Si la factorisation de Cholesky échoue, MATLAB effectue une factorisation symétrique et indéfinie. Si A est Hessenberg supérieur, MATLAB utilise l'élimination gaussienne pour réduire le système à une matrice triangulaire. Si A est carré mais n'est ni permuté triangulaire, symétrique et défini positif, ni Hessenberg, alors MATLAB effectue une factorisation triangulaire générale en utilisant la factorisation LU avec pivotement partiel
linsolve
pour les matrices carrées: factorisation LU avec pivotement partiel
mldivide
et linsolve
pour les matrices rectangulaires: factorisation QR
linsolve
opts
UNE
opts.POSDEF = true; linsolve(A,b,opts)
XUNEopts
Si certains critères sont remplis linsolve
et mldivide
utilisent le même processus de factorisation. Par exemple, pour un système défini positif positif dense satisfaisant certaines propriétés, ou vous avez un système surdéterminé et les deux effectuent un ajustement moins carré.
En outre, linsolve
pourrait également effectuer un calcul symbolique . C'est pratique lorsque vous avez un petit système sous-déterminé qui a un nombre infini de solutions. linsolve
vous permet de le résoudre symboliquement, mldivide
ne peut pas le faire. Cependant, si les variables ne sont pas déclarées symboliquement, mldivide
et linsolve
vous donneraient le même message d'avertissement "La matrice est singulière pour la précision de travail."
Last but not least, linsolve
ne prend pas en charge les systèmes clairsemés comme la matrice suivante (le point bleu signifie une entrée non nulle). Bien qu'il mldivide
puisse gérer les systèmes clairsemés de manière robuste lorsque la taille est inférieure à 200k par 200k.