Násobení matic

Pro součin matic musí být počet sloupců v první matici roven počtu řádků ve druhé matici. Výsledná matice má počet řádků první matice a počet sloupců druhé matice.

Součin matic[1][2] hovorově též maticové násobení (neplést se skalárním násobkem matice) je v matematice zobecnění součinu čísel na matice. Formálně se dá definovat jako binární operace na maticích odpovídajících typů. Využívá se v matematice, fyzice a jejich aplikacích, obvykle pro popis skládání lineárních zobrazení.

Speciálním případem násobení matic je součin matice typu m × n {\displaystyle m\times n} a vektoru braného jako matice o typu n × 1 {\displaystyle n\times 1} (sloupcový vektor). Tento součin lze interpretovat jako aplikaci lineárního zobrazení reprezentovaného transformační maticí na vektor.

Formální definice

Pokud je A {\displaystyle {\boldsymbol {A}}} matice typu m × n {\displaystyle m\times n} a B {\displaystyle {\boldsymbol {B}}} je matice typu n × p {\displaystyle n\times p} , jejich součin A B {\displaystyle {\boldsymbol {A}}\cdot {\boldsymbol {B}}} je matice typu m × p {\displaystyle m\times p} definovaná vztahem

( A B ) i j = k = 1 n a i k b k j = a i 1 b 1 j + a i 2 b 2 j + + a i n b n j . {\displaystyle ({\boldsymbol {A}}\cdot {\boldsymbol {B}})_{ij}=\sum _{k=1}^{n}a_{ik}b_{kj}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots +a_{in}b_{nj}.}

pro všechny prvky výsledné matice indexované i { 1 , , m } {\displaystyle i\in \{1,\dots ,m\}} a j { 1 , , p } {\displaystyle j\in \{1,\dots ,p\}} .

Ve většině případů jsou prvky matice čísla, ale mohou to být jakékoli druhy matematických objektů, pro které je definováno sčítání a násobení, které jsou asociativní a takové, že sčítání je komutativní a násobení je distributivní s ohledem na sčítání, typicky prvky nějakého tělesa. Prvky mohou být dokonce samotné matice (bloková matice).

U reálných matic lze prvek v i {\displaystyle i} -tém řádku a j {\displaystyle j} -tém sloupci výsledné matice lze také chápat jako standardní skalární součin vektoru i {\displaystyle i} -tého řádku první matice s vektorem j {\displaystyle j} -tého sloupce druhé matice.

Tečka {\displaystyle \cdot } se v součinu vynechává a píše se pouze A B {\displaystyle {\boldsymbol {AB}}} .[2]

Ukázka výpočtu

Schéma součinu A B {\displaystyle {\boldsymbol {A}}{\boldsymbol {B}}} dvou matic A {\displaystyle {\boldsymbol {A}}} a B {\displaystyle {\boldsymbol {B}}} .

Součin matic A = ( 1 2 3 4 5 6 ) {\displaystyle {\boldsymbol {A}}={\begin{pmatrix}\color {blue}1&\color {blue}2&\color {blue}3\\\color {orange}4&\color {orange}5&\color {orange}6\\\end{pmatrix}}} a B = ( 1 2 3 4 5 6 ) {\displaystyle {\boldsymbol {B}}={\begin{pmatrix}\color {red}1&\color {green}2\\\color {red}3&\color {green}4\\\color {red}5&\color {green}6\\\end{pmatrix}}} je

A B = ( ( 1 1 + 2 3 + 3 5 ) ( 1 2 + 2 4 + 3 6 ) ( 4 1 + 5 3 + 6 5 ) ( 4 2 + 5 4 + 6 6 ) ) = ( 22 28 49 64 ) {\displaystyle {\boldsymbol {AB}}={\begin{pmatrix}({\color {blue}1}\cdot {\color {red}1}+{\color {blue}2}\cdot {\color {red}3}+{\color {blue}3}\cdot {\color {red}5})&({\color {blue}1}\cdot {\color {green}2}+{\color {blue}2}\cdot {\color {green}4}+{\color {blue}3}\cdot {\color {green}6})\\({\color {orange}4}\cdot {\color {red}1}+{\color {orange}5}\cdot {\color {red}3}+{\color {orange}6}\cdot {\color {red}5})&({\color {orange}4}\cdot {\color {green}2}+{\color {orange}5}\cdot {\color {green}4}+{\color {orange}6}\cdot {\color {green}6})\\\end{pmatrix}}={\begin{pmatrix}22&28\\49&64\end{pmatrix}}}

Prvky matice A {\displaystyle {\boldsymbol {A}}} zůstávají v řádcích tak, jak jsou, a prvky v matici B {\displaystyle {\boldsymbol {B}}} se rozmístí opět do levého a pravého sloupce.

Použití

Historicky bylo násobení matic zavedeno pro usnadnění a objasnění výpočtů v lineární algebře. Tento silný vztah mezi maticovým součinem a lineární algebrou zůstává je fundamentální v celé matematice, stejně jako ve fyzice, chemii, inženýrství a informatice.

Soustavy lineárních rovnic

Obecný tvar soustavy lineárních rovnic je

a 11 x 1 + a 12 x 2 + + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2 n x n = b 2 a m 1 x 1 + a m 2 x 2 + + a m n x n = b m {\displaystyle {\begin{array}{rcr}a_{11}x_{1}+a_{12}x_{2}+\dots +a_{1n}x_{n}&=&b_{1}\\a_{21}x_{1}+a_{22}x_{2}+\dots +a_{2n}x_{n}&=&b_{2}\\&\vdots &\\a_{m1}x_{1}+a_{m2}x_{2}+\dots +a_{mn}x_{n}&=&b_{m}\\\end{array}}}

Při použití stejné notace jako výše je zápis soustavy ekvivalentní jednoduché maticové rovnici

A x = b {\displaystyle {\boldsymbol {Ax}}={\boldsymbol {b}}} .

Lineární zobrazení

Pokud má vektorový prostor konečnou bázi, každý z jeho vektorů je jednoznačně reprezentován konečnou posloupností skalárů, nazývanou vektor souřadnic, tvořenou souřadnicemi vektoru vzhledem k bázi. Tyto vektory souřadnic tvoří další vektorový prostor, který je izomorfní původnímu vektorovému prostoru. Vektor souřadnic je běžně zapisován jako sloupcový vektor, což je matice pouze s jedním sloupcem. Sloupcový vektor pak představuje jak souřadnicový vektor, tak i vektor původního vektorového prostoru.

Lineární zobrazení A {\displaystyle A} prostoru dimenze n {\displaystyle n} do vektorového prostoru dimenze m {\displaystyle m} převádí sloupcový vektor

x = ( x 1 x 2 x n ) {\displaystyle {\boldsymbol {x}}={\begin{pmatrix}x_{1}\\x_{2}\\\vdots \\x_{n}\end{pmatrix}}}

na sloupcový vektor

y = A ( x ) = ( a 11 x 1 + + a 1 n x n a 21 x 1 + + a 2 n x n a m 1 x 1 + + a m n x n ) . {\displaystyle {\boldsymbol {y}}=A({\boldsymbol {x}})={\begin{pmatrix}a_{11}x_{1}+\cdots +a_{1n}x_{n}\\a_{21}x_{1}+\cdots +a_{2n}x_{n}\\\vdots \\a_{m1}x_{1}+\cdots +a_{mn}x_{n}\end{pmatrix}}.}

Lineární zobrazení A {\displaystyle A} je proto definováno maticí

A = ( a 11 a 12 a 1 n a 21 a 22 a 2 n a m 1 a m 2 a m n ) , {\displaystyle {\boldsymbol {A}}={\begin{pmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\cdots &a_{mn}\\\end{pmatrix}},}

a zobrazuje sloupcový vektor x {\displaystyle {\boldsymbol {x}}} na maticový součin

y = A x {\displaystyle {\boldsymbol {y}}={\boldsymbol {Ax}}} .

Je-li B {\displaystyle B} další lineární zobrazení z předchozího vektorového prostoru dimenze m {\displaystyle m} , do vektorového prostoru dimenze p {\displaystyle p} , pak jej lze reprezentovat maticí B {\displaystyle {\boldsymbol {B}}} řádu p × m {\displaystyle p\times m} . Přímý výpočet ukazuje, že matice složeného zobrazení B A {\displaystyle B\circ A} je rovna součinu B A {\displaystyle {\boldsymbol {BA}}} . Obecný vzorec ( B A ) ( x ) = B ( A ( x ) ) {\displaystyle (B\circ A)({\boldsymbol {x}})=B(A({\boldsymbol {x}}))} , který definuje složené zobrazení, je jedním z specifických případů asociativity maticového součinu:

( B A ) x = B ( A x ) = B A x . {\displaystyle ({\boldsymbol {BA}}){\boldsymbol {x}}={\boldsymbol {B}}({\boldsymbol {Ax}})={\boldsymbol {BAx}}.}

Geometrické rotace

Při použití systému kartézských souřadnic v euklidovské rovině je rotace o úhel α {\displaystyle \alpha } kolem počátku (počátek odpovídá nulovému vektoru) lineární zobrazení. Přesněji,

( x y ) = ( cos α sin α sin α cos α ) ( x y ) , {\displaystyle {\begin{pmatrix}x'\\y'\end{pmatrix}}={\begin{pmatrix}\cos \alpha &-\sin \alpha \\\sin \alpha &\cos \alpha \end{pmatrix}}{\begin{pmatrix}x\\y\end{pmatrix}},}
kde výchozí bod ( x , y ) {\displaystyle (x,y)} i jeho obraz ( x , y ) {\displaystyle (x',y')} jsou zapsány jako sloupcové vektory.

Složení rotací o úhel α {\displaystyle \alpha } a pak o úhel β {\displaystyle \beta } odpovídá maticovému součinu

( cos β sin β sin β cos β ) ( cos α sin α sin α cos α ) = ( cos β cos α sin β sin α cos β sin α sin β cos α sin β cos α + cos β sin α sin β sin α + cos β cos α ) = ( cos ( α + β ) sin ( α + β ) sin ( α + β ) cos ( α + β ) ) , {\displaystyle {\begin{pmatrix}\cos \beta &-\sin \beta \\\sin \beta &\cos \beta \end{pmatrix}}{\begin{pmatrix}\cos \alpha &-\sin \alpha \\\sin \alpha &\cos \alpha \end{pmatrix}}={\begin{pmatrix}\cos \beta \cos \alpha -\sin \beta \sin \alpha &-\cos \beta \sin \alpha -\sin \beta \cos \alpha \\\sin \beta \cos \alpha +\cos \beta \sin \alpha &-\sin \beta \sin \alpha +\cos \beta \cos \alpha \end{pmatrix}}={\begin{pmatrix}\cos(\alpha +\beta )&-\sin(\alpha +\beta )\\\sin(\alpha +\beta )&\cos(\alpha +\beta )\end{pmatrix}},}
ve druhé rovnosti jsou použity součtové vzorce. Výsledné složení odpovídá rotaci o úhel α + β {\displaystyle \alpha +\beta } , jak lze očekávat.

Skalární součin, bilineární forma a seskvilineární forma

Standardní skalární součin dvou reálných sloupcových vektorů lze zapsat maticovým součinem

x T y , {\displaystyle {\boldsymbol {x}}^{\mathsf {T}}{\boldsymbol {y}},}

kde x T {\displaystyle {\boldsymbol {x}}^{\mathsf {T}}} je řádkový vektor získaný pomocí transpozice x {\displaystyle {\boldsymbol {x}}} . (Výsledná matice 1 × 1 {\displaystyle 1\times 1} je zde ztotožněna se svým jediným prvkem.)

Obecněji lze jakoukoli bilineární formu ve vektorovém prostoru konečného rozměru vyjádřit jako maticový součin

x T A y , {\displaystyle {\boldsymbol {x}}^{\mathsf {T}}{\boldsymbol {Ay}},}

a jakoukoliv seskvilineární formu lze vyjádřit jako

x H A y , {\displaystyle {\boldsymbol {x}}^{\mathsf {H}}{\boldsymbol {Ay}},}

kde x H {\displaystyle {\boldsymbol {x}}^{\mathsf {H}}} je hermitovsky sdružený vektor k vektoru x {\displaystyle {\boldsymbol {x}}} .

Alokace zdrojů v ekonomii

Výpočet prvku v levém dolním rohu součinu A B {\displaystyle {\boldsymbol {AB}}} odpovídá všem možným cestám (zvýrazněné) od suroviny b 4 {\displaystyle b_{4}} ke konečnému výrobku f 1 {\displaystyle f_{1}} v grafu toku výroby.

Jako příklad si představme fiktivní továrnu, která používá 4 druhy surovin b 1 , b 2 , b 3 , b 4 {\displaystyle b_{1},b_{2},b_{3},b_{4}} k výrobě 3 meziproduktů, m 1 , m 2 , m 3 {\displaystyle m_{1},m_{2},m_{3}} , které se následně používají k výrobě 3 druhů výrobků, f 1 , f 2 , f 3 {\displaystyle f_{1},f_{2},f_{3}} .

Matice A = ( 1 0 1 2 1 1 0 1 1 1 1 2 ) {\displaystyle {\boldsymbol {A}}={\begin{pmatrix}1&0&1\\2&1&1\\0&1&1\\1&1&2\\\end{pmatrix}}}   a   B = ( 1 2 1 2 3 1 4 2 2 ) {\displaystyle {\boldsymbol {B}}={\begin{pmatrix}1&2&1\\2&3&1\\4&2&2\\\end{pmatrix}}} udávají množství surovin potřebných pro výrobu meziproduktů, respektive množství meziproduktů potřebných pro výsledné výrobky. Například k výrobě jednoho meziproduktu m 1 {\displaystyle m_{1}} je třeba jedna jednotka suroviny b 1 {\displaystyle b_{1}} , dvě jednotky b 2 {\displaystyle b_{2}} , žádné b 3 {\displaystyle b_{3}} a jedna jednotka b 4 {\displaystyle b_{4}} , což odpovídá prvnímu sloupci matice A {\displaystyle {\boldsymbol {A}}} .

Součin A B = ( 5 4 3 8 9 5   6 5 3 11 9 6 ) {\displaystyle {\boldsymbol {AB}}={\begin{pmatrix}5&4&3\\8&9&5\\\ 6&5&3\\11&9&6\\\end{pmatrix}}} pak přímo udává množství surovin potřebných pro výrobu jednotlivých výrobků. Například prvek v levém dolním rohu A B {\displaystyle {\boldsymbol {AB}}} je vypočítán jako 1 1 + 1 2 + 2 4 = 11 {\displaystyle 1\cdot 1+1\cdot 2+2\cdot 4=11} , což odpovídá tomu, že 11 {\displaystyle 11} jednotek b 4 {\displaystyle b_{4}} je potřeba k výrobě jednoho výrobku f 1 {\displaystyle f_{1}} . Jmenovitě jedna jednotka b 4 {\displaystyle b_{4}} je třeba pro m 1 {\displaystyle m_{1}} , 2 pro m 2 {\displaystyle m_{2}} a 4 {\displaystyle 4} pro každý ze dvou meziproduktů m 3 {\displaystyle m_{3}} , které jsou potřeba pro jeden kus f 1 {\displaystyle f_{1}} , viz obrázek.

Aby bylo možné vyrobit např. 100 výrobků f 1 {\displaystyle f_{1}} , 80 f 2 {\displaystyle f_{2}} a 60 f 3 {\displaystyle f_{3}} , lze potřebné množství surovin vypočítat jako

( A B ) ( 100 80 60 ) = ( 1000 1820 1180 2180 ) , {\displaystyle ({\boldsymbol {AB}}){\begin{pmatrix}100\\80\\60\\\end{pmatrix}}={\begin{pmatrix}1000\\1820\\1180\\2180\end{pmatrix}},}

tj. 1000 {\displaystyle 1000} jednotek b 1 {\displaystyle b_{1}} , 1820 {\displaystyle 1820} jednotek b 2 {\displaystyle b_{2}} , 1180 {\displaystyle 1180} jednotek b 3 {\displaystyle b_{3}} a 2180 {\displaystyle 2180} jednotek b 4 {\displaystyle b_{4}} .Matice součinu A B {\displaystyle {\boldsymbol {AB}}} může být použita k výpočtu množství surovin i pro jiné počty výrobků.[3]

Vlastnosti

Rovnosti uvedené v následujících odstavcích platí, pokud mají výsledky operací smysl.

  • Součin matice A {\displaystyle {\boldsymbol {A}}} s jednotkovou maticí I {\displaystyle \mathbf {I} } zprava i zleva má za výsledek matici A {\displaystyle {\boldsymbol {A}}} , tj. I A = A I = A {\displaystyle \mathbf {I} {\boldsymbol {A}}={\boldsymbol {A}}\mathbf {I} ={\boldsymbol {A}}} .
  • Maticový součin je asociativní, tedy A ( B C ) = ( A B ) C {\displaystyle {\boldsymbol {A}}({\boldsymbol {B}}{\boldsymbol {C}})=({\boldsymbol {A}}{\boldsymbol {B}}){\boldsymbol {C}}} .
  • Maticový součin není komutativní, tedy existují příklady matic, pro něž platí A B B A {\displaystyle {\boldsymbol {AB}}\neq {\boldsymbol {BA}}} .
  • Maticový součin je distributivní vůči sčítání, tj. A ( B + C ) = A B + A C {\displaystyle {\boldsymbol {A}}\left({\boldsymbol {B}}+{\boldsymbol {C}}\right)={\boldsymbol {AB}}+{\boldsymbol {AC}}} .
  • Maticový součin je lineární vůči násobení skalárem (typicky reálné nebo komplexní číslo), tj. A ( c B ) = ( c A ) B = c ( A B ) {\displaystyle {\boldsymbol {A}}\left(c{\boldsymbol {B}}\right)=(c{\boldsymbol {A}}){\boldsymbol {B}}=c({\boldsymbol {A}}{\boldsymbol {B}})} .
  • Matice vzhledem k součinu mohou být dělitelé nuly, tj. součin dvou nenulových matic může být nulová matice, například
( 1 1 2 2 ) ( 3 3 ) = ( 0 0 ) {\displaystyle {\begin{pmatrix}1&1\\2&2\end{pmatrix}}{\begin{pmatrix}-3\\3\end{pmatrix}}={\begin{pmatrix}0\\0\end{pmatrix}}} .
  • Součin matic A {\displaystyle {\boldsymbol {A}}} typu m × n {\displaystyle m\times n} a B {\displaystyle {\boldsymbol {B}}} typu n × p {\displaystyle n\times p} lze vyjádřit jako
A B = a 1 b 1 T + a 2 b 2 T + + a n b n T {\displaystyle {\boldsymbol {AB}}={\boldsymbol {a}}_{1}{\boldsymbol {b}}_{1}^{\mathsf {T}}+{\boldsymbol {a}}_{2}{\boldsymbol {b}}_{2}^{\mathsf {T}}+\cdots +{\boldsymbol {a}}_{n}{\boldsymbol {b}}_{n}^{\mathsf {T}}} ,
kde a 1 , a 2 , , a n {\displaystyle {\boldsymbol {a}}_{1},{\boldsymbol {a}}_{2},\dots ,{\boldsymbol {a}}_{n}} jsou sloupce matice A {\displaystyle {\boldsymbol {A}}} a b 1 T , b 2 T , , b n T {\displaystyle {\boldsymbol {b}}_{1}^{\mathsf {T}},{\boldsymbol {b}}_{2}^{\mathsf {T}},\dots ,{\boldsymbol {b}}_{n}^{\mathsf {T}}} řádky matice B {\displaystyle {\boldsymbol {B}}} . (Neboli b 1 , b 2 , , b n {\displaystyle {\boldsymbol {b}}_{1},{\boldsymbol {b}}_{2},\dots ,{\boldsymbol {b}}_{n}} jsou sloupce B T {\displaystyle {\boldsymbol {B}}^{\mathsf {T}}} .) Zde každý sčítanec a i b i T {\displaystyle {\boldsymbol {a}}_{i}{\boldsymbol {b}}_{i}^{\mathsf {T}}} je matice typu m × p {\displaystyle m\times p} , protože sloupcové vektory odpovídají maticím o jednom sloupci.
  • Transpozice součinu matic je součin transponovaných matic v opačném pořadí, tj. ( A B ) T = B T A T {\displaystyle {({\boldsymbol {AB}})}^{\mathsf {T}}={\boldsymbol {B}}^{\mathsf {T}}{\boldsymbol {A}}^{\mathsf {T}}}
  • Inverzní matice součinu regulárních matic je součin inverzních matic v opačném pořadí, tj. ( A B ) 1 = B 1 A 1 {\displaystyle {({\boldsymbol {AB}})}^{-1}={\boldsymbol {B}}^{-1}{\boldsymbol {A}}^{-1}}
  • Hermitovské sdružení (hermitovská transpozice) součinu matic je součin matic hermitovsky sdružených v opačném pořadí, tj. ( A B ) H = B H A H {\displaystyle {({\boldsymbol {AB}})}^{\mathsf {H}}={\boldsymbol {B}}^{\mathsf {H}}{\boldsymbol {A}}^{\mathsf {H}}}
  • Maticový součin odpovídá skládání lineárních zobrazení, které matice reprezentují.

Součiny čtvercových matic

Mocniny matice

Čtvercovou matici lze umocnit na jakoukoli nezápornou celočíselnou mocninu tím, že ji opakovaně násobíme stejným způsobem jako u běžných čísel, konkrétně

A 0 = I , {\displaystyle {\boldsymbol {A}}^{0}=\mathbf {I} ,}
A 1 = A , {\displaystyle {\boldsymbol {A}}^{1}={\boldsymbol {A}},}
A k = A A A k  krát . {\displaystyle {\boldsymbol {A}}^{k}=\underbrace {{\boldsymbol {A}}{\boldsymbol {A}}\cdots {\boldsymbol {A}}} _{k{\text{ krát}}}.}

Výpočet k {\displaystyle k} -té mocniny matice potřebuje k 1 {\displaystyle k-1} maticových součinů, pokud se provádí triviálním algoritmem (opakované násobení). Protože to může být velmi časově náročné, obecně se dává přednost použití umocňování pomocí druhé mocniny, které vyžaduje nejvýše log 2 k {\displaystyle \log _{2}k} maticových součinů, a je tedy mnohem efektivnější.

Snadným případem umocňování je diagonální matice. Protože součin diagonálních matic se rovná prostému vynásobení odpovídajících diagonálních prvků dohromady, získáme k {\displaystyle k} -tou mocninu diagonální matice umocněním prvků na diagonále na k {\displaystyle k} -tou:

( a 11 0 0 0 a 22 0 0 0 a n n ) k = ( a 11 k 0 0 0 a 22 k 0 0 0 a n n k ) . {\displaystyle {\begin{pmatrix}a_{11}&0&\cdots &0\\0&a_{22}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &a_{nn}\end{pmatrix}}^{k}={\begin{pmatrix}a_{11}^{k}&0&\cdots &0\\0&a_{22}^{k}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &a_{nn}^{k}\end{pmatrix}}.}

Regulární a singulární matice

Označme M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)} množinu čtvercových matic řádu n {\displaystyle n} s prvky z okruhu R {\displaystyle R} , což je v praxi často těleso.

V M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)} je součin definován pro každou dvojici matic. Toto dělá z M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)} okruh, který má jednotkovou matici I {\displaystyle \mathbf {I} } za neutrální prvek.

Pokud je n > 1 {\displaystyle n>1} , mnoho matic nemá inverzní prvek vůči násobení, např. nulová matice. Pokud inverzní prvek existuje, značí se A 1 {\displaystyle {\boldsymbol {A}}^{-1}} a nazývá se inverzní matice k matici A {\displaystyle {\boldsymbol {A}}} . Splňuje:

A A 1 = A 1 A = I . {\displaystyle {\boldsymbol {A}}{\boldsymbol {A}}^{-1}={\boldsymbol {A}}^{-1}{\boldsymbol {A}}=\mathbf {I} .}

Matice, která má inverzi, je regulární matice, někdy též invertibilní matice. Pokud inverzní matici nemá, nazývá se singulární matice.

Součin matic A B {\displaystyle {\boldsymbol {AB}}} je regulární, právě když je každý z činitelů A {\displaystyle {\boldsymbol {A}}} i B {\displaystyle {\boldsymbol {B}}} regulární. V tomto případě platí

( A B ) 1 = B 1 A 1 . {\displaystyle ({\boldsymbol {AB}})^{-1}={\boldsymbol {B}}^{-1}{\boldsymbol {A}}^{-1}.}

Determinant součinu

Determinant součinu čtvercových matic je součin jejich determinantů.

det ( A B ) = det ( B A ) = det A det B {\displaystyle \det({\boldsymbol {AB}})=\det({\boldsymbol {BA}})=\det {\boldsymbol {A}}\,\det {\boldsymbol {B}}} .

Tento vztah platí kdykoli je R {\displaystyle R} komutativní okruh, jmenovitě i v tělesech.

Výpočetní složitost

Výpočetní složitost výše popsaného algoritmu je O ( n 3 ) {\displaystyle O(n^{3})} (počítáme n 2 {\displaystyle n^{2}} čísel; pro každé potřebujeme 2 n 1 {\displaystyle 2n-1} aritmetických operací). Existují však algoritmy s nižší složitostí vhodné pro matice vyšších řádů. Nejpoužívanější z nich je Strassenův algoritmus se složitostí O ( n log 2 7 ) O ( n 2.807 ) {\displaystyle O(n^{\log _{2}{7}})\approx O(n^{2.807})} . Nižší složitost u tohoto algoritmu však získáváme za cenu snížené numerické stability. Asymptoticky nejrychlejší ze známých algoritmů je Coppersmithův-Winogradův algoritmus ( O ( n 2.376 ) {\displaystyle O(n^{2.376})} ), který je však použitelný až pro matice tak velkých řádů, že je nelze zpracovávat pomocí současných počítačů[4].

Teoreticky by se dala složitost ještě snížit, ale nikdy nemůže být menší než O ( n 2 ) {\displaystyle O(n^{2})} , protože je třeba spočítat n 2 {\displaystyle n^{2}} čísel.

Hledání nejkratší cesty v grafu

Algoritmy pro násobení matic s malou výpočetní složitostí lze využít i pro hledání nejkratší cesty v grafu z každého do každého vrcholu. To má v nejjednodušší podobě složitost O ( n 3 ) {\displaystyle O(n^{3})} . V tomto případě se však nepoužívá zde popsané násobení matic, ale upravená verze, kde je místo sčítání výběr nejmenšího prvku a místo násobení sčítání, proto nelze použít například Strassenův algoritmus, který využívá operaci odčítání jako inverzní operaci ke sčítání, která k operaci min {\displaystyle \min } není.

Graf lze popsat maticí vzdáleností A {\displaystyle {\boldsymbol {A}}} . Pokud je pro výpočty operace sčítání dvou čísel definována jako jejich minimum, a místo násobení se použije sčítání, je možno matici nejkratších cest B {\displaystyle {\boldsymbol {B}}} získat jako ( A n {\displaystyle {\boldsymbol {A}}^{n}} ) kde n {\displaystyle n} je řád matice vzdáleností. Při reálném výpočtu není třeba cyklicky násobit původní maticí, ale vždy se vynásobí vzniklé výsledky - nejkratší cesty jsou získány po log 2 ( n ) {\displaystyle \log _{2}(n)} násobeních. Je-li použit pro násobení algoritmus se složitostí menší než O ( n 3 log 2 ( n ) ) {\displaystyle O{\biggl (}{\frac {n^{3}}{\log _{2}(n)}}{\biggr )}} , složitost hledání cest se tímto postupem sníží.

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Matrix multiplication na anglické Wikipedii.

  1. Slovník školské matematiky. Praha: SPN, 1981. 240 s. 
  2. a b ČSN EN ISO 80000-2 (011300). Veličiny a jednotky - Část 2: Matematika. Česká agentura pro standardizaci, 2020-11-01. detail.
  3. Peter Stingl. Mathematik für Fachhochschulen – Technik und Informatik. 5th. vyd. Munich: Carl Hanser Verlag, 1996. ISBN 3-446-18668-9. (German) Je zde použita šablona {{Cite book}} označená jako k „pouze dočasnému použití“. Zde: příklad 5.4.10, s.205-206
  4. Robinson, Sara (2005), "Toward an Optimal Algorithm for Matrix Multiplication Archivováno 31. 3. 2010 na Wayback Machine.", SIAM News 38 (9), http://www.siam.org/pdf/news/174.pdf Archivováno 31. 3. 2010 na Wayback Machine.

Literatura

  • BÄRTSCH, Hans-Jochen. Matematické vzorce. Praha: Academia, 2006. 832 s. ISBN 80-200-1448-9. Kapitola Matice, s. 180–198. 
  • BEČVÁŘ, Jindřich. Lineární algebra. 1. vyd. Praha: Matfyzpress, 2019. 436 s. ISBN 978-80-7378-392-1. 
  • HLADÍK, Milan. Lineární algebra (nejen) pro informatiky. 1. vyd. Praha: Matfyzpress, 2019. 328 s. ISBN 978-80-7378-378-5. S. 39. 
  • OLŠÁK, Petr. Lineární algebra [online]. Praha: 2007 [cit. 2023-02-20]. Dostupné online. 
  • MOTL, Luboš; ZAHRADNÍK, Miloš. Pěstujeme lineární algebru [online]. [cit. 2023-02-20]. Dostupné online. 

Související články

Externí odkazy

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu násobení matic na Wikimedia Commons
  • Lineární algebra: algebra matic Archivováno 16. 2. 2009 na Wayback Machine. Aplikace, která násobí a sčítá matice zadané uživatelem a zobrazuje postup výpočtu.
Autoritní data Editovat na Wikidatech