Come eseguire la vettorizzazione per la sommatoria per l'implementazione dell'ottava?
Sto cercando di capire la trasformazione da una forma di sommatoria alla vettorizzazione (o una forma di moltiplicazione di matrici) per implementarla in qualche linguaggio di programmazione (ottava o pitone o altro) senza usare cicli for.
L'espressione che voglio vettorializzare è questa
Il documento da cui ho ricevuto questo modulo ha cercato di spiegare il processo
Finora questo è chiaro tranne che per (1) che il documento ha cercato di spiegare in questo modo:
Mi sentivo confuso perché quello che so dalla moltiplicazione di matrici è moltiplicare una riga per una colonna. Non riesco a capire questo passaggio in cui la moltiplicazione qui è come moltiplicare una colonna per una riga.
Potresti spiegare meglio l'ultimo passaggio?
Risposte
Puoi pensare a un vettore colonna come un elemento della matrice. Mi spiego con un semplice esempio.
Sostieni il$A$è una matrice 3 per 3 e$\vec{a_i}$é suo$i$esimo vettore colonna.
$$ 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} $$per qualche vettore tridimensionale$\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} $$