Нет, это невозможно, так как указано в np.linalg.solve
документах .
Проблема в том, что с учетом Ax = b
, если A
не является квадратным, то ваше уравнение либо переопределено, либо недоопределено, если предположить, что все строки в A
линейно независимы. Это означает, что не существует ни единого x
, который бы решал это уравнение.
Интуитивно понятно, что идея в том, что если у вас есть n
(длина x
) переменных, которые вы пытаетесь найти, то вам нужно ровно n
уравнений, чтобы найти уникальное решение для x
, предполагая, что эти уравнения не являются «избыточными». В этом случае «избыточный» означает линейно зависимый: одно уравнение равно линейной комбинации одного или нескольких других уравнений.
В этом сценарии одна, возможно, полезная вещь - найти x
, который минимизирует norm(b - Ax)^2
(т. Е. линейное решение наименьших квадратов ):
x, _, _, _ = np.linalg.lsq(A, b)