2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 умножение транспонированной матрицы
Сообщение13.01.2019, 15:24 


15/11/18
6
Всем привет! Заинтересовала строчка нахождения расстояния между векторами в коде Python:
Код:
D = -2*np.dot(self.W, X.T)[None,:] + (self.W**2).sum(1)[:, None] + ((self.X**2).sum(1)[:, None]).T

На сколько я понял, здесь расстояние между векторами считается как $D^2 = -2AB + A^2 + B^2$, где $ A, B, D$ это матрицы
Интересует первый одночлен $-2AB$, у меня следующая размерность: $A_{m \cdot n}$ и $B_{k \cdot n}$
т.к. размерности разные у $A$ и $B$ перемножить их напрямую нельзя, но в коде Python это выглядит как: $A \cdot B^T$

Собственно вопрос чисто алгебраический, если размерность двух матриц не совпадает, можно ли транспонировать множитель (матрица $B$) и выполнить операцию умножение? Всегда ли это корректно будет?

p.s. мои дилетантские рассуждения подсказывают, что да, потому что транспонирование не меняет значение матрицы...

 Профиль  
                  
 
 Re: умножение транспонированной матрицы
Сообщение13.01.2019, 15:33 
Заслуженный участник
Аватара пользователя


16/07/14
9156
Цюрих
Что значит "можно ли"? Произведение матриц размера $A \times B$ и $C \times D$ определено тогда и только тогда, когда $B = C$. Произведение первой из них на транспонированную вторую определено тогда и только тогда, когда $B = D$. Умножение на матрицу и умножение на транспонированную матрицу - это две разные слабо связанные операции.

 Профиль  
                  
 
 Re: умножение транспонированной матрицы
Сообщение13.01.2019, 16:16 
Заслуженный участник
Аватара пользователя


11/03/08
9911
Москва
Это не будет корректно никогда. Вот экономический пример для прояснения. Чтобы рассчитать расход материала на некоторое количество изделий, зная расход на одно - умножаем количество на расход. Но если изделия разных видов и материалов много - эти данные можно представить, как матрицы.
Первая матрица $a_{i.j}$ - заводы на виды изделий, элементы матрицы - число изделий j-того вида на i-том заводе.
Вторая матрица $c_{i.j}$ - виды изделий на виды материалов, элементы матрицы - расход j-того материала на i-тое изделие.
$C=AB$ - расход на i-том заводе j-того материала.
Для возможности расчёта надо, чтобы в обеих матрицах были данные по соответствующим изделиям, если умножение невозможно из-за несоответствия числа строк и столбцов, данные неполны и расчёт бессмысленен. Даже если случайно количество видов материала, данные по которым есть во второй матрице, совпадёт с числом видов изделий в первой - результат такого умножения смысла иметь не будет.

 Профиль  
                  
 
 Re: умножение транспонированной матрицы
Сообщение13.01.2019, 18:35 


15/11/18
6
@mihaild, @Евгений Машеров, cпасибо большое за ответы! С карандашом на бумажке прошелся и все стало ясно :)

 Профиль  
                  
 
 Re: умножение транспонированной матрицы
Сообщение13.01.2019, 19:37 


21/05/16
4292
Аделаида
Здесь не так упоминают. Просто нажмите на ник.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group