#120
Ha progmatos vagy, netán ELTE-n, akkor majd Simon-féle Analízis 4 környékén tegyél ilyen meggondolatlan kijelentéseket. Proginfó nem ér, mivel ott rég nem azt a mennyiségű és minőségű matekot tanítják, amit például én még tanulhatok. Ha proginfós vagy, akkor kérlek, ne rontsd a szakom (programtervező matematikus) hírnevét és értékét azzal, hogy progmatosnak nevezed magad.
Ettől a mátrixos-vektoros dologtól meg nem kell hasraesni: Pascalban is létrehozhatsz akárhány dimenziós vektort, tömböt, nevezd, aminek akarod.
Továbbá egy mátrix felfogható egy m dimenziós vektorként is (sőt, sok esetben célszerű így kezelni), amelynek elemi n dimenziós vektorok, (amelyek elemei lehetnek egyszerű valós vagy complex számok, esetleg (i x k) x (j x p) dimenziós mátrixok, és hasonló perverziók), és láss csodát, ugyanazon egyszerű elvek alapján lehet ilyeneket összeadni-szorozgatni-invertálni, ahogy például az 1+1-et és elvégzed, vagy az 1/2-t kiszámolod.
Hogy mi értelme? Például a 2d-s forgatási mátrixnak sincs ránézésre túl sok értelme, de mikor a gép a 3d-s forgatási mátrix-szal szorozgat össze 3d-s vektorokat, akkor azért jól esik, hogy nem csak egy irányba lehet menni a Quake-ben.
Gyakorlati példa 4d-s számításokra: adott egy kép, például PNG formátumban, amelyben 1 pixelt 4 érték határoz meg: vörös, zöld, kék, alpha. Ha ezen élt szeretnénk keresni (Laplace például), bizony, 4d-s vektorokkal kell számolni, mert akárhogy is nézem, itt egy pixelt 4 jellemzővel írtam le. (Meg sem merem említeni, hogy maga a kép egy 2 dimenziós térből 4 dimenziós térbe képező függvény, hiszen minden egyes koordinátához (X, Y) hozzárendelünk egy színt (R, G, B, A), és akár lehet egy teljesen egyszerű, folytonos, diffható függvény, pl. ha a kép egy számítógéppel generált sinus-plazma, vagy egy textúra).
Élkeresésnél egy 3x3-as vagy 5x5-ös mátrix-szal szokás a képet leíró W x H (szélességszer magasság) darab pixelen ún. konvolúció műveletet végezni. A képet felbontjuk 3x3-as (vagy 5x5-ös) részmátrixokra (amelyek elemei 4 dimenziós vektorok), és ezekre alkalmazzuk a konvolúciós mátrixot (elemei valós számok). Ez a gyakorlatban persze jóval egyszerűbb:
Végiglépkedünk a kép összes pixelén, melyek ugyebár egy 2d-s vektorhoz (koordináta) tartozó 4d-s vektorok (szín). Egy iterációban a következőt csináljuk egy 3x3-as konvolúciós mátrixszal:
fogjuk a kép adott pixelét, ez lesz egx 3x3-as mátrix középpontja. A körülötte lévő 8 elemmel együtt ez a pixel egy 3x3-as mátrixot alkot (nevezzük képmátrixnak), amelynek elemei 4d-s vektorok. A konvolúciós mátrix egy 3x3-as, valós számokat tartalmazó mátrix. Most a 4d-s koordinátákra (rgba) a következőt csináljuk:
a képmátrix minden piros koordinátáját megszorozzuk a konvolúciós mátrix hozzá tartozó elemével, majd ezek összege (normalizálva, például 9-cel leosztva) lesz az új képnek a kiinduló pixel helyén lévő pixelének piros koordinátája.
Ugyanezt eljátsszuk a többi komponensre is, tehát így kapjuk meg az új pixel zöld, kék és alfa értékét. Bárki kipróbálhatja kedve szerint a dolog működését kedvenc képszerkesztőjében, PhotoShopban vagy Gimp-ben. (Utóbbiban: filters/generic/convolution matrix.)
Hoppá, ezek szerint mégis van értelme a mateknak és az n-dimenziós számításoknak?
A fenti algoritmussal baromi egyszerűen lekezeltük az elmélet bonyolultságát, hiszen csak számokat szorozgatunk és adunk össze, de vajon az elmélet nélkül (tehát anélkül, hogy a köznapi értelemben vett képet 2D-s térből 4D-s [vagy alpha nélkül 3D-s] térbe képező függvényként fognánk fel) ki tudná levezetni ezeket az összeadásokat és szorzásokat? Hiszen az élkeresés nem más, mint egy függvényben a nagy eltérések megkeresése, és máris a differenciálhatóságnál és a deriválásnál vagyunk. Sőt, mit ad Isten, az elmosás vagy az élesítés effekt is pontosan ugyanígy zajlik, csak mások a konvolúciós mátrix elemei (momentán egyetlen effekt mátrixát sem tudom fejből, bocsi, de elég régen foglalkoztam ezzel ahhoz, hogy elfelejtsem).
Vagy egy másik példa: van-e értelme negatív számból páros gyököt vonni? Minden minimum közepes képességű középsulis rávágja, hogy nincs, mert tanulták. Aztán ha valaki azt mondja, hogy az i-vel jelölt szám négyzete -1, azt körberöhögik. De például Vangelis vagy Jean Michelle Jarre milyen jó zenéket csinál pár szintetizátorral, nem? Na, a szintetizátor (vagy a sampler) meg úgy működik, hogy fog egy hangmintát (pl. egy zongora A hangjának leütése), és annak különböző magasságú változatait állítja elő. Miközben ezt a műveletet végzi, komplex számokkal számol, ún. Fourier-transzformációt végez, amiről elég annyit megemlíteni itt, hogy van benne (ha nem tévedek) mínusz végtelentől plusz végtelenig történő integrálás, mégpedig olyan függvényé, amelyben kitevőként szerepelnek komplex számok (amelyek négyzete ugyebár lehet negatív). És ebben az sem igazán jelent akadályt, hogy sem a végtelen, sem az i nem létezik.