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
8602
Цюрих
Что значит "можно ли"? Произведение матриц размера $A \times B$ и $C \times D$ определено тогда и только тогда, когда $B = C$. Произведение первой из них на транспонированную вторую определено тогда и только тогда, когда $B = D$. Умножение на матрицу и умножение на транспонированную матрицу - это две разные слабо связанные операции.

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


11/03/08
9594
Москва
Это не будет корректно никогда. Вот экономический пример для прояснения. Чтобы рассчитать расход материала на некоторое количество изделий, зная расход на одно - умножаем количество на расход. Но если изделия разных видов и материалов много - эти данные можно представить, как матрицы.
Первая матрица $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 ] 

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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