Înmulțirea matricei

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 10 august 2022; verificările necesită 2 modificări .

Înmulțirea matricelor este una dintre operațiile de bază pe matrice . Matricea rezultată din operația de înmulțire se numește produs matriceal . Elementele noii matrice sunt obținute din elementele vechilor matrice conform regulilor ilustrate mai jos .

Matricele și pot fi înmulțite dacă sunt compatibile în sensul că numărul coloanelor matricei este egal cu numărul de rânduri .

Matricele au multe dintre proprietățile de multiplicare algebrică pe care le au numerele obișnuite, cu excepția comutativității .

Pentru matricele pătrate, pe lângă înmulțire, se poate introduce și operația de ridicare a unei matrici la o putere și a matricei inverse .

În timp ce matricele sunt folosite pentru a descrie, în special, transformări ale spațiilor matematice ( rotație , reflexie , întindere și altele), produsul matricelor va descrie compoziția transformărilor .

Definiție

Să fie date două matrice dreptunghiulare și dimensiuni și , respectiv:

Apoi matricea cu dimensiuni :

în care:

se numește produsul lor .

Operația de înmulțire a două matrice este fezabilă numai dacă numărul de coloane din primul factor este egal cu numărul de rânduri din al doilea; în acest caz se spune că matricele sunt consistente . În special, înmulțirea este întotdeauna fezabilă dacă ambii factori sunt matrici pătrate de același ordin.

Astfel, existența unei opere nu urmează deloc existența unei opere.

Ilustrație

Produsul matriceal AB constă din toate combinațiile posibile ale produselor interne ale vectorilor rând ai matricei A și ale vectorilor coloană ai matricei B . Elementul matricei AB cu indici i, j este produsul scalar dintre vectorul i -lea rând al matricei A și vectorul j --lea coloană al matricei B .

Ilustrația din dreapta arată calculul produsului a două matrice A și B , arată cum fiecare intersecție din produsul matriceal corespunde rândurilor matricei A și coloanelor matricei B. Mărimea matricei rezultate este întotdeauna maximul posibil, adică pentru fiecare rând al matricei A și coloană a matricei B există întotdeauna o intersecție corespunzătoare în produsul matricei.

Valorile la intersecțiile marcate cu cercuri vor fi:

În general, produsul matriceal nu este o operație comutativă. De exemplu:

Elementul produsului matricelor de mai sus se calculează după cum urmează

Prima coordonată din desemnarea matricei denotă un rând, a doua coordonată denotă o coloană; această ordine este folosită atât pentru indexare, cât și pentru dimensionare. Elementul de la intersecția rândului și coloanei matricei rezultate este produsul scalar al rândului i al primei matrice și al coloanei a i-a a celei de-a doua matrice. Aceasta explică de ce lățimea și înălțimea matricelor înmulțite trebuie să se potrivească: altfel produsul punctual este nedefinit.

Discuție

Cel mai ușor este să vedeți motivele pentru regula descrisă a înmulțirii matricei luând în considerare înmulțirea unui vector cu o matrice.

Acesta din urmă este introdus în mod natural pe baza faptului că la descompunerea vectorilor în termeni de bază , acțiunea (orice) operator liniar A dă expresia componentelor vectorului v' = A v :

Adică, un operator liniar este reprezentat printr-o matrice, vectorii prin vectori coloană și acțiunea unui operator asupra unui vector prin multiplicarea matriceală a vectorului coloană din stânga cu matricea operatorului (acesta este un caz special de înmulțire a matricei, când una dintre matrice, vectorul coloană, are dimensiunea ).

(În egală măsură, trecerea la orice bază nouă la schimbarea coordonatelor este reprezentată de o expresie complet similară, doar că în acest caz nu mai este vorba de componentele noului vector din vechea bază, ci de componentele vechiului vector din noua bază. ; în acest caz ,  elementele matricei de tranziție la noua bază).

Având în vedere acțiunea secvențială asupra vectorului a doi operatori: mai întâi A , apoi B (sau transformarea bazei A , și apoi transformarea bazei B ), aplicând formula noastră de două ori, obținem:

de unde se poate observa că compoziția BA a acțiunii operatorilor liniari A și B (sau o compoziție similară a transformărilor de bază) corespunde unei matrice calculate după regula produsului a matricelor corespunzătoare:

Produsul matricelor definite în acest fel se dovedește a fi destul de natural și evident util (oferă o modalitate simplă și universală de a calcula compozițiile unui număr arbitrar de transformări liniare).

Proprietăți

Proprietate asociativă , asociativitate :

Proprietatea distributivă , distributivitatea în raport cu adunarea :

.

Produsul unei matrice și matricea de identitate dintr-un ordin adecvat este egal cu matricea însăși:

Produsul dintre o matrice și o matrice zero de dimensiune adecvată este egal cu matricea zero:

Dacă și  sunt matrici pătrate de același ordin, atunci produsul matriceal are o serie de alte proprietăți.

Înmulțirea matricelor este în general necomutativă :

Dacă , atunci matricele și se spune că fac naveta între ele.

Cele mai simple exemple de matrice de navetă:

Determinantul și urma produsului nu depind de ordinea înmulțirii matricei:

Matrice inversă

O matrice pătrată se numește non- singular ( non- singular ) dacă are o matrice inversă unică astfel încât să fie îndeplinită următoarea condiție:

În caz contrar, matricea se numește specială ( degenerată ) .

O matrice de ordine este nedegenerată dacă și numai dacă în acest caz există o matrice pătrată de același ordin

unde  este complementul algebric al elementului din determinant

Algoritmi de multiplicare rapidă a matricei

Complexitatea calculării produsului matricelor prin definiție este , dar există algoritmi mai eficienți [1] care sunt utilizați pentru matrice mari. Problema vitezei limită de înmulțire a matricelor mari, precum și problema construirii celor mai rapidi și mai stabili algoritmi practici pentru multiplicarea matricelor mari, rămâne una dintre problemele nerezolvate ale algebrei liniare .

Primul algoritm pentru multiplicarea rapidă a matricelor mari a fost dezvoltat de Volker Strassen [2] în 1969. Algoritmul se bazează pe o partiție recursivă a matricelor în blocuri 2X2 . Strassen a demonstrat că matricele 2X2 pot fi înmulțite necomutativ cu șapte înmulțiri, astfel încât șapte înmulțiri sunt efectuate la fiecare pas al recursiei în loc de opt. Ca urmare, complexitatea asimptotică a acestui algoritm este . Dezavantajul acestei metode este complexitatea mai mare a programării în comparație cu algoritmul standard, stabilitatea numerică slabă și o cantitate mai mare de memorie utilizată. Au fost dezvoltați o serie de algoritmi bazați pe metoda Strassen, care îmbunătățesc stabilitatea numerică, rata constantă și alte caracteristici. Cu toate acestea, datorită simplității sale, algoritmul Strassen rămâne unul dintre algoritmii practici pentru multiplicarea matricelor mari. Strassen a mai avansat următoarea conjectura Strassen : pentru arbitrar mic , există un algoritm care, pentru numere naturale suficient de mari n , garantează înmulțirea a două matrici de mărime în operații. În viitor, estimările ratei de multiplicare a matricelor mari au fost îmbunătățite de multe ori. Cu toate acestea, acești algoritmi au fost teoretici, în mare parte aproximativi. Din cauza instabilității algoritmilor de multiplicare aproximativă, aceștia nu sunt utilizați în prezent în practică. În 1978 Pan [3] și-a propus propria metodă de înmulțire a matricei, a cărei complexitate era Θ(n 2,78041 ) . În 1979, un grup de oameni de știință italieni condus de Bini [4] a dezvoltat un algoritm pentru multiplicarea matricelor folosind tensori. Complexitatea sa este Θ(n 2,7799 ) . În 1981 Schönhage [5] a introdus o metodă care funcționează cu o rată de Θ(n 2.695 ) . Estimarea se obține folosind o abordare numită înmulțire parțială a matricei . Mai târziu, a reușit să obțină estimarea Θ(n 2,6087 ) . Apoi Schönhage a obținut estimarea complexității Θ(n 2.548 ) pe baza metodei sumelor directe . Romani a putut face downgrade la Θ(n 2.5166 ) , în timp ce Pan a putut să facă downgrade la Θ(n 2.5161 ) . În 1990, Coppersmith și Winograd [6] au publicat un algoritm care, așa cum a fost modificat de Williams Wasilewska [7] în 2011, înmulțește matrice cu o rată de O(n 2,3727 ) . Acest algoritm folosește idei similare cu algoritmul lui Strassen. Până în prezent, modificările algoritmului Coppersmith-Winograd sunt cele mai asimptotic rapide. Dar faptul că îmbunătățirile obținute sunt neglijabile ne permite să vorbim despre existența „barierei Coppersmith-Winograd” în estimările asimptotice ale vitezei algoritmilor. Algoritmul Coppersmith-Winograd este eficient doar pe matrici de dimensiuni astronomice și nu poate fi aplicat în practică. În 2003, Koch și colaboratorii au considerat algoritmii Strassen și Coppersmith-Winograd în lucrările lor [8] în contextul teoriei grupurilor . Ei au arătat că conjectura lui Strassen este validă (adică, complexitatea minimă este mărginită pentru orice ) dacă una dintre ipotezele teoriei grupurilor [9] este satisfăcută .

Puterile matricelor

Matricele pătrate pot fi înmulțite de multe ori cu ele însele în același mod ca numerele obișnuite, deoarece au același număr de rânduri și coloane. O astfel de înmulțire secvențială poate fi numită ridicarea unei matrici la o putere  - acesta va fi un caz special al înmulțirii obișnuite a mai multor matrici. Matricele dreptunghiulare au un număr diferit de rânduri și coloane, astfel încât nu pot fi niciodată ridicate la o putere. O matrice n × n A ridicată la o putere este definită prin formula

și are următoarele proprietăți ( λ  este ceva scalar):

Grad zero:

unde E este matricea de identitate . Acest lucru este analog cu faptul că puterea zero a oricărui număr este egală cu unu.

Înmulțirea cu un scalar:

Determinant:

Cel mai simplu mod de a calcula gradul unei matrice este de a înmulți matricea A k ori cu rezultatul înmulțirii anterioare, pornind de la matricea de identitate, așa cum se face adesea pentru scalari. Pentru matricele diagonalizabile , există o metodă mai bună bazată pe utilizarea descompunerii spectrale a matricei A. O altă metodă, bazată pe teorema Hamilton-Cayley , construiește o expresie mai eficientă pentru Ak , în care scalarul este ridicat la puterea necesară , și nu întreaga matrice .

Matricele diagonale constituie un caz special . Deoarece produsul matricelor diagonale se reduce la înmulțirea elementelor diagonale corespunzătoare, atunci puterea k -a a matricei diagonale A constă din elementele ridicate la puterea necesară:

Astfel, nu este dificil să ridici o matrice diagonală la o putere. Când ridicați o matrice arbitrară (nu neapărat diagonală) la o putere, este adesea util să folosiți mai întâi proprietățile matricelor diagonalizabile .

Folosind înmulțirea matricelor și exponențiarea matricelor, pot fi definite alte operații pe matrice. De exemplu, exponentul matricei poate fi definit în termenii unei serii de puteri , logaritmul matricei poate fi definit  ca inversul exponentului matricei și așa mai departe.

Vezi și

Literatură

Note

  1. Colecția cibernetică. Seria noua. Problema. 25. Sat. articole 1983 - 1985: Per. din engleza. - M .: Mir, 1988 - V.B. Alexev. Complexitatea înmulțirii matriceale. Revizuire.
  2. Strassen V. Eliminarea gaussiană nu este optimă  // Număr . Math / F. Brezzi - Springer Science + Business Media , 1969. - Vol. 13, Iss. 4. - P. 354-356. — ISSN 0029-599X ; 0945-3245 - doi:10.1007/BF02165411
  3. Pan V. Ya, algoritmul lui Strassen nu este optim - tehnică triliniară de agregare, unire și anulare pentru construirea de algoritmi rapidi pentru operații cu matrice. — Proc. Al 19-lea simpozion anual despre fundamentele informaticii, Ann Arbor, Michigan, 1978
  4. Bini D., Capovani M., Lotti G., Romani F. — complexitate pentru înmulțirea matriceală aproximativă. - informa. proces. Lett., 1979
  5. Schonhage A. Înmulțirea matriceală parțială și totală. — SIAM J. Comput., 1981
  6. Don Coppersmith și Shmuel Winograd. Înmulțirea matricelor prin progresii aritmetice. Journal of Symbolic Computation , 9:251-280, 1990.
  7. Williams, Virginia (2011), Multiplying matices in O (n 2.3727 time Arhivat la 26 octombrie 2014 la Wayback Machine
  8. Algoritmi teoretici de grup pentru înmulțirea matricelor . Preluat la 26 septembrie 2009. Arhivat din original la 6 august 2011.
  9. Către un algoritm optim pentru multiplicarea matricelor (link downlink) . Consultat la 26 septembrie 2009. Arhivat din original la 31 martie 2010.