Vectorizare (matematică)
În matematică, în special în algebră liniară, vectorizarea unei matrice este o transformare liniară care transformă matricea într-un vector. Mai exact, vectorizarea unei matrice A Format:Nowrap, denumită vec(A), este un vector coloană Format:Nowrap obținut prin aranjare coloanelor matricei A una peste alta:
Aici, reprezintă elementul din linia i și coloana j din A, iar cu indicele superior este notată transpunerea. Vectorizarea exprimă, prin coordonate, izomorfismul între acestea (adică dintre matrici și vectori) ca spații vectoriale.
De exemplu, pentru matricea 2×2 , vectorizarea este .
Legătura dintre vectorizarea lui A și vectorizarea transpusei sale este dată de matricea de comutare.
Compatibilitatea cu produsul Kronecker
Vectorizarea este folosită frecvent împreună cu produsul Kronecker pentru a exprima înmulțirea matricilor ca o transformare liniară pe matrici. În special,
pentru matricele A, B și C cu dimensiunile k×l, l×m și m×n.[note 1] De exemplu, dacă (endomorfismul adjunct în Format:Ill-wd Format:Nowrap al tuturor matricilor n×n complexe), atunci , unde este matricea unitate n×n.
Există alte două formulări utile:
Mai general, s-a demonstrat că vectorizarea este autoadjunctă în structura închisă monoidală a oricărei categorii de matrice.[1]
Compatibilitatea cu produsul Hadamard
Vectorizarea este un homomorfism algebric din spațiul matricilor Format:Nowrap cu produsul Hadamard la Cn2 cu produsul său Hadamard:
Compatibilitatea cu produsul interior
Vectorizarea este o transformare unitară din spațiul matricelor n×n cu produsul interior Frobenius sau Format:Ill-wd la Cn2:
Unde cu indicele superior † este notată adjuncta.
Vectorizarea ca sumă liniară
Operația de vectorizare a unei matrice poate fi scrisă ca o sumă liniară. Fie X matricea Format:Nowrap care să fie vectorizată și fie ei vectorul celei de-a i-a bază canonică a spațiului n-dimensional, adică . Fie Bi o matrice de blocuri Format:Nowrap definită astfel:
Bi este formată din n matrici de blocuri de dimensiuni Format:Nowrap, plasate una deasupra alteia, și toate aceste matrici sunt nule cu excepția celei de a i-a, care este matricea unitate Format:Nowrap, Im.
Apoi versiunea vectorizată a lui X poate fi exprimată după cum urmează:
Înmulțirea lui X cu ei extrage coloana a i-a, în timp ce înmulțirea cu Bi o pune în poziția dorită în vectorul final.
Alternativ, suma liniară poate fi exprimată folosind produsul Kronecker:
Semivectorizare
Pentru o matrice simetrică A, vectorul vec(A) conține mai multe informații decât este strict necesar, deoarece matricea este complet determinată de simetrie împreună cu Format:Ill-wd, adică Format:Nowrap de pe și sub diagonala principală. Pentru astfel de matrici, semivectorizarea este uneori mai utilă decât vectorizarea. Semivectorizarea, vech(A), a unei matrice simetrice Format:Nowrap A este vectorul coloană Format:Nowrap obținut prin vectorizarea numai a părții triunghiulare inferioare a lui A:
De exemplu, pentru matricea 2×2, semivectorizarea este .
Există matrici unice care transformă semivectorizarea unei matrice în vectorizarea acesteia și invers numite, respectiv, matrice de duplicare și matrice de eliminare.
În limbajele de programare
Limbajele de programare care au implementate operații matriciale pot avea mijloace ușoare de vectorizare.
În Matlab/GNU Octave o matrice A poate fi vectorizată prin A(:).
GNU Octave permite, de asemenea, vectorizarea și semivectorizarea prin vec(A) și, respectiv, vech(A). Julia are și el funcția vec(A).
În Python tablourile NumPy implementează metoda platten,[note 1] iar în R efectul dorit poate fi obținut cu funcțiile c() sau as.vector(). În R funcția vec() a pachetului „ks” permite vectorizarea, iar funcția vech() implementată în ambele pachete „ks” și „sn” permite semivectorizarea.[2][3][4]
Note explicative
Note
Bibliografie
- Format:En icon Jan R. Magnus and Heinz Neudecker (1999), Matrix Differential Calculus with Applications in Statistics and Econometrics, 2nd Ed., Wiley. Format:Isbn.
Format:Portal
Eroare la citare: Există etichete <ref> pentru un grup numit „note”, dar nu și o etichetă <references group="note"/>