כפל מטריצות

במתמטיקה, במיוחד באלגברה ליניארית, כפל מטריצות הוא פעולה בינארית שמייצרת מטריצה משתי מטריצות. כדי שהכפל יהיה מוגדר, מספר העמודות במטריצה הראשונה חייב להיות שווה למספר השורות במטריצה השנייה. במטריצה המתקבלת, המכונה מטריצת המכפלה, מספר השורות שווה לזה של המטריצה הראשונה, ומספר העמודות שווה לזה של המטריצה השנייה.

כפל מטריצות תואר לראשונה על ידי המתמטיקאי הצרפתי ז'אק פיליפ מארי בינט בשנת 1812, כדי לייצג הרכבה של העתקות ליניאריות המיוצגות על ידי מטריצות. כפל מטריצה הוא אפוא כלי בסיסי של אלגברה ליניארית, וככזה יש לו יישומים רבים בתחומים רבים של מתמטיקה, כמו גם במתמטיקה שימושית, סטטיסטיקה, פיזיקה, הנדסה וכלכלה. חישוב כפל מטריצות הוא פעולה מרכזית בכל היישומים החישוביים של אלגברה ליניארית.

== מבוא ותכונות בסיסיות ==
ערך האיבר הכחול במטריצת הכפל הוא סכום 3 מכפלות:{{ש}}
1. מכפלת התא ירוק השמאלי בתא האדום העליון.{{ש}}
2. מכפלת התא הירוק האמצעי בתא האדום האמצעי.{{ש}}
3. מכפלת התא הירוק הימני בתא האדום התחתון.
באלגברה ליניארית, כפל של מטריצות מוגדר כך שמכפלת המטריצות המייצגות של שתי העתקות ליניאריות היא המטריצה המייצגת את הרכבת ההעתקות.

המכפלה של מטריצות היא אסוציאטיבית ודיסטריביוטיבית ביחס לחיבור, אבל אינה קומוטטיבית (כלומר, לא בהכרח מתקיים <math> AB = BA</math>).

המכפלה של מטריצה <math>A</math> במטריצה <math>B</math> מוגדרת רק כאשר מספר העמודות של <math>A</math> שווה למספר השורות של <math>B</math>, ואז מספר השורות במכפלה <math>AB</math> שווה למספר השורות של <math>A</math>, ומספר העמודות שווה למספר העמודות של <math>B</math>.

==הגדרת הכפל==
תהיינה <math> A=(a_{ij})</math> מטריצה בגודל <math> n\times m</math> ו-<math> B=(b_{ij})</math> מטריצה בגודל <math> m\times p</math>. לפי ההגדרה, מכפלתן היא מטריצה AB בגודל <math> n\times p</math>, שאבריה מוגדרים לפי הנוסחה <math> (AB)_{ij}=\sum_{k=1}^m A_{ik}B_{kj}</math>.

האיבר בשורה <math> i</math> ובעמודה <math> j</math> של המכפלה AB מתקבל מהכפלת השורה ה-<math> i</math> במטריצה הראשונה בעמודה ה-<math> j</math> במטריצה השנייה. מספר האיברים הן בשורה והן בעמודה זהה - <math> m</math>; אחרת הכפל אינו מוגדר. כלומר, דרוש שמספר העמודות במטריצה הראשונה יהיה שווה למספר השורות במטריצה השנייה - מספר העמודות במטריצה השנייה קובע כמה איברים יהיו בכל שורה שלה, ואילו מספר השורות במטריצה הראשונה קובע כמה איברים יהיו בכל עמודה שלה. כאן פעולת הכפל של הווקטורים דומה למכפלה סקלרית רכיב רכיב: כופלים כל זוג איברים בעלי אותו מספר, וסוכמים את כל המכפלות.

התמונה מראה כפל של מטריצה A מסדר <math> 4\times 2</math> במטריצה B מסדר <math> 2\times 3</math>: המטריצה המתקבלת היא מסדר <math> 4\times 3</math>. בתמונה מראים כיצד מחושב האיבר <math> (AB)_{12}</math> במטריצה: השורה הראשונה במטריצה <math> A</math> מוכפלת בעמודה השנייה במטריצה <math> B</math>.
: קובץ:Matrix multiplication diagram.svg

=== דוגמאות ===

:<math>
 \begin{pmatrix}
 1 & 0 \\
 -1 & 3
 \end{pmatrix}
\times
 \begin{pmatrix}
 3 & 1 \\
 2 & 1 \\
 \end{pmatrix}
</math>

:<math>
=
\begin{pmatrix}
 (1 \times 3+0 \times 2) & (1 \times 1+0 \times 1) \\
 (-1 \times 3+3 \times 2) & (-1 \times 1+3 \times 1) \end{pmatrix}
=
\begin{pmatrix} 3 & 1 \\ 3 & 2 \end{pmatrix}</math>

כפל מטריצות אינו קומוטטיבי כלומר <math>AB</math> אינו בהכרח שווה ל-<math>BA</math>:

:<math>
\begin{pmatrix}
1 & 2 & 0 \\
4 & 3 & -1 \\
\end{pmatrix}

\begin{pmatrix}
5 & 1 \\
2 & 3 \\
3 & 4 \\
\end{pmatrix}

=

\begin{pmatrix}
9 & 7 \\
23 & 9 \\
\end{pmatrix}

</math> בעוד ש <math>

\begin{pmatrix}
5 & 1 \\
2 & 3 \\
3 & 4 \\
\end{pmatrix}

\begin{pmatrix}
1 & 2 & 0 \\
4 & 3 & -1 \\
\end{pmatrix}

=

\begin{pmatrix}
9 & 13 & -1 \\
14 & 13 & -3 \\
19 & 18 & -4 \\
\end{pmatrix}

</math>

===מטריצות מיוחדות===
לשתי מטריצות יש תפקיד מיוחד ביחס לכפל: מטריצת האפס (שכל רכיביה אפסים) היא נייטרלית ביחס לחיבור (כלומר, <math> A+0=0+A=A</math>), ותוצאת הכפל במטריצת האפס היא תמיד אפס (<math> 0 \cdot A = A \cdot 0 = 0</math>). מטריצת היחידה <math>I</math>, שהיא מטריצה ריבועית, שרכיבי האלכסון שלה הם 1 ושאר הרכיבים אפס, היא נייטרלית ביחס לכפל (כלומר, <math> A \cdot I = I \cdot A = A</math>).

אוסף המטריצות הריבועיות מעל שדה, עם פעולת החיבור הרגילה והכפל שהוגדר כאן, הוא חוג פשוט.

===סיבוכיות הכפל===
הכפלת שתי מטריצות ריבועיות בגודל n על n על פי ההגדרה דורש סיבוכיות של סדר גודל n בשלישית פעולות.

ב-1969 הראה וולקר שטראסן כי ניתן להכפיל מטריצות באופן יעיל יותר ("אלגוריתם שטראסן") של <math>n^{\log_2 7}</math> (בערך 2.807). שיפורים נוספים הורידו את החזקה ל-2.376 (על ידי דון קופרסמיט ושמואל וינוגרד, 1987), ואז ל-2.373 (2010). זו הסיבוכיות הטובה ביותר הידועה, אם כי הקבועים העצומים הופכים את האלגוריתם הזה לתאורטי בלבד.

===שימושי הכפל===
אף על פי שנראה כי הגדרתו של הכפל בלתי אינטואיטיבית, ניתן לראות במספר דוגמאות את יעילותו:
# כאשר מייצגים טרנספורמציות ליניאריות באמצעות מטריצות, הטרנספורמציה המתקבלת מהרכבת אחת הטרנספורמציות על השנייה מיוצגת באמצעות מטריצה שהיא מכפלת המטריצות המייצגות של הטרנספורמציות המורכבות.
# בייצוג טרנספורמציה ליניארית על ידי מטריצה, הפעלת הטרנספורמציה על וקטור שקולה להכפלת וקטור הקוארדינטות שלו במטריצה.
# הדטרמיננטה של מכפלה של שתי מטריצות שווה למכפלה של שתי הדטרמיננטות שלהן.

==מכפלה טנזורית של מטריצות==
מכפלה טנזורית או "מכפלת קרונקר" של מטריצות <math> A \in F^{m\times n}</math> ו-<math>B \in F^{k \times \ell}</math> היא מטריצה <math> A \otimes B \in F^{mk \times n\ell}</math>, המורכבת מהכפלת הרכיבים של A במטריצה B, במתכונת <math>
A \otimes B = \begin{pmatrix}
 a_{11}B & a_{12}B & \cdots & a_{1n}B \\
 \vdots & \vdots & \ddots & \vdots \\
 a_{m1}B & a_{m2}B & \cdots & a_{mn}B
 \end{pmatrix}
</math>.

לדוגמה:
<math>
 \begin{pmatrix}
 1 & 2 \\
 3 & 1 \\
 \end{pmatrix}
\otimes
 \begin{pmatrix}
 0 & 3 \\
 2 & 1 \\
 \end{pmatrix}
=
 \begin{pmatrix}
 1\times 0 & 1\times 3 & 2\times 0 & 2\times 3 \\
 1\times 2 & 1\times 1 & 2\times 2 & 2\times 1 \\
 3\times 0 & 3\times 3 & 1\times 0 & 1\times 3 \\
 3\times 2 & 3\times 1 & 1\times 2 & 1\times 1 \\
 \end{pmatrix}
=
 \begin{pmatrix}
 0 & 3 & 0 & 6 \\
 2 & 1 & 4 & 2 \\
 0 & 9 & 0 & 3 \\
 6 & 3 & 2 & 1
 \end{pmatrix}
</math>.

פעולה זו אינה קומוטטיבית, אבל היא מקיימת <math> (A \otimes B) (A' \otimes B') = AA' \otimes BB'</math>.

==מכפלת אָדָמר==
מכפלה איבר איבר של מטריצות מכונה "מכפלת אדמר" (Hadamard). באופן פורמלי היא מוגדרת כך: אם <math> A = (a_{ij})</math>, <math> B = (b_{ij})</math> הן שתי מטריצות בגודל <math> n \times m</math>, אז מכפלת הדמר שלהן מוגדרת כך: <math>(A \odot B)_{ij} = \ (A\circ B)_{ij} = (a_{ij}\cdot b_{ij})</math>. עבור מטריצות שאינן מאותו גודל המכפלה אינה מוגדרת.

דוגמה:

:<math>
 \begin{pmatrix}
 1 & 3 & 2 \\
 1 & 0 & 0 \\
 1 & 2 & 2
 \end{pmatrix}
\odot
 \begin{pmatrix}
 0 & 0 & 2 \\
 7 & 5 & 0 \\
 2 & 1 & 1
 \end{pmatrix}
=
 \begin{pmatrix}
 1 \times 0 & 3 \times 0 & 2 \times 2 \\
 1 \times 7 & 0 \times 5 & 0 \times 0 \\
 1 \times 2 & 2 \times 1 & 2 \times 1
 \end{pmatrix}
=
 \begin{pmatrix}
 0 & 0 & 4 \\
 7 & 0 & 0 \\
 2 & 2 & 2
 \end{pmatrix}
</math>

כפל זה הוא מטריצה חלקית של כפל קרונקר שהודגם למעלה.

תכונותיה של מכפלה זו נחקרות במסגרת תורת המטריצות, אך היא אינה שימושית במיוחד בתחומים אחרים.

==קישורים חיצוניים==

* [https://web.archive.org/web/20070415221559/http://www.bluebit.gr/matrix-calculator/matrix_multiplication.aspx מחשבון כפל מטריצות]
* 
* 

==הערות שוליים==

קטגוריה:אלגברה ליניארית
קטגוריה:כפל
קטגוריה:מטריצות

de:Matrix (Mathematik)#Matrizenmultiplikation