Отличие методов solve и lstsq в NumPy заключается в том, что они делают разные предположения о системе, которую пытаются решить, и используют разные численные методы. 2
Метод solve вызывает процедуру DGESV LAPACK, которая использует факторизацию LU с последующей прямой и обратной подстановкой, чтобы найти точное решение. 2 Для этого требуется, чтобы система была точно определена, то есть чтобы A было квадратным и имело полный ранг. 2
Метод lstsq вызывает DGELSD, который использует разложение A по сингулярным значениям для нахождения решения методом наименьших квадратов. 2 Этот метод работает в переопределённых и недоопределённых случаях. 2
Таким образом, для базовых квадратных систем с полным рангом обычно проще и эффективнее использовать метод solve, а для недоопределённых или переопределённых систем — lstsq. 1