Я пытаюсь решить линейное уравнение AX = B, где A, X, B. Матрицы.
Я пытался использовать функцию np.linalg.solve для numpy но результат кажется неправильным.
Пример:
Matrix A
[9 1 8]
[3 2 5]
[1 6 5]
Matrix B
[7 0 5]
[7 8 4]
[5 6 7]
Итак, для решения X я использовал:
X = np.linalg.solve(A,B)
Результат:
X
[ 1.17521368 -0.17948718 0.40598291]
[ 0.20512821 -0.30769231 0.74358974]
[-0.56410256 -0.15384615 1.20512821]
Но если я попытаюсь проверить результат, умножив A на X, результат будет отличным от B:
B
[ 5.40598291 -2.02564103 8.86752137]
[ 7.61111111 -4.33333333 13.61111111]
[ 3.15811966 -3.82051282 14.92735043]
Если я использую это:
np.matmul(B, np.linalg.inv(A))
Вместо функции решения я получаю те же результаты.
Что-то мне здесь не хватает?
РЕДАКТИРОВАТЬ 1: Я напечатал
np.allclose(np.dot(A, X), B)
И возвращается Ложь
РЕДАКТИРОВАТЬ 2
Вот код, который я использую:
B = np.array([7,0,5,7,8,4,5,6,7]).reshape(3,3)
A = np.array([9,1,8,3,2,5,1,6,5]).reshape(3,3)
X = np.linalg.solve(A,B)
print(x)
#[[-1.70967742 -4.48387097 0.08064516]
# [-1.35483871 -2.74193548 0.79032258]
# [ 2.96774194 5.38709677 0.43548387]]
Мои извинения, если это очень простой вопрос, я ценю любую помощь.Спасибо.