Как оценить содержимое матрицы, используемой в качестве множителя при умножении матриц, если известны размеры и содержимое других матриц?

#python #numpy

#python #numpy

Вопрос:

Хотите понять, как оценить содержимое матрицы, используемой при умножении матриц, учитывая следующую информацию:

  • Произведение матричного умножения
  • Другая матрица, используемая в качестве множителя
  • Размеры «отсутствующей» матрицы

Например, если матрицу 1×3 умножить на матрицу 3×4, чтобы получить произведение матриц 1×4:

 matrix_A = np.array([10, 20, 70])
matrix_B = np.array([[50, 25, 10, 15], 
                     [10, 60, 20, 10], 
                     [ 5, 10, 80,  5]])

matrix_C = np.matmul(a, b)
  

Произведение этого умножения, matrix_C , будет содержать массив:

 array([1050, 2150, 6100, 700])
  

Но если бы мы знали только matrix_A и matrix_C , а также размеры 3×4 matrix_B , есть ли способ оценить числовое содержимое matrix_B с помощью numpy?

Комментарии:

1. Что вы подразумеваете под оценкой ?

2. Я имею в виду, что в идеале я хотел бы найти содержимое отсутствующей матрицы множителей — не уверен, возможно ли это.

3. Это не проблема с уникальным решением. Например , array([[ 1.94444444, 3.98148148, 11.2962963 , 1.2962963 ], [ 3.88888889, 7.96296296, 22.59259259, 2.59259259], [13.61111111, 27.87037037, 79.07407407, 9.07407407]]) также является действительным B .

4. Вы можете найти некоторую матрицу B. Проблема в том, что не существует уникальной матрицы B, которая удовлетворяет A x B = C. Вы можете легко увидеть, что это недоусловленная задача, подобная этой: у вас есть двенадцать неизвестных (элементы в B) и четыре уравнения (по одному на элемент в C, каждое умножение на столбец «A times в B»). Есть несколько тривиальных способов найти «допустимый B», например, сделать первую строку равной C, деленной на первый элемент A (при условии, что он не равен нулю), а остальные строки равными нулю. Но нет никакого способа узнать, «из какого Б» оно взялось.

5. Понятно. Большое спасибо. Надеялся посмотреть, существует ли существующий метод numpy, который мог бы помочь с поиском указанных различных допустимых возможностей для отсутствующей матрицы — я новичок в numpy. Подумаем об этом дальше. Еще раз спасибо.