Como fazer vetorização para soma para implementação de oitava?
Estou tentando entender a transformação de uma forma de soma para vetorização (ou uma forma de multiplicações de matrizes) para implementá-la em alguma linguagem de programação (oitava ou python ou qualquer outra) sem usar loops for.
A expressão que eu quero vetorizar é esta
O documento de onde obtive este formulário tentou explicar o processo
Até agora isso está claro, exceto para (1) que o documento tentou explicar assim:
Fiquei confuso porque o que sei da multiplicação de matrizes é multiplicar uma linha por uma coluna. Não consigo entender esta etapa em que a multiplicação aqui é como multiplicar uma coluna por uma linha.
Você poderia explicar o último passo um pouco mais?
Respostas
Você pode pensar em um vetor coluna como um elemento da matriz. Deixe-me explicar com um exemplo simples.
Apoiar o$A$é uma matriz 3 por 3 e$\vec{a_i}$é seu$i$o vetor coluna.
$$ A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} = \begin{bmatrix} \vec{a_1} & \vec{a_2} & \vec{a_3} \end{bmatrix} $$para algum vetor tridimensional$\vec{v} = \begin{bmatrix} x & y & z \end{bmatrix} $,
$$ \begin{align} &A\vec{x}\\ &= \begin{bmatrix} ax + by + cz \\ dx + ey + fz \\ gx + hy + iz \end{bmatrix} \\ &= \begin{bmatrix} ax \\ dx \\ gx \end{bmatrix} + \begin{bmatrix} by \\ ey \\ hy \end{bmatrix} + \begin{bmatrix} cz \\ fz \\ iz \end{bmatrix}\\ &=x\vec{a_1} + y\vec{a_2} + z\vec{a_3} \\ &= \begin{bmatrix} \vec{a_1} & \vec{a_2} & \vec{a_3} \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} \\ &= \begin{bmatrix} \vec{a_1} & \vec{a_2} & \vec{a_3} \end{bmatrix} * \vec{v} \end{align} $$