در جبر خطی ، ضرب ماتریسی به عملیات ضرب یک ماتریس با یک کمیت نردهای یا یک ماتریس دیگر گفته میشود. در این مقاله سعی شدهاست تا نگاهی به انواع مختلف ضرب ماتریسی داشته باشیم.
ضرب معمولی ماتریسها و درایه های آنها[ ویرایش ] ضرب معمولی ماتریسها رایجترین نوع ضرب در ماتریسهاست. این نوع ضرب تنها زمانی تعریف میشود که تعداد ستونهای ماتریس اول با تعداد سطرهای ماتریس دوم برابر باشد. حاصلضرب یک ماتریس m درn در یک ماتریس n در p یک ماتریس m در p است، به همین صورت اگر لیستی از ماتریسها برای ضرب را داشته باشیم که ابعاد مختلفی دارند (مانند m درn , n درp , p درq , q درr ) بُعد ماتریس حاصل ضرب از تعداد سطرهای اولین ماتریس و تعداد ستونهای آخرین ماتریس میآید (مثلاً در لیست ذکر شده در بالا بعد ماتریس حاصلضرب m در r خواهد بود). توجه به این نکته نیز لازم است که ضرب ماتریسها خاصیت جابجایی ندارد.
ضرب معمولی به این صورت تعریف میشود
[ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1 2 3 4 ] 3 × 4 matrix [ ⋅ ⋅ ⋅ a ⋅ ⋅ ⋅ ⋅ b ⋅ ⋅ ⋅ ⋅ c ⋅ ⋅ ⋅ ⋅ d ⋅ ] 4 × 5 matrix = [ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ x 3 , 4 ⋅ ] 3 × 5 matrix {\displaystyle {\overset {3\times 4{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot \\\color {Blue}1&\color {Blue}2&\color {Blue}3&\color {Blue}4\\\end{bmatrix}}}{\overset {4\times 5{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\color {Red}a&\cdot \\\cdot &\cdot &\cdot &\color {Red}b&\cdot \\\cdot &\cdot &\cdot &\color {Red}c&\cdot \\\cdot &\cdot &\cdot &\color {Red}d&\cdot \\\end{bmatrix}}}={\overset {3\times 5{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &x_{3,4}&\cdot \\\end{bmatrix}}}}
که در آن درایه x 3 , 4 {\displaystyle x_{3,4}} برابر است با:
x 3 , 4 = ( 1 , 2 , 3 , 4 ) ⋅ ( a , b , c , d ) = 1 × a + 2 × b + 3 × c + 4 × d {\displaystyle x_{3,4}=({\color {Blue}1},{\color {Blue}2},{\color {Blue}3},{\color {Blue}4})\cdot ({\color {Red}a},{\color {Red}b},{\color {Red}c},{\color {Red}d})={\color {Blue}1}\times {\color {Red}a}+{\color {Blue}2}\times {\color {Red}b}+{\color {Blue}3}\times {\color {Red}c}+{\color {Blue}4}\times {\color {Red}d}} .
برای به یادسپاری این موضوع میتوان ضرب معمولی را به این صورت القا کرد که سطر اول در ستون اول درایه اول یا به صورت کلیتر سطر mم در ستون nم درایه mnم .
نحوه انجام ضرب ماتریسها در انیمیشن توضیح داده شدهاست. فرض کنید برای A ∈ F m × n {\displaystyle A\in F^{m\times n}} و B ∈ F n × p {\displaystyle B\in F^{n\times p}} در میدان F {\displaystyle F} که ( A B ) ∈ F m × p {\displaystyle (AB)\in F^{m\times p}} ، درایههای AB به صورت زیر بدست میآیند:
چکونگی انجام ضرب ماتریسها به وسیله انمیشن توضیح داده ده است . ( A B ) i , j = ∑ r = 1 n A i , r B r , j {\displaystyle (AB)_{i,j}=\sum _{r=1}^{n}A_{i,r}B_{r,j}}
در اینجا i و j را اعداد طبیعی در نظر میگیریم که 1 ≤ j ≤ p {\displaystyle 1\leq j\leq p} و 1 ≤ i ≤ m {\displaystyle 1\leq i\leq m} .
رابطه ضرب معمولی با ضرب داخلی و ضرب خارجی[ ویرایش ] ضرب داخلی و ضرب خارجی در حقیقت صورتهای خاص و سادهشدهای از ضرب معمولی ماتریسها هستند. ضرب دو بردار ستونی A {\displaystyle A} و B {\displaystyle B} به صورت A ⋅ B = A T B {\displaystyle A\cdot B=A^{T}B} میباشد، دراینجا T نشانگر ترانهاده ماتریس است. به صورت صریحتر:
A ⋅ B = A T B = [ a 1 a 2 ⋯ a n ] [ b 1 b 2 ⋮ b n ] = [ a 1 b 1 + a 2 b 2 + ⋯ + a n b n ] . {\displaystyle A\cdot B=A^{T}B={\begin{bmatrix}a_{1}&a_{2}&\cdots &a_{n}\end{bmatrix}}{\begin{bmatrix}b_{1}\\b_{2}\\\vdots \\b_{n}\end{bmatrix}}={\begin{bmatrix}a_{1}b_{1}+a_{2}b_{2}+\cdots +a_{n}b_{n}\end{bmatrix}}.} . ضرب خارجی به صورت A ⊗ B = A B T {\displaystyle A\otimes B=AB^{T}} تعریف میشود که:
A B T = [ a 1 a 2 ⋮ a n ] [ b 1 b 2 ⋯ b n ] = [ a 1 b 1 a 1 b 2 ⋯ a 1 b n a 2 b 1 a 2 b 2 ⋯ a 2 b n ⋮ ⋮ ⋱ ⋮ a n b 1 a n b 2 ⋯ a n b n ] . {\displaystyle AB^{T}={\begin{bmatrix}a_{1}\\a_{2}\\\vdots \\a_{n}\end{bmatrix}}{\begin{bmatrix}b_{1}&b_{2}&\cdots &b_{n}\end{bmatrix}}={\begin{bmatrix}a_{1}b_{1}&a_{1}b_{2}&\cdots &a_{1}b_{n}\\a_{2}b_{1}&a_{2}b_{2}&\cdots &a_{2}b_{n}\\\vdots &\vdots &\ddots &\vdots \\a_{n}b_{1}&a_{n}b_{2}&\cdots &a_{n}b_{n}\\\end{bmatrix}}.} ضرب ماتریسها در پناه این دو عمل میتواند به صورت قطعهای مورد بحث قرار گیرد. برای شروع تجزیهٔ ماتریس به بردارهای سطری و بردارهای ستونی را بررسی میکنیم، در شکل زیر ماتریس A را به وسیله ماتریسی با بردارهای سطری و ماتریس B را به وسیله ماتریسی با بردارهای ستونی نمایش میدهیم:
A = [ a 1 , 1 a 1 , 2 ⋯ a 1 , n a 2 , 1 a 2 , 2 ⋯ a 2 , n ⋮ ⋮ ⋱ ⋮ a m , 1 a m , 2 ⋯ a m , n ] = [ A 1 A 2 ⋮ A m ] {\displaystyle \mathbf {A} ={\begin{bmatrix}{\color {Red}a_{1,1}}&{\color {Red}a_{1,2}}&\cdots &{\color {Red}a_{1,n}}\\{\color {ForestGreen}a_{2,1}}&{\color {ForestGreen}a_{2,2}}&\cdots &{\color {ForestGreen}a_{2,n}}\\\vdots &\vdots &\ddots &\vdots \\{\color {Blue}a_{m,1}}&{\color {Blue}a_{m,2}}&\cdots &{\color {Blue}a_{m,n}}\end{bmatrix}}={\begin{bmatrix}{\color {Red}A_{1}}\\{\color {ForestGreen}A_{2}}\\\vdots \\{\color {Blue}A_{m}}\end{bmatrix}}} B = [ b 1 , 1 b 1 , 2 ⋯ b 1 , p b 2 , 1 b 2 , 2 ⋯ b 2 , p ⋮ ⋮ ⋱ ⋮ b n , 1 b n , 2 ⋯ b n , p ] = [ B 1 B 2 ⋯ B p ] {\displaystyle \mathbf {B} ={\begin{bmatrix}{\color {Red}b_{1,1}}&{\color {ForestGreen}b_{1,2}}&\cdots &{\color {Blue}b_{1,p}}\\{\color {Red}b_{2,1}}&{\color {ForestGreen}b_{2,2}}&\cdots &{\color {Blue}b_{2,p}}\\\vdots &\vdots &\ddots &\vdots \\{\color {Red}b_{n,1}}&{\color {ForestGreen}b_{n,2}}&\cdots &{\color {Blue}b_{n,p}}\end{bmatrix}}={\begin{bmatrix}{\color {Red}B_{1}}&{\color {ForestGreen}B_{2}}&\cdots &{\color {Blue}B_{p}}\end{bmatrix}}} که در اینجا A i = [ a i , 1 a i , 2 ⋯ a i , n ] {\displaystyle A_{i}={\begin{bmatrix}a_{i,1}&a_{i,2}&\cdots &a_{i,n}\end{bmatrix}}} و B i = [ b 1 , i b 2 , i ⋯ b n , i ] T . {\displaystyle B_{i}={\begin{bmatrix}b_{1,i}&b_{2,i}&\cdots &b_{n,i}\end{bmatrix}}^{T}.} میباشند.
ضرب ماتریسی با این شیوه با توجه به تعاریف بالا به این صورت خواهد بود:
A B = [ A 1 A 2 ⋮ A m ] [ B 1 B 2 … B p ] = [ ( A 1 ⋅ B 1 ) ( A 1 ⋅ B 2 ) … ( A 1 ⋅ B p ) ( A 2 ⋅ B 1 ) ( A 2 ⋅ B 2 ) … ( A 2 ⋅ B p ) ⋮ ⋮ ⋱ ⋮ ( A m ⋅ B 1 ) ( A m ⋅ B 2 ) … ( A m ⋅ B p ) ] . {\displaystyle \mathbf {AB} ={\begin{bmatrix}A_{1}\\A_{2}\\\vdots \\A_{m}\end{bmatrix}}{\begin{bmatrix}B_{1}&B_{2}&\dots &B_{p}\end{bmatrix}}={\begin{bmatrix}(A_{1}\cdot B_{1})&(A_{1}\cdot B_{2})&\dots &(A_{1}\cdot B_{p})\\(A_{2}\cdot B_{1})&(A_{2}\cdot B_{2})&\dots &(A_{2}\cdot B_{p})\\\vdots &\vdots &\ddots &\vdots \\(A_{m}\cdot B_{1})&(A_{m}\cdot B_{2})&\dots &(A_{m}\cdot B_{p})\end{bmatrix}}.} A B ≠ B A {\displaystyle AB\neq BA} اگر A و B دو ماتریس n در n باشند، دترمینان حاصلضرب به اولویت شرکت آنها در ضرب بستگی ندارد. det ( A B ) = det ( B A ) {\displaystyle \;\!\det(AB)=\det(BA)} اگر هر دو ماتریس قطری مربعی با ابعاد مشابه باشند، ضرب آنها جابجایی است. ضرب ماتریسی شرکتپذیر است: A ( B C ) = ( A B ) C {\displaystyle \ \mathbf {A} (\mathbf {BC} )=(\mathbf {AB} )\mathbf {C} } ضرب ماتریسی بروی جمع پخش میشود: A ( B + C ) = A B + A C {\displaystyle \ \mathbf {A} (\mathbf {B} +\mathbf {C} )=\mathbf {AB} +\mathbf {AC} } ( A + B ) C = A C + B C {\displaystyle \ (\mathbf {A} +\mathbf {B} )\mathbf {C} =\mathbf {AC} +\mathbf {BC} } . اگر ماتریس را تحت یک میدان (برای مثال میدانهای حقیقی یا مختلط) تعریف کنیم، آنگاه تحت هر اسکالر از آن میدان جابجایی خواهد بود: c ( A B ) = ( c A ) B {\displaystyle \ c(\mathbf {AB} )=(c\mathbf {A} )\mathbf {B} } ( A c ) B = A ( c B ) {\displaystyle \ (\mathbf {A} c)\mathbf {B} =\mathbf {A} (c\mathbf {B} )} ( A B ) c = A ( B c ) {\displaystyle \ (\mathbf {AB} )c=\mathbf {A} (\mathbf {B} c)} در اینجا c یک اسکالر از میدان مربوطهاست. ضرب اسکالر r در یک ماتریس A به این صورت تعریف میشود:
( r A ) i j = r ⋅ a i j . {\displaystyle (r\mathbf {A} )_{ij}=r\cdot a_{ij}.\,} برای مثال اگر:
A = [ a b c d ] {\displaystyle \mathbf {A} ={\begin{bmatrix}a&b\\c&d\end{bmatrix}}} در نتیجه
r ⋅ A = [ r ⋅ a r ⋅ b r ⋅ c r ⋅ d ] {\displaystyle r\cdot \mathbf {A} ={\begin{bmatrix}r\cdot a&r\cdot b\\r\cdot c&r\cdot d\end{bmatrix}}}
اصول بنیادی مسالهها سختافزارها نرمافزارها