Desenul arată cazul în care
A este 4 × 2 și
B este 2 × 3 și dorim să calculăm elementul (
C )
12 = (
AB )
12 al matricei produsului
C =
A x B , cu dimensiuni 4 x 3 :
{\ displaystyle (C) _ {12} = \ sum _ {r = 1} ^ {2} a_ {1r} b_ {r2} = a_ {11} b_ {12} + a_ {12} b_ {22}} În matematică și mai precis în algebră liniară , înmulțirea matricelor este produsul rând cu coloană între două matrice , posibil în anumite condiții, care dă naștere unei alte matrice. Dacă o matrice reprezintă o aplicație liniară , produsul dintre matrice este traducerea compoziției a două aplicații liniare. Deci, dacă două matrice 2 x 2 reprezintă de exemplu două rotații în planul unghiurilor α și β, produsul lor este definit în așa fel încât să reprezinte o rotație a unghiului α + β.
Definiție
Este {\ displaystyle K} un inel . Se dă o matrice {\ displaystyle A} in marime {\ displaystyle m \ times n} și a doua matrice {\ displaystyle B} in marime {\ displaystyle n \ times p} la valori în {\ displaystyle K} . Lasa-i sa fie {\ displaystyle a_ {ij}} elementele de {\ displaystyle A} Și {\ displaystyle b_ {ij}} elementele de {\ displaystyle B} . Produsul matricial al {\ displaystyle A} pentru {\ displaystyle B} matricea {\ displaystyle C = AB} la valori în {\ displaystyle K} și în mărime {\ displaystyle m \ times p} ale cărei elemente {\ displaystyle c_ {ij}} sunt date de: [1]
- {\ displaystyle c_ {ij} = \ sum _ {r = 1} ^ {n} a_ {ir} b_ {rj} = a_ {i1} b_ {1j} + a_ {i2} b_ {2j} + \ cdots + a_ {in} b_ {nj}}
pentru fiecare valoare de rând {\ displaystyle i} și coloană {\ displaystyle j.}
Două matrice pot fi înmulțite între ele numai dacă numărul de coloane din prima este egal cu numărul de rânduri ale celei de-a doua, iar produsul dintre două matrice nu este comutativ . [2]
O matrice poate fi multiplicată cu ea însăși numai dacă este pătrată . În acest caz, produsul {\ displaystyle A \ cdot A} denotă cu {\ displaystyle A ^ {2}} . Mai general, puterea {\ displaystyle n} -thth dintr-o matrice este:
- {\ displaystyle A ^ {n} = {\ begin {cases} I și {\ text {se}} n = 0, \\\ underbrace {A \ cdot A \ cdots A} _ {n} și {\ text {se}} n> 0, \ end {cases}}}
unde este {\ displaystyle n} este un număr natural și {\ displaystyle I} este matricea identității . Cu toate acestea, pentru exponenți mult mai mari decât ordinea matricei, este mai ușor să calculăm puterile folosind teoria funcțiilor matricei , ceea ce ne permite, de asemenea, să generalizăm definiția puterii pentru a admite un exponent complex .
O altă definiție informală a multiplicării matricei, concepută pentru a permite o memorare mai rapidă și imediată, este „multiplicarea rând cu coloană”, de fapt, pentru a obține elementul {\ displaystyle i} -alea linie e {\ displaystyle j} -a coloana din matricea produsului pune doar un index pe rând {\ displaystyle i} din prima matrice, cealaltă pe coloană {\ displaystyle j} a doua și înmulțiți elementele indicate, apoi derulați un loc cu degetele și multiplicați, până ajungeți la capătul coloanei și rândului, adăugați în cele din urmă diferitele produse obținute.
Proprietate
- Înmulțirea între matrice este, în general, necomutativă , adică {\ displaystyle AB} Și {\ displaystyle BA} sunt două matrice diferite.
- Înmulțirea între matrice este distributivă în raport cu suma . Cu alte cuvinte:
- {\ displaystyle A (B + C) = AB + AC}
- {\ displaystyle (A + B) C = AC + BC}
- Pentru fiecare urcare {\ displaystyle k} este valabil:
- {\ displaystyle k (AB) = (kA) B = A (kB)}
- Înmulțirea între matrice este asociativă:
- {\ displaystyle A (BC) = (AB) C}
- Matricile care au valori într-un inel (de exemplu, inelul de numere întregi , raționale , reale sau complexe ) cu adunarea și operațiile produsului formează un alt inel . După cum sa menționat mai sus, acest inel este, în general , necomutativ, chiar dacă cel de pornire este.
- Elementul neutru pentru operația de multiplicare a matricei este matricea identică {\ displaystyle I} . În special, dacă {\ displaystyle A} este pătrat cu același număr de linii ca {\ displaystyle I} :
- {\ displaystyle AI = IA = A}
- Matricea nulă 0 cu {\ displaystyle n} rândurile anulează orice altă matrice. În special, dacă {\ displaystyle A} este pătrat cu {\ displaystyle n} linii, avem:
- {\ displaystyle 0A = A0 = 0}
- O matrice pătrată {\ displaystyle A} este inversabil dacă există o altă matrice {\ displaystyle B} astfel încât {\ displaystyle AB = BA = I} unde este {\ displaystyle I} este matricea de identitate cu același număr de rânduri ca {\ displaystyle A} . O matrice este inversabilă dacă și numai dacă determinantul este diferit de zero. Multe matrice nu sunt inversabile; cu alte cuvinte, chiar dacă setul de valori de pornire este un câmp , matricile nu formează un câmp. De exemplu, următoarea matrice nu este inversabilă:
- {\ displaystyle {\ begin {bmatrix} 0 & 0 \\ 1 & 1 \\\ end {bmatrix}}}
- Spus {\ displaystyle A ^ {\ mathrm {T}}} transpunerea de {\ displaystyle A} , avem asta {\ displaystyle (AB) ^ {\ mathrm {T}} = B ^ {\ mathrm {T}} A ^ {\ mathrm {T}}} . Intr-adevar:
- {\ displaystyle \ left [({AB}) ^ {\ mathrm {T}} \ right] _ {ij} = \ left ({AB} \ right) _ {ji} = \ sum _ {k} \ left ( {A} \ right) _ {jk} \ left ({B} \ right) _ {ki} = \ sum _ {k} \ left ({A} ^ {\ mathrm {T}} \ right) _ {kj } \ left ({B} ^ {\ mathrm {T}} \ right) _ {ik} = \ sum _ {k} \ left ({B} ^ {\ mathrm {T}} \ right) _ {ik} \ left ({A} ^ {\ mathrm {T}} \ right) _ {kj} =}
- {\ displaystyle = \ left [\ left ({B} ^ {\ mathrm {T}} \ right) \ left ({A} ^ {\ mathrm {T}} \ right) \ right] _ {ij}}
- Spus {\ displaystyle A ^ {- 1}} inversul {\ displaystyle A} , da {\ displaystyle (AB) ^ {- 1} = B ^ {- 1} A ^ {- 1}} .
- Spus {\ displaystyle A ^ {*}} conjugatul complex al {\ displaystyle A} , da {\ displaystyle (AB) ^ {*} = A ^ {*} B ^ {*}} . Intr-adevar:
- {\ displaystyle \ left [({AB}) ^ {\ star} \ right] _ {ij} = \ left [\ sum _ {k} \ left ({A} \ right) _ {ik} \ left ({ B} \ right) _ {kj} \ right] ^ {\ star} = \ sum _ {k} \ left ({A} \ right) _ {ik} ^ {\ star} \ left ({B} \ right ) _ {kj} ^ {\ star} = \ sum _ {k} \ left ({A} ^ {\ star} \ right) _ {ik} \ left ({B} ^ {\ star} \ right) _ {kj} = \ left ({A} ^ {\ star} {B} ^ {\ star} \ right) _ {ij}}
- Spus {\ displaystyle A ^ {\ dagger}} conjugatul complex transpune {\ displaystyle A} , da {\ displaystyle (AB) ^ {\ dagger} = B ^ {\ dagger} A ^ {\ dagger}} . Intr-adevar:
- {\ displaystyle \ left [({AB}) ^ {\ dagger} \ right] _ {ij} = \ left [\ left ({AB} \ right) ^ {\ star} \ right] _ {ji} = \ sum _ {k} \ left ({A} ^ {\ star} \ right) _ {jk} \ left ({B} ^ {\ star} \ right) _ {ki} = \ sum _ {k} \ left (A ^ {\ dagger} \ right) _ {kj} \ left ({B} ^ {\ dagger} \ right) _ {ik} = \ sum _ {k} \ left ({B} ^ {\ dagger} \ right) _ {ik} \ left (A ^ {\ dagger} \ right) _ {kj} = \ left (B ^ {\ dagger} A ^ {\ dagger} \ right) _ {ij}}
- Urma produsului {\ displaystyle AB} este independent de ordinea în care {\ displaystyle A} Și {\ displaystyle B} sunt multiplicate:
- {\ displaystyle \ mathrm {tr} ({AB}) = \ mathrm {tr} ({BA})}
- Intr-adevar:
- {\ displaystyle \ operatorname {tr} (AB) = \ sum _ {i = 1} ^ {m} \ left (AB \ right) _ {ii} = \ sum _ {i = 1} ^ {m} \ sum _ {j = 1} ^ {n} A_ {ij} B_ {ji} = \ sum _ {j = 1} ^ {n} \ sum _ {i = 1} ^ {m} B_ {ji} A_ {ij } = \ sum _ {j = 1} ^ {n} \ left (BA \ right) _ {jj} = \ operatorname {tr} (BA)}
Produs al unei matrice pentru un vector
O matrice cu un singur rând, adică unul de mărime {\ displaystyle 1 \ times n} , este un vector linie . În mod similar, o matrice cu o singură coloană, adică de dimensiune {\ displaystyle m \ times 1} este un vector coloană . În operația de multiplicare aceste două obiecte se comportă diferit.
Lasa-i sa fie {\ displaystyle A = (a_ {ij})} o matrice {\ displaystyle m \ times n} Și {\ displaystyle \ mathbf {v} = \ {v_ {i} \}} un vector coloană {\ displaystyle n \ times 1} . Produsul {\ displaystyle A} pentru vector {\ displaystyle \ mathbf {v}} este produsul matricilor:
- {\ displaystyle A \ mathbf {v} = \ mathbf {c}}
Componentele {\ displaystyle \ mathbf {c}} Sunt:
- {\ displaystyle c_ {i} = \ sum _ {j = 1} ^ {n} a_ {ij} v_ {j} = a_ {i1} v_ {1} + a_ {i2} v_ {2} + \ cdots + a_ {in} v_ {n}}
Algoritm
Un algoritm pentru multiplicarea matrice-vector este:
/ * Multiplicarea matricei × vector
RM = numărul de rânduri din matrice
CM = numărul de coloane din matrice (egal cu numărul de rânduri din vector)
M = matrice [RM] × [CM]
VI = vectorul inițial [CM]
VR = vectorul rezultat [CM]
vectorul rezultat va fi VR [RM] cu același număr de rânduri în matrice. * /
for ( int i = 0 ; i < RM ; i ++ ) { // Scanez liniile cu indexul i
VR [ i ] = 0 ; // inițializați coordonata a i-a a vectorului la zero
for ( int j = 0 ; j < CM ; j ++ ) { // și coloanele cu j
VR [ i ] = VR [ i ] + M [ i ] [ j ] * VI [ j ];
}
}
Acest produs este utilizat pe scară largă în algebra liniară, deoarece descrie o aplicație liniară . De exemplu, produsul:
- {\ displaystyle {\ begin {bmatrix} \ cos \ alpha & - \ sin \ alpha \\\ sin \ alpha & \ cos \ alpha \\\ end {bmatrix}} {\ begin {bmatrix} x \\ y \\ \ end {bmatrix}} = {\ begin {bmatrix} x \ cos \ alpha -y \ sin \ alpha \\ x \ sin \ alpha + y \ cos \ alpha \\\ end {bmatrix}}}
reprezintă o rotație a unghiului {\ displaystyle \ alpha} în plan cartezian .
În unele cazuri, poate fi util să realizați produsul {\ displaystyle linevector \ times Matrix} : rezultatul este un alt vector rând.
Produs al unei matrice de către un scalar
Înmulțirea unei matrice {\ displaystyle A = (a_ {i, j})} pentru o urcare {\ displaystyle r} , adică un element al inelului la care se află {\ displaystyle a_ {i, j}} , se obține înmulțind fiecare element al {\ displaystyle A} pentru alpinism:
- {\ displaystyle rA = (ra_ {i, j}) \}
Dacă inelul de pornire nu este comutativ , acesta se numește multiplicare la stânga și poate diferi de multiplicarea la dreapta :
- {\ displaystyle Ar = (a_ {i, j} r) \}
Proprietate
- Dacă inelul de pornire este comutativ (de exemplu, dacă este inelul numerelor întregi , raționale , reale sau complexe ) multiplicările din stânga și din dreapta sunt echivalente și vorbim doar de înmulțirea unei matrice cu un scalar.
- Dacă inelul de pornire este un câmp , de exemplu cel al numerelor raționale , reale sau complexe , spațiul matricilor {\ displaystyle m \ times n} cu operațiile de adunare și produs la scară formează un spațiu vectorial .
- Dacă inelul de pornire este un inel comutativ, spațiul matricei {\ displaystyle m \ times n} cu operațiile de sumă și produs la scară formează un modul .
Dacă inelul de pornire nu este comutativ, de exemplu, dacă este inelul cuaternar , cele două multiplicări nu sunt echivalente. De exemplu:
- {\ displaystyle i {\ begin {bmatrix} i & 0 \\ 0 & j \\\ end {bmatrix}} = {\ begin {bmatrix} -1 & 0 \\ 0 & k \\\ end {bmatrix}} \ neq {\ begin {bmatrix} -1 & 0 \\ 0 & -k \\\ end {bmatrix}} = {\ begin {bmatrix} i & 0 \\ 0 & j \\\ end {bmatrix}} i }
Construcții alternative
De-a lungul timpului, au fost definite alte tipuri de produse între matrice, mai puțin norocoase în ceea ce privește utilizarea produsului obișnuit rând cu coloană. În special, se poate numi produsul Hadamard sau produsul punct , în care produsul {\ displaystyle A = (a_ {ij}) _ {ij}} Și {\ displaystyle B = (b_ {ij}) _ {ij}} este dat de {\ displaystyle AB = (a_ {ij} \ cdot b_ {ij}) _ {ij}} . De exemplu:
- {\ displaystyle {\ begin {bmatrix} 1 & 2 \\ 3 & -1 \ end {bmatrix}} {\ begin {bmatrix} -3 & 0 \\ 1 & 4 \ end {bmatrix}} = {\ begin { bmatrix} -3 & 0 \\ 3 & -4 \ end {bmatrix}}}
O altă construcție este dată de produsul Kronecker , care găsește aplicații în calculul tensorului , dat de:
- {\ displaystyle AB = {\ begin {bmatrix} a_ {11} B & a_ {12} B & \ cdots & a_ {1n} B \\\ vdots & \ vdots & \ ddots & \ vdots \\ a_ {m1} B & a_ {m2} B & \ cdots & a_ {mn} B \ end {bmatrix}}}
exprimat sub forma unei matrice de blocuri , în care fiecare bloc {\ displaystyle ij} -alea este dată de matrice {\ displaystyle B} înmulțit cu scalarul {\ displaystyle a_ {ij}} .
Exemple
- O matrice {\ displaystyle 2 \ times 3} înmulțit cu {\ displaystyle 3 \ times 3} dă o matrice {\ displaystyle 2 \ times 3} :
- {\ displaystyle {\ begin {bmatrix} 1 & 1 & 2 \\ 0 & 1 & -3 \\\ end {bmatrix}} \ times {\ begin {bmatrix} 1 & 1 & 1 \\ 2 & 5 & 1 \\ 0 & -2 & 1 \ end {bmatrix}} =}
- Primul rând al matricei de rezultate:
- {\ displaystyle C_ {11} = [(1 \ ori 1) + (1 \ ori 2) + (2 \ ori 0)] = 3}
- {\ displaystyle C_ {12} = [(1 \ ori 1) + (1 \ ori 5) + (2 \ ori -2)] = 2}
- {\ displaystyle C_ {13} = [(1 \ ori 1) + (1 \ ori 1) + (2 \ ori 1)] = 4}
- Al doilea rând al matricei de rezultate:
- {\ displaystyle C_ {21} = [(0 \ ori 1) + (1 \ ori 2) + (- 3 \ ori 0)] = 2}
- {\ displaystyle C_ {22} = [(0 \ ori 1) + (1 \ ori 5) + (- 3 \ ori -2)] = 11}
- {\ displaystyle C_ {23} = [(0 \ ori 1) + (1 \ ori 1) + (- 3 \ ori 1)] = - 2}
- Rezultat (matrice {\ displaystyle 2 \ times 3} ):
- {\ displaystyle {\ begin {bmatrix} C_ {11} & C_ {12} & C_ {13} \\ C_ {21} & C_ {22} & C_ {23} \\\ end {bmatrix}} = {\ începe {bmatrix} 3 & 2 & 4 \\ 2 & 11 & -2 \\\ end {bmatrix}}}
- Luați în considerare produsul:
- {\ displaystyle {\ begin {bmatrix} 1 & 2 & 0 \\ 3 & -1 & 4 \\\ end {bmatrix}} \ times {\ begin {bmatrix} 1 \\ 0 \\ - 1 \\\ end {bmatrix}} = {\ begin {bmatrix} (1 \ times 1 + 2 \ times 0 + 0 \ times -1) \\ (3 \ times 1 + -1 \ times 0 + 4 \ times -1) \\ \ end {bmatrix}} = {\ begin {bmatrix} 1 \\ - 1 \\\ end {bmatrix}}}
- Rezultatul acestei operații este un alt vector de coloană, de tip {\ displaystyle m \ times 1} .
Notă
Bibliografie
- Serge Lang, Algebra liniară , Torino, Bollati Boringhieri , 1992, ISBN 88-339-5035-2 .
- ( EN ) Kenneth Hoffman și Ray Kunze, Algebra liniară , ediția a II-a, Englewood Cliffs, New Jersey, Prentice - Hall, inc., 1971, ISBN 0-13-536821-9 .
- Marco Abate, Chiara de Fabritiis, Geometrie analitică cu elemente de algebră liniară , Milano, McGraw-Hill, 2006. ISBN 88-386-6289-4 .
- Edoardo Sernesi, Geometria 1 , ed. A II-a, Torino, Bollati Boringhieri , 1989. ISBN 88-339-5447-1 .
- (EN) Henry Cohn, Robert Kleinberg, Balazs Szegedy și Chris Umans. Algoritmi teoretici de grup pentru multiplicarea matricei. arΧiv : math.GR/0511460 . Lucrările celui de-al 46-lea Simpozion anual privind fundamentele științei computerelor , 23-25 octombrie 2005, Pittsburgh, PA, IEEE Computer Society, pp. 379–388.
- (EN) Henry Cohn, Chris Umans. O abordare teoretică de grup a multiplicării rapide a matricei. arΧiv : math.GR/0307321 . Lucrările celui de-al 44-lea Simpozion anual IEEE privind fundamentele științei computerelor , 11-14 octombrie 2003, Cambridge, MA, IEEE Computer Society, pp. 438-449.
- ( EN ) Coppersmith, D., Winograd S., Multiplicarea matricei prin progresii aritmetice , J. Symbolic Comput. 9, p. 251-280, 1990.
- ( EN ) Robinson, Sara, Către un algoritm optim pentru multiplicarea matricei, SIAM News 38 (9), noiembrie 2005. PDF
- ( EN ) Strassen, Volker, Gaussian Eliminarea nu este optimă , numerică. Matematica. 13, p. 354-356, 1969.
- ( EN ) Vassilevska Williams, Virginia, Multiplicarea matricelor mai rapid decât Coppersmith-Winograd , Manuscris, mai 2012. PDF
Elemente conexe
Alte proiecte
linkuri externe