כפל מטריצות

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

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

המכפלה של מטריצות היא אסוציאטיבית ודיסטריביוטיבית ביחס לחיבור, אבל אינה חילופית (כלומר, בדרך כלל \ AB \neq BA).

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

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

הגדרת הכפל[עריכת קוד מקור | עריכה]

תהא \ A=(a_{ij}) מטריצה מסדר \ n\times m, ותהא \ B=(b_{ij}) מטריצה מסדר \ m\times p, אז מכפלתן היא מטריצה מסדר \ n\times p המקיימת \ (AB)_{ij}=\sum_{k=1}^m a_{ik}b_{kj}.

נסביר זאת: כל איבר במטריצה, שנמצא בשורה \ i ובעמודה \ j הוא למעשה ערך וקטור השורה מספר \ i במטריצה הראשונה כפול וקטור העמודה ה- \ j של המטריצה השנייה. נשים לב שמספר האיברים הן בשורה והן בעמודה זהה - \ m. על כן הדרישה שמספר העמודות במטריצה הראשונה יהיה זהה למספר השורות במטריצה השנייה - מספר העמודות במטריצה הראשונה קובע כמה איברים יהיו בכל שורה, ואילו מספר השורות במטריצה השנייה קובע כמה איברים יהיו בכל עמודה. כאן פעולת הכפל של הווקטורים דומה למכפלה סקלרית רכיב רכיב: כופלים כל זוג איברים בעלי אותו מספר, וסוכמים את כל המכפלות.

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

Matrix multiplication diagram.svg

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

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

סיבוכיות הכפל[עריכת קוד מקור | עריכה]

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

ב-1969 הראה וולקר שטראסן כי ניתן להכפיל מטריצות באופן יעיל יותר ("אלגוריתם שטראסן") של n^{\log_2 7} (בערך 2.807).

ב-1987 הצליחו דון קופרסמיט ושמואל וינוגרד להגיע לאלגוריתם מכפלה שהסיבוכיות שלו נמוכה עד כדי n בחזקת 2.376, חסם שהחזיק מעמד עשרות שנים עד שיפורו ל-2.374 בשנת 2010 ואחר כך ל-2.373. נכון ל2014 זו הסיבוכיות הטובה ביותר; אם כי הקבועים העצומים הופכים את האלגוריתם הזה לתאורטי בלבד.

שימושי הכפל[עריכת קוד מקור | עריכה]

למרות שנראה כי הגדרתו של הכפל בלתי אינטואיטיבית, ניתן לראות במספר דוגמאות את יעילותו:

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

מכפלה טנזורית של מטריצות[עריכת קוד מקור | עריכה]

ישנה דרך נוספת להגדיר כפל של מטריצות: אם \ A = (a_{ij}) היא מטריצה בגודל \ n \times m ו- B היא מטריצה בגודל \ r \times s, אז המכפלה הטנזורית שלהם, \ A \otimes B, היא מטריצה בגודל \ nr \times ms המורכבת מן הבלוקים \ a_{ij}\cdot B.

מכפלה זו נקראת גם "מכפלת קרונקר", על-שם לאופולד קרונקר.

מכפלת הדמר[עריכת קוד מקור | עריכה]

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

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

קישורים חיצוניים[עריכת קוד מקור | עריכה]