في الرياضيات ، ضرب المصفوفات (بالإنجليزية : Matrix multiplication ) هي عملية ثنائية تأخذ مصفوفتين اثنتين مدخلا لها وتعطي مصفوفة ثالثة.[ 2] عناصر هذين المصفوفتين ينتمين إلى حقل ، أو بصفة عامة إلى حلقة أو حتى إلى نصف حلقة .
ضرب مصفوفة في عدد حقيقي[ عدل ]
ضرب مصفوفة في عدد ما لا يدخل في إطار ضرب المصفوفات. ضرب مصفوفة في عدد ما يعطي مصفوفة لها نفس أبعاد المصفوفة الأصلية حيث مداخلها تساوي مداخل المصفوفة الأصلية مضروبة في ذلك العدد. على سبيل المثال،
2
∗
[
1
3
1
0
1
2
]
=
[
2
∗
1
2
∗
3
2
∗
1
2
∗
0
2
∗
1
2
∗
2
]
=
[
2
6
2
0
2
4
]
{\displaystyle 2*{\begin{bmatrix}1&3\\1&0\\1&2\end{bmatrix}}={\begin{bmatrix}2*1&2*3\\2*1&2*0\\2*1&2*2\end{bmatrix}}={\begin{bmatrix}2&6\\2&0\\2&4\end{bmatrix}}}
ضرب المصفوفات العادي[ عدل ]
عملية الضرب العادية المذكورة هنا هي الأكثر شيوعًا لدى استخدام المصفوفات وأكثرها أهميّة. عملية الضرب هذه تكون معرّفة بين المصفوفتين
A
{\displaystyle A}
و
B
{\displaystyle B}
فقط إذا كان عدد أعمدة الأولى مساويًا لعدد الأسطر في الثانية. أي أنّ العملية معرّفة إذا كانت
A
{\displaystyle A}
من درجة
m
×
n
{\displaystyle m\times n}
، و
B
{\displaystyle B}
من درجة
n
×
p
{\displaystyle n\times p}
، وتكون مصفوفة حاصل الضرب
C
=
A
⋅
B
{\displaystyle C=A\cdot B}
من درجة
m
×
p
{\displaystyle m\times p}
.
ووفق نفس المنطق، فإذا تمّ ضرب سلسلة من المصفوفات ذات درجات
n
1
×
n
2
{\displaystyle n_{1}\times n_{2}}
،
n
2
×
n
3
{\displaystyle n_{2}\times n_{3}}
و
n
k
−
1
×
n
k
{\displaystyle n_{k-1}\times n_{k}}
، فإنّ مصفوفة حاصل الضرب ستكون من درجة
n
1
×
n
k
{\displaystyle n_{1}\times n_{k}}
. من هنا، فإنّ ضرب المصفوفات ليست عملية تبديلية على الأطلاق، إذ قد لا يكون الضرب معرفًا أصلاً إذا ما استبدلت المصفوفتان.
في العملية
C
m
×
q
=
A
m
×
n
⋅
B
n
×
q
{\displaystyle C_{m\times q}=A_{m\times n}\cdot B_{n\times q}}
يتم حساب كل عنصر في مصفوفة حاصل الضرب، بالطريقة الآتية:
c
i
,
j
=
∑
k
=
1
n
a
i
,
k
⋅
b
k
,
j
{\displaystyle c_{i,j}=\sum _{k=1}^{n}a_{i,k}\cdot b_{k,j}}
.
أي أنّه لحساب العنصر الواقع في السطر i والعمود j من مصفوفة حاصل الضرب، يجب حساب الجداء الداخلي للمتجهين المكوّنين من السطر i من المصفوفة الأولى والعمود j من المصفوفة الثانية. ويوضح الرسم التالي تلك العملية :
[
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
a
3
,
1
a
3
,
2
a
3
,
3
a
3
,
4
]
⏞
A
3
×
4
[
⋅
⋅
⋅
b
1
,
4
⋅
⋅
⋅
⋅
b
2
,
4
⋅
⋅
⋅
⋅
b
3
,
4
⋅
⋅
⋅
⋅
b
4
,
4
⋅
]
⏞
B
4
×
5
=
[
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
c
3
,
4
⋅
]
⏞
C
3
×
5
{\displaystyle \overbrace {\begin{bmatrix}\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot \\\color {Blue}a_{3,1}&\color {Blue}a_{3,2}&\color {Blue}a_{3,3}&\color {Blue}a_{3,4}\\\end{bmatrix}} ^{A_{3\times 4}}\overbrace {\begin{bmatrix}\cdot &\cdot &\cdot &\color {Red}b_{1,4}&\cdot \\\cdot &\cdot &\cdot &\color {Red}b_{2,4}&\cdot \\\cdot &\cdot &\cdot &\color {Red}b_{3,4}&\cdot \\\cdot &\cdot &\cdot &\color {Red}b_{4,4}&\cdot \\\end{bmatrix}} ^{B_{4\times 5}}=\overbrace {\begin{bmatrix}\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &c_{3,4}&\cdot \\\end{bmatrix}} ^{C_{3\times 5}}}
إذ يتحقّق:
c
3
,
4
=
a
3
,
1
⋅
b
1
,
4
+
a
3
,
2
⋅
b
2
,
4
+
a
3
,
3
⋅
b
3
,
4
+
a
3
,
4
⋅
b
4
,
4
{\displaystyle c_{{\color {Blue}3},\color {Red}4}={\color {Blue}a_{3,1}}\cdot {\color {Red}b_{1,4}}+{\color {Blue}a_{3,2}}\cdot {\color {Red}b_{2,4}}+{\color {Blue}a_{3,3}}\cdot {\color {Red}b_{3,4}}+{\color {Blue}a_{3,4}}\cdot {\color {Red}b_{4,4}}}
عملية ضرب المصفوفات ليست عمليةً تبديليةً عمومًا، وإن كانت العملية التبديلية معرّفة. أي:
A
B
≠
B
A
{\displaystyle \mathbf {AB} \neq \mathbf {BA} }
.
أحد الاستثنائات بالنسبة للخاصة السابقة هي كون المصفوفتين قطريتين ، إذ عندها تكون عملية الضرب تبديلية.
إذا كانت المصفوفتان A وB مربّعتين ، يتحقّق:
det
(
A
B
)
=
det
(
B
A
)
{\displaystyle {\mbox{det}}\left(\mathbf {AB} \right)={\mbox{det}}\left(\mathbf {BA} \right)}
أي أنّ عمليّة حساب محدّد حاصل الضرب هي عملية تبديلية.
(
A
B
)
C
=
A
(
B
C
)
{\displaystyle \left(\mathbf {AB} \right)\mathbf {C} =\mathbf {A} \left(\mathbf {BC} \right)}
.
A
(
B
+
C
)
=
A
B
+
A
C
{\displaystyle \mathbf {A} \left(\mathbf {B} +\mathbf {C} \right)=\mathbf {AB} +\mathbf {AC} }
،
(
A
+
B
)
C
=
A
C
+
B
C
{\displaystyle \left(\mathbf {A} +\mathbf {B} \right)\mathbf {C} =\mathbf {AC} +\mathbf {BC} }
c
(
A
B
)
=
(
c
A
)
B
=
(
A
c
)
B
=
A
(
c
B
)
=
A
(
B
c
)
=
(
A
B
)
c
{\displaystyle c\left(\mathbf {AB} \right)=\left(c\mathbf {A} \right)\mathbf {B} =\left(\mathbf {A} c\right)\mathbf {B} =\mathbf {A} \left(c\mathbf {B} \right)=\mathbf {A} \left(\mathbf {B} c\right)=\left(\mathbf {AB} \right)c}
.
أشكال أخرى من ضرب المصفوفات[ عدل ]
مثال على طريقة فالك في ضرب المصفوفات يوضحه ضرب المصفوفتين A و B.
A
3
×
2
=
(
1
4
2
5
3
−
6
)
{\displaystyle A_{3\times 2}={\begin{pmatrix}1&4\\2&5\\3&-6\end{pmatrix}}}
و
B
2
×
2
=
(
−
1
1
1
−
2
)
{\displaystyle B_{2\times 2}={\begin{pmatrix}-1&1\\1&-2\\\end{pmatrix}}}
.
لحساب حاصل ضرب المصفوفتين
C
=
A
⋅
B
{\displaystyle C=A\cdot B}
، حيث أن للمفصوفة الناتجة الأبعاد:
(
3
×
2
)
{\displaystyle (3\times 2)}
.
في البداية تتم كتابة المصفوفات بترتيب المصفوفتين التان سيتم ضربهما وفق تصميم فالك. يتم بعدها ضرب عناصر كل صف من المصفوفة السفلية بعناصر كل عمود من المصفوفة الثانية وجميع النتيجة في المصفوفة البينية، الزهرية اللون.
العمود j
1
2
−1
1
الصف i
1
−2
1
1
4
2
2
5
3
3
−6
العمود j
1
2
−1
1
الصف i
1
−2
1
1
4
3
2
2
5
3
3
−6
العمود j
1
2
−1
1
الصف i
1
−2
1
1
4
3
−7
2
2
5
3
3
−6
العمود j
1
2
−1
1
الصف i
1
−2
1
1
4
3
−7
2
2
5
3
−8
3
3
−6
−9
15
لمصفوفتين
A
{\displaystyle A}
و
B
{\displaystyle B}
التي لهما أبعاد
m
×
n
{\displaystyle m\times n}
،[ 3] ضرب هادامار
A
∘
B
{\displaystyle A\circ B}
أو
A
⊙
B
{\displaystyle A\odot B}
[ 4] [ 5] [ 6] [ 7] مصفوفة بنفس الأبعاد (أي
m
×
n
{\displaystyle m\times n}
) يتم حساب قيمها على النحو التالي:
(
A
∘
B
)
i
j
=
(
A
⊙
B
)
i
j
=
(
A
)
i
j
(
B
)
i
j
.
{\displaystyle (A\circ B)_{ij}=(A\odot B)_{ij}=(A)_{ij}(B)_{ij}.}
لم يتم تعريف هذا الضرب للمصفوفات ذات الأبعاد المختلفة.[ 7]