0
0 комментариев

Имеется произведение матриц a*b=c. Причем произведение матриц — это результат numpy.dot, а не поэлементное произведение. Известны матрицы a и c. Требуется найти матрицу b. Каким образом это можно сделать в python, не прибегая к решению системы уравнений с множеством неизвестных? Если просто делить numpy.matrix, то получается совсем не тот результат.

Вот пример:

import numpy as np
a = np.matrix([[ 1.,  2.],[ 3.,  4.]])
c = np.matrix([[ 2.],[ 1.]])
c/a
Out[201]:
matrix([[ 2.        ,  1.        ],
        [ 0.33333333,  0.25      ]])

Решил письменно обратную задачу, получил ответ:

([[-3. ],
  [ 2.5]])

Проверяем:

b= np.matrix([[-3. ],[ 2.5]])
a*b
Out[207]:
matrix([[ 2.],
        [ 1.]])

Если переводить в ndarray, то то же самое получается:

c.getA()/a.getA()
Out[213]:
array([[ 2.        ,  1.        ],
       [ 0.33333333,  0.25      ]])


Добавить комментарий