Come eseguire la vettorizzazione per la sommatoria per l'implementazione dell'ottava?

Aug 15 2020

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

1 kidkkr Oct 22 2020 at 10:11

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} $$