Hadamard-szorzat
A matematikában a Hadamard-szorzat, más néven Schur-szorzat vagy elemenkénti szorzat egy kétváltozós művelet, aminek tényezői azonos dimenziójú mátrixok. A szorzatban álló elemek a tényezők megfelelő elemeinek szorzatai. Nevét a francia Jacques Hadamard vagy a német Issai Schur matematikusok után kapta. Jelölése szimbólummal történik.
Definíció
[szerkesztés]Legyenek A és B ugyanolyan dimenziójú, m×n-es mátrixok. Ekkor A és B Hadamard-szorzata, A∘B is m×n-es mátrix, és
- .
Kifejtve:
Nem azonos méretű mátrixokra a Hadamard-szorzást nem értelmezzük.
Tulajdonságai
[szerkesztés]- Kommutatív (a közönséges mátrixszorzástól eltérően):
- Asszociatív:
- Disztributív a mátrixok összeadására:
- Identitásmátrixa az m×n-es mátrixok halmazán az az m×n-es mátrix, aminek minden eleme 1. Ez különbözik a szokásos identitásmátrixtól. Egy mátrix Hadamard-invertálható, ha egyik eleme sem nulla.[1]
- A és a átlós mátrixokra, és főátlójukra mint és vektorokra teljesül:[2]
- ,
- ahol az adjungáltja. Általában, csupa egy vektorokkal megmutatható, hogy a Hadamard-szorzat elemeinek összege egyenlő ABT nyomával. Négyzetes A és B mátrixok Hadamard-szorzatának sorösszege éppen az ABT főátlóján álló elemei:[3]
- .
- A Hadamard-szorzat a Kronecker-szorzat principális részmátrixa.
Schur szorzástétele
[szerkesztés]Pozitív szemidefinit mátrixok Hadamard-szorzata is pozitív szemidefinit.[3] Ez „Schur szorzástétele” néven ismert.[1] Sőt, ha A és B pozitív szemidefinit, akkor
Programozási nyelvekben
[szerkesztés]A Hadamard-szorzást egyes programozási nyelvek beépítetten tartalmazzák. A MATLAB nyelvben a .*
számítja.[4] Fortranban és Mathematicában egyszerűen a *
jelöli, míg a közönséges mátrixszorzat rendre a matmul
függvénnyel, illetve .
jellel számítható. Pythonban a sympy
szimbolikus matematikai függvénytár tartalmazza, az array()
adattípushoz kapcsolódóan, míg a közönséges mátrixszorzáshoz a mátrix (matrix
)osztályt kell használni. A kettő között beépített konverziókkal lehet váltani. Az Eigen C++ függvénytár rendszere hasonló. R-ben a Hadamard-szorzat alapértelmezett, a mátrixszorzás a matrix.A%*%matrix.B
alakban valósítható meg.
Alkalmazása
[szerkesztés]A Hadamard-szorzatot veszteséges tömörítő algoritmusok használják, például a JPEG.
Jegyzetek
[szerkesztés]- ↑ a b Million, Elizabeth: The Hadamard Product. (Hozzáférés: 2012. január 2.)
- ↑ (Horn & Johnson 1991)
- ↑ a b c (Styan 1973)
- ↑ Arithmetic Operators + - * / \ ^ ' -. MATLAB documentation. MathWorks. [2012. április 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. január 2.)