Bagaimana melakukan vektorisasi untuk penjumlahan untuk implementasi oktaf?

Aug 15 2020

Saya mencoba memahami transformasi dari bentuk penjumlahan ke vektorisasi (atau bentuk perkalian matriks) untuk menerapkannya dalam beberapa bahasa pemrograman (oktaf atau python atau apa pun) tanpa menggunakan for loop.

Ekspresi yang ingin saya vektorkan adalah ini

Dokumen yang saya dapatkan dari formulir ini mencoba menjelaskan prosesnya

Sejauh ini sudah jelas kecuali (1) yang coba dijelaskan oleh dokumen seperti ini:

Saya merasa bingung karena yang saya ketahui dari perkalian matriks adalah mengalikan baris dengan kolom. Saya tidak dapat memahami langkah ini di mana perkalian di sini seperti mengalikan kolom dengan baris.

Bisakah Anda menjelaskan langkah terakhir sedikit lebih jauh?

Jawaban

1 kidkkr Oct 22 2020 at 10:11

Anda dapat menganggap vektor kolom sebagai elemen matriks. Izinkan saya menjelaskan dengan contoh sederhana.

Dukung $A$ adalah matriks 3 kali 3 dan $\vec{a_i}$ adalah miliknya $i$vektor kolom.

$$ 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} $$ untuk beberapa vektor 3 dimensi $\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} $$