¿Cómo hacer la vectorización para la suma para la implementación de octava?

Aug 15 2020

Estoy tratando de comprender la transformación de una forma de suma a la vectorización (o una forma de multiplicación de matrices) para implementarla en algún lenguaje de programación (octava o python o lo que sea) sin usar bucles for.

La expresión que quiero vectorizar es esta

El documento del que obtuve este formulario trató de explicar el proceso

Hasta ahora esto está claro excepto por (1) que el documento trató de explicarlo así:

Me sentí confundido porque lo que sé de la multiplicación de matrices es multiplicar una fila por una columna. No puedo entender este paso donde la multiplicación aquí es como multiplicar una columna por una fila.

¿Podrías explicar un poco más el último paso?

Respuestas

1 kidkkr Oct 22 2020 at 10:11

Puedes pensar en un vector columna como un elemento de la matriz. Me explico con un ejemplo sencillo.

Apoyen el$A$es una matriz de 3 por 3 y$\vec{a_i}$eso es$i$º vector de columna.

$$ 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 algún vector 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} $$