A mátrix a matematikában mennyiségek téglalap alakú elrendezése (táblázata) (számoké, függvényeké, kifejezéseké, vagy egyéb elemeké, esetleg más mátrixoké; általánosan valamilyen gyűrű vagy vektortér elemeié).
A mátrixokra hasonló kalkulus („algebra”) építhető fel, mint az elemeikre, amelynek rendkívül sokféle alkalmazása lehetséges. Ennek tanulmányozása a lineáris algebra feladata. Mátrixokat szoktak használni lineáris egyenletek és lineáris, valamint bilineáris függvények leírására. A mátrixok – a lineáris algebra (egyik) leghasznosabb fogalmaként – a matematikának a gyakorlatban legtöbbször alkalmazott eszközei között vannak, a matematika számos más ága mellett pedig a fizikától és komputergrafikától kezdve a biológián át egészen a nyelvészetig, számtalan tudományágban használhatóak akár az elméleti leírás tömör megfogalmazására, akár a számítások megkönnyítésére vagy automatizálására.
A „mátrix” az egyik kedvenc szava a sci-fi-íróknak is,Az azonos című filmtől kezdve a Marvel képregényein és filmjein keresztül – Superman, Transformers – egészen a Star Trek: Voyagerig megszámlálhatatlan sok alkotás használta ezt a szót. azonban ezen használati módok legtöbbször még lazán sem kapcsolódnak a matematikai fogalomhoz.
Definíciók és jelölések A mátrix vízszintes vonalban elhelyezkedő elemei sorokat, függőleges vonalban elhelyezkedő elemei oszlopokat alkotnak. Egy m sorból és n oszlopból álló mátrixot m-szer n mátrixnak neveznek (írva: ), az m és n pozitív egész számok a mátrix dimenziói. A mátrix dimenzióit mindig először a sorok számával, majd azt követően az oszlopok számával adják meg. Az A mátrix jelölése:
A mátrixnak az -edik sorában és -edik oszlopában lévő elemét a mátrix -edik elemének nevezik, jelölése vagy . Mindig először a sorszám, majd az oszlopszám szerepel.
Az m × n méretű mátrixot gyakran így jelölik: , a mátrix minden elemét -vel jelölik, ahol és . Konvenció, hogy a mátrixokat nagybetűvel, a mátrix elemeit pedig kisbetűvel jelölik. Szokás szerint a mátrix sorainak és oszlopainak számozása 1-gyel kezdődik – noha vannak számítógépes programok, melyek nullával kezdenek. A legtöbb programozási nyelv szintén nullától indexel. Azokat a mátrixokat, melyek egyik dimenziója 1, vektornak szokták nevezni. A sorvektornak csak egy sora van: , az oszlopvektornak pedig egyetlen oszlopa:
Az 1×1-es mátrixot skalárnak hívjuk.
Tisztán matematikai igényű definíció
Ha gyűrű (általában kommutatív gyűrű vagy test), akkor az -es mátrixok halmazán a
típusú, véges ( elemszámú) értelmezési tartományú, -be képező függvények halmazát értjük. Itt a halmazok Descartes-szorzata, rendezett pár.
Példák
Az A mátrix egy 4×3-as mátrix. Az vagy elem a 7.
Az R mátrix egy 1×9-es mátrix vagy 9 elemű sorvektor.
Műveletek mátrixokkal Transzponálás bélyegkép|jobbra|210px|A transzponálást kétszer egymás után végrehajtva visszakapjuk az eredeti mátrixot A transzponálás egy argumentumú művelet. Egy mátrix transzponálása sorainak és oszlopainak a felcserélését jelenti. Egy m×n-es mátrix transzponáltja n×m-es. Kétszer végrehajtva visszakapjuk az eredeti mátrixot. A transzponálás jele vagy .
Egy mátrix szimmetrikus, ha transzponáltja önmaga, azaz . Szimmetrikus mátrix csak négyzetes mátrix lehet.
Példa
Összeadás Csak azonos dimenziójú mátrixok adhatók össze. Legyen és két azonos dimenziójú, -es méretű mátrix. Az összeget úgy képezzük, hogy az azonos helyen lévő elemeket összegezzük (vagyis ).
Példa
Tulajdonságai Kommutatív: Asszociatív:
Skalárral való szorzás Az mátrix egy skalárral való szorzatát úgy számítjuk, hogy minden elemét megszorozzuk a számmal (vagyis ).
Ha a skalárt -es mátrixnak tekintjük, akkor a skalárral való szorzás speciális Kronecker-szorzat.
Példa
Tulajdonságai (bármelyik oldalról szorozhatunk a skalárral)
Az összeadás viszonyában teljesül még a (mindkét oldali) disztributivitás:
Mátrixszorzás Két mátrix szorzata akkor definiált, ha a bal oldali mátrix oszlopai száma megegyezik a jobb oldali mátrix sorainak számával. Ha egy -es, pedig egy -s mátrix, mátrixszorzatuk egy méretű ( sorból, oszlopból álló) mátrix lesz, melynek elemei így számíthatók:
minden -re és -re.
Példa
illetve a megfelelő sort a megfelelő oszloppal történő szorzást kidomborítandó:
ahol például az eredménymátrix 5-ös elemét úgy kaptuk, hogy a sorában lévő (1,0,2) elemeket páronként összeszoroztuk az oszlopában lévő (3,2,1) elemekkel, majd összeadtuk őket.
Tulajdonságai asszociativitás: minden -es , -es és -s mátrixra. Ezt a tulajdonságot kihasználva optimalizálni lehet a mátrixszorzást. A leghatékonyabb zárójelezés megtalálása nevezetes optimalizációs probléma. jobb oldali disztributivitás: minden -es és , valamint -s mátrixra. bal oldali disztributivitás: minden -es , valamint -s mátrixra.
Fontos tudni, hogy a kommutativitás általában nem teljesül; vagyis adott és összeszorozható mátrixra általában igaz, hogy .
A négyzetes mátrixok összeszorozhatók önmagukkal, ezért magasabb hatványaik is képezhetők. Skalár együtthatós polinomba is behelyettesíthetők; ekkor a konstans tagot a permanenciaelv alapján nulladik hatványnak definiált megfelelő méretű egységmátrixszal szorozzák össze. A polinomok segítségével más függvényeik is approximálhatók hatványsorok segítségével. Ezekhez a számításokhoz a mátrix Jordan-normálalakját használják, mert azzal egyszerűbb számolni.
Az ugyanolyan hosszú sor- és oszlopvektorok kétféleképpen is összeszorozhatók mátrixszerűen. Az egyik szorzat egy skalár, ami éppen a vektorok skaláris szorzata, a másik egy négyzetes mátrix, a vektorok diadikus vagy tenzorszorzata.
C nyelvű kódpélda Két mátrix összeszorzásának kódja C-ben önálló programként kiíratással:
#include <stdio.h> #include <stdlib.h>
void mtxfree(double **mtx, int rows) { int i; for (i = 0; i < rows; ++i) { free(mtx[i]); } free(mtx); }
int main() { int m, n, k; /* m oszlop, n sor (k oszlop) */ int i, j, p; int sum; double **A, **B, **AB; /* Dinamikus helyfoglalás */
printf("A matrix merete: "); fflush(stdout); scanf("%d%d", &n, &m); printf("B matrix oszlopai: "); fflush(stdout); scanf("%d", &k); printf("B matrix sorainak szama igy: %d\n", m);
A = (double**)calloc(n, sizeof(double*)); if (A == NULL) { return 1; } for (i = 0; i < n; ++i) { A[i] = (double*)calloc(m, sizeof(double)); if (A[i] == NULL) { mtxfree(A, i); /* már sikeresen lefoglalt memória felszabadítása */ return 1;
B = (double**)calloc(m, sizeof(double*)); if (B == NULL) { mtxfree(A, n); return 1; } for (i = 0; i < m; ++i) { B[i] = (double*)calloc(k, sizeof(double)); if (B[i] == NULL) { mtxfree(A, n); mtxfree(B, i); return 1;
AB = (double**)calloc(n, sizeof(double*)); if (AB == NULL) { mtxfree(A, n); mtxfree(B, m); return 1; } for (i = 0; i < n; ++i) { AB[i] = (double*)calloc(k, sizeof(double)); if (AB[i] == NULL) { mtxfree(A, n); mtxfree(B, m); mtxfree(AB, i); return 1;
printf("Adja meg az A matrixot:\n"); for (i = 0; i < n; ++i) /* A mátrix feltöltése */ { for (j = 0; j < m; ++j)
scanf("%lf", &A[i][j]);
printf("Adja meg a B matrixot:\n"); for (i = 0; i < m; ++i) /* B mátrix feltöltése */ { for (j = 0; j < k; ++j)
scanf("%lf", &B[i][j]);
printf("A matrix:\n"); for (i = 0; i < n; ++i) /* A mátrix kiíratása */ { for (j = 0; j < m; ++j)
printf("%0.5lf ", A[i][j]);
printf("\n");
printf("B matrix:\n"); for (i = 0; i < m; ++i) /* B mátrix kiíratása */ { for (j = 0; j < k; ++j)
printf("%0.5lf ", B[i][j]);
printf("\n");
for (i = 0; i < n; ++i) { for (j = 0; j < k; ++j)
sum = 0; for (p = 0; p < m; ++p)
sum += A[i][p]*B[p][j];
AB[i][j] = sum;
printf("\nEredmenymatrix:\nAB=\n"); for (i = 0; i < n; ++i) /* AB mátrix kiíratása */ { for (j = 0; j < k; ++j) { printf("%0.5lf ", AB[i][j]);
printf("\n");
mtxfree(A, n); mtxfree(B, m); mtxfree(AB, n);
return 0; }
Diadikus szorzás Az n-dimenziós valós vektortér és vektorainak diadikus szorzatán értjük és -vel jelöljük azt a tenzort, mely a vektortérbe tartozó minden egyes vektorhoz az vektort rendeli. Hadamard-szorzat
Két mátrix elemenkénti szorzatát Hadamard- vagy Schur-szorzatnak hívják, elemei:
Egy explicit példán:
A Hadamard-szorzat kommutatív, asszociatív és az összeadásra nézve disztributív.
Kronecker-szorzás
Ha -es és -es mátrix, akkor a Kronecker-szorzat nem más, mint
azaz az mátrix minden elemét megszorozzuk a mátrixszal, és ebből képezünk egy új mátrixot, aminek mérete .
Hogyha és rendre a és a , lineáris leképezéseket reprezentálják, akkor a tenzorszorzatot reprezentálja.
Használják a regressziós analízisben és a kvantummechanikában.
Invertálás
Az invertálás is egy argumentumú művelet, és csak a nem nulla determinánsú négyzetes mátrixokra értelmezett. Vagyis, ha egy -es mátrixra , akkor létezik egy mátrix, amire , ahol az -es identitásmátrix. Ezeket a mátrixokat invertálhatóknak nevezzük, míg a többit szingulárisnak.
A szinguláris mátrixokhoz nem tartozik ilyen mátrix. Ehelyett az inverzhez hasonló módon pszeudoinverzet definiálnak, ahol a szorzatról csak azt kötik ki, hogy szimmetrikus legyen:
Tipikusan ez egy diagonális mátrix, a főátlóján 1 és 0 értékekkel.
Speciálisan vektorok esetén további műveletek is léteznek.
Mátrix rangja Az -s mátrix rangja a mátrix lineárisan független oszlopainak maximális száma. Igazolható, hogy ez egy jól definiált természetes szám és megegyezik a mátrix lineárisan független sorainak maximális számával (a sorrang tehát egyenlő az oszlopranggal). Másként úgy is fogalmazhatunk, hogy a rang a mátrix oszlopvektorai által kifeszített altér dimenziója a vektortérben ( az a test, ahonnan a mátrix elemeit vesszük). Tehát a rang:
ahol az A mátrix oszlopai vektorokként.
Négyzetes mátrix
A négyzetes mátrix olyan mátrix, melyben a sorok és oszlopok száma megegyezik. Egy adott test feletti összes n×n-es négyzetes mátrix a skalárral való szorzással, mátrixösszeadással és mátrixszorzással algebrát alkot. Az n>1 esetben az algebra általában nem kommutatív.
Egy A mátrix főátlója az alakú elemeket tartalmazza, tehát azokat, amelyek ugyanannyiadik sorban vannak, mint oszlopban. (Főátlónak tehát a bal fölső és a jobb alsó sarkot összekötő átlót hívjuk.)
Diagonális mátrix
A diagonális mátrix avagy diagonálmátrix olyan négyzetes mátrix, amelynek minden főátlón kívüli eleme 0. (A nullmátrix is ide tartozik.)
Példa: egy harmadrangú (n=3) diagonális mátrix:
Egységmátrix
Az egységmátrix olyan négyzetes mátrix, melynek elemei a főátlóban egységnyiek, összes többi eleme 0, azaz olyan diagonálmátrix, melynek főátlóbeli elemei egységnyiek. Az egységmátrix kielégíti az alábbi egyenlőségeket: és minden -es mátrixra és -s mátrixra.
Példa: ha :
Az egységmátrix a négyzetes mátrixok gyűrűjének egységeleme.
Invertálhatóság A gyűrű invertálható elemeit invertálható mátrixnak vagy nem-szinguláris mátrixnak hívják. Egy -es mátrix akkor és csakis akkor invertálható, ha létezik egy olyan mátrix, melyre igaz: . Ebben az esetben a B mátrix az A mátrix inverz mátrixa és -nel jelölik.
Determinánsképzés
Az A négyzetes mátrix determinánsa
képlettel adható meg, ahol a permutációkra kell összegezni és a permutáció inverzióinak számát jelöli: azon párokét, amikre , de .
Invertálható mátrixok determinánsa nullától különbözik.
További jellemzők Ha egy szám és egy nemzéró vektor, melyre igaz az, hogy , akkor -t az mátrix sajátvektorának, -t pedig a hozzá tartozó sajátértékének nevezik.
Az A négyzetes mátrix karakterisztikus polinomja a polinom. Ez n×n-es A esetén n-edfokú polinom, melynek főegyütthatója , konstans tagja pedig A determinánsa. A Cayley–Hamilton-tétel szerint az A mátrix gyöke a polinomnak. A szám akkor és csakis akkor sajátértéke A mátrixnak, ha nem invertálható, azaz ha . Így gyökei pontosan A sajátértékei.
A Gauss-elimináció algoritmusának alapvető fontossága van: ezt lehet használni mátrixok determinánsának, rangjának és inverzének számítására, valamint lineáris egyenletrendszerek megoldására.