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.