Cả hai đều là bộ giải trực tiếp để giải các hệ tuyến tính (đối lập với bộ giải lặp).
mldivide
MộtA x = bmldivide
mldivide
đối với ma trận vuông: Nếu A đối xứng và có các phần tử đường chéo thực, dương, MATLAB sẽ thử hệ số Cholesky. Nếu hệ số Cholesky thất bại, MATLAB thực hiện phép nhân tử đối xứng, không xác định. Nếu A là Hessenberg trên, MATLAB sử dụng loại bỏ Gaussian để giảm hệ thống thành ma trận tam giác. Nếu A là hình vuông nhưng không được xác định hình tam giác, đối xứng và dương xác định, hoặc Hessenberg, thì MATLAB thực hiện một hệ số tam giác tổng quát bằng cách sử dụng hệ số LU với xoay vòng một phần
linsolve
cho ma trận vuông: hệ số LU với xoay vòng một phần
mldivide
và linsolve
cho ma trận hình chữ nhật: hệ số QR
linsolve
opts
Một
opts.POSDEF = true; linsolve(A,b,opts)
xMộtopts
Nếu một số tiêu chí nhất định được đáp ứng linsolve
và mldivide
sử dụng quy trình nhân tố hóa tương tự. Ví dụ, đối với một hệ thống xác định dương dày đặc đáp ứng các tính chất nhất định hoặc bạn có một hệ thống quá hạn và cả hai đều thực hiện khớp vuông nhỏ nhất.
Hơn nữa, linsolve
cũng có thể thực hiện tính toán tượng trưng . Điều này rất hữu ích khi bạn có một hệ thống nhỏ chưa được xác định rõ ràng với số lượng giải pháp vô hạn. linsolve
cho phép bạn giải quyết nó một cách tượng trưng, mldivide
không thể làm điều đó. Tuy nhiên, nếu các biến không được khai báo một cách tượng trưng mldivide
và linsolve
sẽ cung cấp cho bạn thông điệp cảnh báo tương tự "Ma trận là số ít với độ chính xác làm việc".
Cuối cùng nhưng không kém phần quan trọng, linsolve
không hỗ trợ các hệ thống thưa thớt như ma trận sau (dấu chấm màu xanh có nghĩa là mục nhập khác không). Trong khi mldivide
có thể xử lý các hệ thống thưa thớt mạnh mẽ khi kích thước dưới 200k x 200k.