Mátrix (matematika)

mennyiségek téglalap alakú elrendezése a matematikában

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 egyik kedvenc szava a sci-fi-íróknak is,[mj 1] 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 szerkesztés

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ó szerkesztés

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 szerkesztés

 

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 szerkesztés

Transzponálás szerkesztés

 
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 szerkesztés

 

Összeadás szerkeszté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 szerkesztés

 

Tulajdonságai szerkesztés

  • Kommutatív:  
  • Asszociatív:  

Skalárral való szorzás szerkeszté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 szerkesztés

 

Tulajdonságai szerkesztés

  •   (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 szerkeszté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 szerkesztés

 

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 szerkesztés

  • 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 szerkesztés

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 szerkeszté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 szerkesztés

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 szerkeszté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 szerkesztés

Az invertálás csak a nem nulla determinánsú 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 szerkesztés

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 szerkesztés

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 szerkesztés

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 szerkesztés

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 szerkesztés

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 szerkeszté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 szerkesztés

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.

Egy négyzetes mátrix nyoma (angol kifejezéssel trace-e, vagy német szóval spurja) a főátlójában lévő elemek összege, ez mindig egyenlő az n sajátértékeinek összegével.

Az A négyzetes mátrix hasonló a B négyzetes mátrixhoz, ha létezik olyan C négyzetes mátrix, melyre

 

Jelölésben:

  vagy  

A hasonló mátrixok sajátértékei egyenlők, továbbá a mátrixok hasonlósága nagyon jó példája az ekvivalenciarelációnak.

Komplex mátrix szerkesztés

Komplex mátrixnak nevezzük a mátrixot, ha elemei között komplex számok is előfordulhatnak.

Példa: Komplex mátrix például az   ahol i az imaginárius egység.

Vektorterek szerkesztés

Ha   kommutatív, egységelemes gyűrű, akkor a fölötte definiált n×m-es mátrixok a mátrixösszeadásra és a skalárral való szorzásra modulust alkotnak R fölött. Az   mátrixszorzat nyoma

 

skalárszorzat a mátrixok tere fölött.

Speciálisan, ha az alapgyűrű test, akkor a mátrixok euklideszi teret alkotnak. Ha n=m, akkor a térben a szimmetrikus és a ferdén szimmetrikus mátrixok alterei ortogonálisak, tehát  .

A komplex mátrixok szorzatának nyoma  

 

a Hilbert-Schmidt-skalárszorzat, amivel a tér unitér tér lesz. Az általa indukált norma a Frobenius-norma, amivel a mátrixok tere Banach-tér.

A négyzetes mátrixok alkotta mátrixgyűrűkben az egységelem az identitásmátrix. Általánosságban, a főátlóján az alapgyűrű egységeleme, azon kívül nulleleme áll; számtestek esetén a főátlón egyeseket, azon kívül nullákat tartalmaz. A csupa nullelemet, illetve nullákat tartalmazó mátrix a nullmátrix, ami a mátrixgyűrű nullelemeként szolgál.

Alkalmazások szerkesztés

Mátrixegyenletek átalakítása szerkesztés

A statisztikában a magasabb dimenziós tételeket, eljárásokat, objektumokat gyakran mátrixokkal adják meg, és a számításokat, bizonyításokat ebben az alakban végzik. Mátrixegyenletek keletkeznek differenciálegyenletek diszkretizálásakor is.

Az egyenletek átalakításakor figyelembe kell venni, hogy a mátrixszorzás nem kommutatív, és hogy léteznek nullosztók. Osztás helyett például az inverzzel kell szorozni a megfelelő oldalról.

Egy egyszerű egyenlet:

 

Ha az   mátrix invertálható, akkor szorozhatunk az inverzzel:

 

így kapjuk az

 

megoldást.

Lineáris leképezések koordinátás ábrázolása szerkesztés

Egy adott   gyűrű fölött definiált mátrixok kapcsolódnak a gyűrű fölötti modulusokhoz. Ha  , akkor a   értelmezési tartomány és a   képtér (értékkészlet) egy rögzített bázisában az   mátrix egy lineáris leképezést ábrázol, ahol is az   bázisát a képtér bázisának a sorok szerinti lineáris kombinációjába viszi. Azaz, ha az ábrázolt lineáris leképezés  , akkor a  -edik oszlopban a   vektor képének koordinátái állnak. A leképezés az értelmezési tartomány egy tetszőleges   vektorát az   vektorba viszi.[1]

Megfordítva, minden   lineáris leképezés ábrázolható   mátrixszal a fenti bekezdés megfordításaként. Tehát, ha nincs eleve adott bázis a mag- és a képtérben, akkor először választunk egy bázist, majd megnézzük az értelmezési tartomány bázisának képvektorait a képtér bázisában. Ezt az összefüggést kanonikus izomorfizmusnak nevezzük a lineáris leképezések és a mátrixok között:

 

adott  ,   és   esetén. A mátrixszorzás szintén megfelel a lineáris leképezések kompozíciójának, vagyis „szorzatának”. Ez asszociatív, ami egy újabb bizonyítást ad a mátrixszorzás asszociativitására.

Ha   kommutatív egységelemes gyűrű, akkor modulus helyett szabad  -modulusokat tekinthetünk. Ha   test, akkor tetszőleges véges dimenziós   fölötti   és   vektorterek izomorfak egy bázis választásával  -nel és  -mel valamely  -re és  -re, ahol   és   a   és   terek dimenziói. Ha   bázisa  -nek és   bázis  -ben, akkor tetszőleges   vektor egyértelműen előáll   alakban, és hasonlók tudhatók W vektorairól is. Az itt megjelenő testelemek a vektor koordinátái, és

 

az   koordinátavektora.

Hogyha   lineáris leképezés, akkor   bázisvektorainak képei előállnak a   bázisvektorainak lineáris kombinációjaként:

 

a

 

koordinátavektorral. Ekkor a leképezés egyértelműen ábrázolható az

 

mátrixszal. A mátrix függ a terek bázisaitól. Beszorzáskor a   bázisvektorokat a   bázisvektorok váltják fel.

Két lineáris leképezés,   és   szorzatát a

 

mátrixs ábrázolja, feltéve, hogy a  bázis közös. Eszerint a  -ből  -be menő lineáris leképezések halmaza izomorf  -nel. Az   izomorfia azonban a bázisoktól függ, ezért nem kanonikus.

Legyenek   a  , és   a   tér egy másik bázisa. Az adott leképezés ebben a bázisban is ábrázolható. Ez az ábrázolás a korábbi bázisból mátrixszorzással számítható, mégpedig az értelmezési tartomány bázisának megváltozásakor balról kell szorozni egy  -es mátrixszal, míg a képtér bázisváltásához egy  -es mátrixszal jobbról. Ez a szorzási szabály kétszeri alkalmazásával látható be:

 

ahol is az   és   identitásmátrixok mindent önmagára képeznek le.

Ha a bázistranszformáció egyes tulajdonságokat érintetlenül hagy, akkor azokat érdemes bázisfüggetlenül a lineáris leképezésnek tulajdonítani. Egy ilyen tulajdonság test fölött a rang, ami a képtér dimenzióját adja meg. Teljes rang esetén a leképezést ábrázoló mátrixok invertálhatók.

A determinánst csak négyzetes mátrixokra definiálják. Ekkor a két tér dimenziója megegyezik, tehát, mivel az azonos dimenziójú vektorterek izomorfak,   feltehető. Hogyha az értelmezési és a képtartományban ugyanazt a bázistranszformációt végezzük, akkor

 

és a determináns is megmarad. A determináns akkor és csak akkor nem nulla, ha a leképezés teljes rangú.

Végtelen dimenziós terek szerkesztés

Végtelen dimenziós terekben is teljesül, hogy tetszőleges   lineáris leképezést meghatározzák U egy tetszőleges   bázisának   képvektorai. Ebben az esetben azonban megszokottabb a lineáris operátor elnevezés. Amennyiben korlátos, kiterjeszthető az egész U-ra. Ha most   bázis  -ben, akkor   egyértelműen előáll   elemeinek lineáris kombinációjaként, ahol az együtthatók közül véges sok nullától különböző testelem van, így

 

Test helyett vehető ferdetest is. Így minden korlátos lineáris operátor felfogható végtelenszer végtelen mátrixként, ami extrém ritka, ugyanis a végtelen sok eleme között csak véges sok különbözik nullától. A lineáris transzformációk szorzása ismét megfelel a mátrixszorzásnak.

A nem korlátos lineáris operátorok nem folytonosak, és legfeljebb egy sűrű altérre terjeszthetők ki. Ilyenek például függvénytereken a differenciáloperátorok. Jellemzésükben fontos szerephez jut az értelmezési tartomány. Sok tulajdonságot csak sűrűn definiált operátorokra tudunk bizonyítani.[2]

A funkcionálanalízisben topologikus vektortereket vizsgálnak, így lehet beszélni határértékről, és képezhetők végtelen sorozatok összegei is. Így vizsgálhatók olyan végtelen mátrixok is, amelyek végtelen sok nullától különböző értéket tartalmaznak, és akár egész sorok és oszlopok is teltek lehetnek. Itt bázison is valami mást értenek.

Ennek egy speciális alesetét alkotják a Hilbert-terek. Legyenek   Hilbert-terek, és   rendre   és   ortonormált bázisa. Ekkor a   lineáris operátor, ahol a mátrix elemei a

 

testelemek, és ahol   a Hilbert-tér skalárszorzata. Sűrűn definiált lineáris operátorok is hasonlóan ábrázolhatók, amennyiben az értelmezési tartománynak van ortonormált bázisa.

A Hilbert‑Schmidt-skalárszorzat csak a lineáris leképezések egy részére definiálható. Ezek a Hilbert‑Schmidt-operátorok, amelyekre a definiáló sor folytonosan konvergens.

Speciális mátrixok szerkesztés

Alkalmazások szerkesztés

Irodalom szerkesztés

Megjegyzések szerkesztés

  1. 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.

Jegyzetek szerkesztés

  1. Archivált másolat. [2012. november 19-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. július 21.)
  2. Archivált másolat. [2012. szeptember 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. július 21.)

Források szerkesztés

Online mátrix számológépek szerkesztés

Freeware szerkesztés