Решите линейное уравнение в питоне XA = B

Линейное уравнение XA = B, мы знаем, что «X = B * inv(A)». где A, B, X - все матрицы.

в матлабе можно решить:

X = B / A

это позволяет избежать обратной матрицы, которая быстра. есть ли аналогичная форма в python с использованием numpy?


person jason    schedule 15.10.2018    source источник
comment
Разве ты не можешь просто сделать x = b * 1/a? Или я просто плохо разбираюсь в этом   -  person wanderer0810    schedule 16.10.2018
comment
извините за путаницу, они все матричные, я их обновлю   -  person jason    schedule 16.10.2018
comment
Боюсь, в numpy такой функции нет. см. mathesaurus.sourceforge.net/matlab-numpy.html.   -  person Heaven    schedule 16.10.2018
comment
Хороший ресурс, есть ли способ решить XA = B в python?   -  person jason    schedule 16.10.2018
comment
Вы видели это связано?   -  person jedwards    schedule 16.10.2018
comment
Я вижу, это дубликат. спасибо за вашу помощь.   -  person jason    schedule 16.10.2018


Ответы (2)


Используйте функцию numpy linalg.inv:

import numpy as np
x = np.matmul(b, np.linalg.inv(a))
person Osman Mamun    schedule 16.10.2018
comment
прохладно. он имеет тот же результат, что и Matlab. - person jason; 16.10.2018
comment
@jason, это может дать тот же ответ, но это займет намного больше времени из-за инвертирования a, если a велико. Попробуйте вместо этого использовать np.linalg.solve(a, b) (или np.linalg.lstsq(a, b), если a не является линейно независимым). Они делают то же короткое замыкание, что и MATLAB, но не делают полного обратного. - person Daniel F; 16.10.2018

person    schedule
comment
Хотя этот код может дать ответ на вопрос, предоставление дополнительного контекста относительно того, как и/или почему он решает проблему, улучшит долгосрочную ценность ответа. - person Nic3500; 16.10.2018