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