Înmulțirea matricilor

În matematică, în special în algebra liniară, înmulțirea matricilor sau înmulțirea matricială[1] este o operație binară care produce o matrice din două matrici. La înmulțirea matricială, numărul de coloane din prima matrice trebuie să fie egal cu numărul de linii din a doua matrice. Matricea rezultată, cunoscută sub numele de produs matricial, are numărul de linii ale primei matrice și numărul de coloane ale celei de-a doua matrice. Produsul matricilor Format:Math și Format:Math este notat Format:Math.[2]
Înmulțirea matricială a fost descrisă pentru prima dată de matematicianul francez Jacques Philippe Marie Binet în 1812,[3] pentru a reprezenta Format:Ill-wd de transformări liniare care sunt reprezentate cu ajutorul matricilor. Astfel, înmulțirea matricială a devenit un instrument de bază al algebrei liniare și, ca atare, are numeroase aplicații în multe domenii ale matematicii, precum și în matematica aplicată, statistică, fizică, economie și inginerie.[4][5] Calculul produselor matriciale este o operație centrală în toate aplicațiile algebrei liniare.
Notație
În acest articol convențiile privind notațiile sunt următoarele: matricile sunt reprezentate prin litere majuscule grase (bold), de exemplu Format:Math; vectorii cu litere minuscule grase, de exemplu Format:Math; iar elementele vectorilor și matricilor cu italice, de exemplu Format:Math sau Format:Math. Notația indexată este adesea cel mai clar mod de a exprima definițiile și este notația standard folosit în literatura de specialitate. Linia din matrice este indicată de indicele Format:Mvar, iar coloana de indicele Format:Mvar. Elementul matricei Format:Math este indicat prin Format:Math, Format:Math sau Format:Math. Prin excepție, un singur indice, de exemplu Format:Math, se folosește pentru a indica o matrice (nu un element al unei matrice) dintr-o colecție de matrici.
Definiție
Dacă Format:Math este o matrice Format:Math iar Format:Math este o matrice Format:Math,
Produsul matricial Format:Math (notat fără punct sau semnul înmulțirii) este definit ca fiind matricea Format:Math [6][7][8][9]
asfel încât
pentru Format:Math și Format:Math.
Adică elementul Format:Mvar al produsului se obține prin înmulțirea termen cu termen a elementelor din linia Format:Mvar a matricei Format:Math cu cele din coloana Format:Mvar a matricei Format:Math și sumând aceste Format:Mvar produse. Altfel spus, Format:Mvar este produsul scalar al liniei Format:Mvar a matricei Format:Math cu coloana Format:Mvar a matricei Format:Math.
Prin urmare Format:Math poate fi scris și ca
Astfel produsul Format:Math este definit dacă și numai dacă numărul de coloane din Format:Math este egal cu numărul de linii din Format:Math,[2] în acest caz Format:Math.
În majoritatea cazurilor elementele matricilor sunt numere, dar pot fi orice fel de obiecte matematice pentru care sunt definite o adunare și o înmulțire, care sunt asociative, adunarea să fie comutativă, iar înmulțirea să fie distributivă în raport cu adunarea. În particular, elementele pot fi ele înseși matrici.
Ilustrare

Figura din dreapta ilustrează schematic produsul a două matrice Format:Math și Format:Math, arătând cum fiecare intersecție din matricea produsului corespunde cu o linie din Format:Math și o coloană din Format:Math.
Valorile de la intersecții, marcate cu cercuri în figura din dreapta, sunt:
Principalele aplicații
Istoric, înmulțirea matricilor a fost introdusă pentru a facilita și clarifica calculele din algebra liniară. Această relație strânsă între înmulțirea matricilor și algebra liniară rămâne fundamentală în toate ramurile matematicii, precum și în fizică, chimie, inginerie și informatică.
Aplicații liniare
Dacă un spațiu vectorial are o bază finită, orice vector este reprezentat în mod unic printr-un șir finit de scalari, numit componentele vectorului, ale cărui elemente sunt coordonatele vectorului în acea bază. Aceste componente formează un alt spațiu vectorial, care este izomorf cu spațiul vectorial inițial. Componentele vectorului sunt plasate de obicei într-o matrice coloană (numită și vector coloană), care este o matrice cu o singură coloană. Deci, un vector coloană reprezintă atât componentele vectorului, cât și un vector din spațiului vectorial inițial.
O aplicație liniară Format:Mvar dintr-un spațiu vectorial de dimensiune Format:Mvar într-un spațiu vectorial de dimensiune Format:Mvar aplică un vector coloană
pe vectorul coloană
Aplicația liniară Format:Mvar este astfel definită de matricea
și aplică vectorul coloană pe produsul matricial
Dacă Format:Mvar este o altă aplicație liniară din spațiul vectorial precedent de dimensiunea Format:Mvar, într-un spațiu vectorial de dimensiunea Format:Mvar, este reprezentată printr-o matrice (Format:Mvar). Un calcul simplu arată că matricea compunerii este produsul matricial Formula generală care definește funcția compusă este prezentată aici ca un caz particular de asociativitate al produsului matricial:
Rotațiile geometrice
Folosind un sistem de coordonate carteziene într-un plan euclidian, rotația cu un unghi în jurul originii este o aplicație liniară. Mai exact,
unde punctul inițial și imaginea sa sunt scrise ca vectori coloană.
Compunerea rotației cu unghiul și cea cu unghiul corespunde apoi cu produsul matricial
în care membrul drept al ultimei identități conține identitățile trigonometrice pentru sinusul și cosinusul sumei și diferenței unghiurilor, compunerea corespunde rotației cu unghiul , cum era de așteptat.
Alocarea resurselor în economie

De exemplu, o fabrică fictivă folosește 4 tipuri de materii prime, pentru a produce 3 tipuri de bunuri intermediare , , care la rândul lor sunt folosite pentru a produce 3 tipuri de produse finite, . Matricile
- și
furnizează cantitatea de materii prime necesare pentru o anumită cantitate de bunuri intermediare și, respectiv, cantitatea de bunuri intermediare necesară pentru o anumită cantitate de produse finite. De exemplu, pentru a produce o unitate de bun intermediar , sunt necesare o unitate de materie primă , două unități de , nicio unitate de și o unitate de , corespunzătoare primei coloane din .
Folosind înmulțirea matricilor se calculează
această matrice indică direct cantitățile de materii prime necesare pentru cantități date de produse finite. De exemplu, intrarea din stânga jos a este calculată ca fiind , reflectând faptul că pentru a produce o unitate de sunt necesare unități de . Efectiv, este necesară o unitate de pentru , 2 pentru și pentru fiecare dintre cele două unități care intră în unitatea , vezi imaginea.
Pentru a produce de exemplu 100 de unități din produsul final , 80 de unități de și 60 de unități de , cantitățile necesare de materii prime pot fi calculate prin
adică unități de , unități de , unități de și unități de . Similar, matricea produsului poate fi utilizată pentru a calcula cantitățile necesare de materii prime pentru alte date privind cantitățile de produse finale.[10]
Sisteme de ecuații liniare
Forma generală a unui sistem de ecuații liniare este:
Folosind aceeași notație ca mai sus, un astfel de sistem este echivalent cu o singură ecuație matricială:
Produsul scalar, forma biliniară și sesquiliniară
Produsul scalar al doi vectori coloană este elementul unic al produsului matricial
unde este vectorul linie obținut prin transpunerea . (De obicei o matrice 1×1 este identificată prin unicul său element.)
În general, orice formă biliniară pe un spațiu vectorial de dimensiune finită poate fi exprimată ca produs matricial:
și orice altă Format:Ill-wd poate fi exprimată prin
unde este adjuncta lui (transpusa conjugată).
Proprietăți generale
Înmulțirea matricială are unele proprietăți asemănătoare cu înmulțirea obișnuită. Totuși, înmulțirea matricială nu este definită dacă numărul de coloane al primului factor diferă de numărul de linii al celui de-al doilea factor și este necomutativă,[11] chiar și când produsul rămâne definit după schimbarea ordinii factorilor.[12][13]
Necomutativitatea
O operație este comutativă dacă, fiind date două elemente Format:Math și Format:Math astfel încât produsul este definit, atunci este definit și
Înmulțirea matricială a două matrici Format:Math și Format:Math al căror produs matricial este definit, ar fi comutativă dacă produsul este și el definit, iar
Dacă Format:Math și Format:Math sunt matrici de dimensiunile Format:Mvar respectiv Format:Mvar, atunci este definit dacă Format:Mvar, iar este definit dacă Format:Mvar. Prin urmare, dacă unul dintre produse este definit, celălalt ar trebui să fie nedefinit. Dacă , cele două produse sunt definite, dar au dimensiuni diferite; astfel că ele nu pot fi egale. Doar dacă Format:Mvar, adică dacă Format:Math și Format:Math sunt ambele pătrate, de aceeași dimensiune, ambele produse sunt definite și au aceeași dimensiune. Chiar și în acest caz, în general
De exemplu
dar
Acest exemplu poate fi extins pentru a arăta că dacă Format:Math este o matrice Format:Mvar cu elementele într-un corp Format:Mvar, atunci pentru orice matrice Format:Math Format:Mvar cu elementele din Format:Mvar dacă și numai dacă unde și Format:Math este matricea unitate Format:Mvar. Dacă, în loc de un corp, se presupune că elementele aparțin unui inel, atunci trebuie adăugată condiția ca Format:Mvar să aparțină centrului inelului.
Un caz particular în care comutativitatea apare este atunci când Format:Math și Format:Math sunt două matrici diagonale pătrate de aceeași mărime. Atunci Format:Math.[11] Din nou, dacă matricile sunt peste un inel generic în loc de a fi peste un corp, elementele corespunzătoare ale fiecăreia trebuie, de asemenea, să fie comutative unul față de celălalt pentru ca acest lucru să fie valabil.
Distributivitatea
Produsul matricial este distributiv față de adunarea matricilor. Adică dacă Format:Math sunt matrici de dimensiunile respective Format:Mvar, Format:Mvar, Format:Mvar, și Format:Mvar, există atât distributivitatea la stânga[11]
cât și la dreapta[11]
Aceasta rezultă din distributivitatea coeficienților
Asociativitatea
Fiind date matricile Format:Math și Format:Math, produsele Format:Math și Format:Math sunt definite dacă și numai dacă numărul de coloane din Format:Math este egal cu numărul de linii din Format:Math și numărul de coloane din Format:Math este egal cu numărul de linii din Format:Math (în special, dacă unul dintre produse este definit, atunci celălalt este și el definit). În acest caz există asociativitatea
Ca la orice operație asociativă, aceasta permite omiterea parantezelor și scrierea produselor de mai sus ca
Aceasta se extinde natural la produsul a oricâte matrici, cu condiția ca dimensiunile să se potrivească. Adică dacă Format:Math sunt matrici astfel încât numărul de coloane ale Format:Math este egal numărul de linii ale Format:Math pentru Format:Math, atunci produsul
este definit și nu depinde de ordinea în care se fac înmulțirile, cât timp ordinea matricilor este păstrată fixă.
Aceste proprietăți pot fi demonstrate prin operații de adunare simple, dar lungi. Acest rezultat rezultă și din faptul că matricile sunt aplicații liniare. Prin urmare, proprietatea asociativă a matricilor este pur și simplu un caz particular al proprietății asociative a Format:Ill-wd.
Produsul cu un scalar
Dacă Format:Math este o matrice și Format:Mvar un scalar, atunci matricile și se obțin înmulțind la stânga sau la dreapta toate elementele lui Format:Math cu Format:Mvar. Dacă scalarii sunt comutativi, atunci
Dacă produsul este definit (adică numărul de coloane din Format:Math este egal cu numărul de linii din Format:Math), atunci
- și
Dacă scalarii sunt comutativi, atunci toate cele patru matrici sunt egale. În general, toate cele patru sunt egale dacă Format:Math aparține centrului unui inel care conține elementele matricei, deoarece în acest caz, Format:Math pentru toate matricile Format:Math.
Aceste proprietăți rezultă din biliniaritatea produsului scalarilor:
Operații cu matricea transpusă
Dacă scalarii sunt comutativi, transpusa produsului matricial este produsul, în ordine inversă, al transpuselor factorilor. Acesta este
unde cu T este notată transpusa.
Această identitate nu este valabilă pentru elementele necomutative, deoarece ordinea dintre elementele lui Format:Math și Format:Math este inversată atunci când se extinde definirea produsului matricial.
Conjugata complexă
Dacă Format:Math și Format:Math au elemente complexe, atunci
unde cu Format:Math sunt notate conjugatele complexe ale elementelor matricei.
Acest lucru rezultă din aplicarea la definiția produsului matricial a faptului că conjugatul unei sume este suma conjugatelor sumelor, iar conjugatul unui produs este produsul conjugatelor factorilor.
Transpunerea acționează asupra indicilor elementelor, în timp ce conjugarea acționează independent asupra elementelor în sine. Rezultă că, dacă Format:Math și Format:Math au elemente complexe, există
unde cu Format:Math sunt notate adjunctele (conjugatele transpuselor, sau, echivalent, transpusele conjugatelor).
Matrici pătrate
Fie mulțimea de matrici pătrate Format:Mvar cu elementele din inelul Format:Mvar, care, în practică, este adesea un corp.
În , produsul este definit pentru fiecare pereche de matrici. Acest lucru face din un inel, care are matricea unitate Format:Math ca element neutru (matricea ale cărei elemente pe diagonala principală sunt egale cu 1 și toate celelalte elemente sunt 0). Acest inel este, de asemenea, o Format:Ill-wd.
Dacă Format:Math, multe matrici nu au o inversă multiplicativă. De exemplu, o matrice care are toate elementele unei linii (sau unei coloane) 0 nu are inversă. Dacă există, inversa unei matrice Format:Math se notează Format:Math și verifică relația
O matrice care are o inversă este o matrice inversabilă. În caz contrar, este o matrice singulară.
Un produs matricial este inversabil dacă și numai dacă fiecare factor este inversabil. În acest caz există relația
Când Format:Mvar este comutativ și, în special, când este un corp, determinantul unui produs este produsul determinanților. Deoarece determinanții sunt scalari, iar scalarii sunt comutativi, există relația
Ceilalți Format:Ill-wd matriciali nu se comportă la fel de bine cu produsele. Totuși, dacă Format:Mvar este comutativ, Format:Math și Format:Math au aceeași urmă, același Format:Ill-wd și aceleași valori proprii cu aceleași multiplicități. Totuși, vectorii proprii sunt în general diferiți dacă Format:Math.
Puterea unei matrice pătrate
O matrice pătrată poate fi ridicată la orice putere întreagă nenegativă înmulțind-o cu ea însăși în mod repetat, în același mod ca pentru numerele obișnuite. Acesta este,
- Nu s-a putut interpreta (eroare de sintaxă): {\displaystyle \mathbf{A}^k = \underbrace{\mathbf{A}\mathbf{A}\cdots\mathbf{A}}_{\text{de 𝘬 ori}}.}
Calcularea celei de a Format:Mvar-a putere a unei matrice, dacă se face cu algoritmul trivial (înmulțire repetată) necesită de Format:Math ori timpul unei singure înmulțiri matriciale. Deoarece acest lucru consumă foarte mult timp, se preferă metoda Format:Ill-wd, care necesită mai puțin de Format:Math înmulțiri matriciale, deci este mult mai eficientă.
Un caz ușor de ridicare la putere este cel al unei matrice diagonale. Deoarece produsul matricilor diagonale echivalează cu simpla înmulțire a elementelor diagonale corespunzătoare, a Format:Mvar-a putere a unei matrici diagonale se obține prin ridicarea elementelor ei la puterea Format:Mvar:
Aplicație la matrici asemenea
Orice matrice inversabilă definește o transformare de asemănare (pe matrici pătrate de aceeași dimensiune ca )
Transformările de asemănare aplică produsul la factori, adică
De fapt,
Complexitatea de calcul

Un algoritm de înmulțire a matricilor care rezultă din definiție necesită în cazul cel mai rău Format:Math înmulțiri și Format:Math adunări de scalari pentru a calcula produsul a două matrice pătrate Format:Math. Într-un model de calcul în care operațiile scalare au timp constant Format:Ill-wd este deci Format:Math).
Surprinzător, această complexitate nu este optimă, așa cum a arătat în 1969 Volker Strassen, care a furnizat un algoritm, numit acum Format:Ill-wd, cu o complexitate de [14]
Din 2020, cel mai bun algoritm de înmulțire matricială era cel dat de Josh Alman și Virginia Vassilevska Williams, cu complexitatea Format:Math.[15]
Nu se știe dacă înmulțirea matricială poate fi efectuată în timp Format:Math. Acest lucru ar fi optim, deoarece trebuie citite cele Format:Math elementele unei matrice pentru a o înmulți cu o altă matrice.
Deoarece înmulțirea matricială formează baza pentru mulți algoritmi și multe operații pe matrici chiar au aceeași complexitate ca și înmulțirea matricială (până la o constantă multiplicativă), complexitatea de calcul a înmulțirii matriciale este o chestiune importantă în Format:Ill-wd și Format:Ill-wd.
Complexitatea de calcul în funcție de ordinea operațiilor
Deși rezultatul unei secvențe de produse matrice nu depinde de ordinea efectuării produselor (cu condiția ca ordinea matricelor să nu fie schimbată), complexitatea de calcul poate depinde mult de această ordine.
De exemplu, dacă Format:Math și Format:Math sunt matrici cu dimensiunile Format:Math, calculul Format:Math necesită Format:Math de înmulțiri, în timp ce calculul Format:Math necesită Format:Math de înmulțiri.
Au fost concepuți algoritmi pentru alegerea ordinii optime de efectuare a produselor, adică printr-un număr minim de operații. Când numărul Format:Mvar de matrici crește, s-a demonstrat că alegerea ordinii optime are o complexitate de
Alte tipuri de produse ale matricelor
Înmulțirea „standard” a matricilor prezentată în articolul de față este singurul mod de înmulțire al matricilor studiat în învățământul preuniversitar din România.[16] Însă există și alte tipuri de produse de matrici:
- produs cracovian, definit drept Format:Math
- produs interior Frobenius, produs scalar al matricilor considerate drept vectori, sau, echivalent suma produselor Hadamard ale elementelor
- produs Hadamard, elementele produsului sunt produsele element cu element
- produs Kronecker și produs tensorial, generalizare a precedentelor
- produs Khatri–Rao
- produs extern (sau produs diadic) a două matrici coloană,
Note
- ↑ Anca Ignat, Calcul numeric Format:Webarchive (curs 2, 2022, p. 2), Universitatea „Alexandru Ioan Cuza” din Iași, accesat 2023-06-13
- ↑ 2,0 2,1 Format:En icon Format:Cite web
- ↑ Format:En icon Format:MacTutor
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:De icon Format:Cite book Here: Exm. 5.4.10, pp. 205–206
- ↑ 11,0 11,1 11,2 11,3 Format:En icon Format:Cite web
- ↑ Format:En icon Format:Cite book
- ↑ Format:En icon Format:Cite book
- ↑ Format:Cite journal
- ↑ Format:Citation
- ↑ Format:Citat carte
Bibliografie
- Format:En icon Henry Cohn, Robert Kleinberg, Balázs Szegedy, and Chris Umans. Group-theoretic Algorithms for Matrix Multiplication. Format:Arxiv. Proceedings of the 46th Annual Symposium on Foundations of Computer Science, 23–25 October 2005, Pittsburgh, PA, IEEE Computer Society, pp. 379–388.
- Format:En icon Henry Cohn, Chris Umans. A Group-theoretic Approach to Fast Matrix Multiplication. Format:Arxiv. Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science, 11–14 October 2003, Cambridge, MA, IEEE Computer Society, pp. 438–449.
- Format:En icon Format:Cite journal
- Format:En icon Format:Citation
- Format:En icon Knuth, D.E., The Art of Computer Programming Volume 2: Seminumerical Algorithms. Addison-Wesley Professional; 3 edition (November 14, 1997). Format:Isbn. p. 501
- Format:En icon Format:Citation
- Format:En icon Ran Raz, On the complexity of matrix product. In Proceedings of the thirty-fourth annual ACM symposium on Theory of computing. ACM Press, 2002 Format:Doi.
- Format:En icon Robinson, Sara, Toward an Optimal Algorithm for Matrix Multiplication, SIAM News 38(9), November 2005. PDF
- Format:En icon Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969
- Format:En icon Format:Citation
- Format:En icon Format:Cite book