Fraktálok és káosz. Szirmay-Kalos László

Hasonló dokumentumok
dimenziója Szirmay-Kalos László N= 1/r D D= (logn) / (log 1/r) D= (log4) / (log 3) = 1.26 N = 4, r = 1/3 Vonalzó ( l ) db r =1/3 N = 4 r 2 N 2 N m r m

2D képszintézis. Szirmay-Kalos László

Nincs szinkronizáció és kommunikáció Csővezeték alkalmazása Párhuzamosítás

Véletlen szám generálás Labirintus felépítése 1x1-es felbontástól a teljes méretig

Georg Cantor (1883) vezette be Henry John Stephen Smith fedezte fel 1875-ben. van struktúrája elemi kis skálákon is önhasonló

HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl

Fraktálok. Klasszikus fraktálpéldák I. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék

Fraktálok. Löwy Dániel Hints Miklós

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

FRAKTÁLGEOMETRIA. Példák fraktálokra I. Czirbusz Sándor február 1. Komputeralgebra Tanszék ELTE Informatika Kar

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Direct3D pipeline. Grafikus játékok fejlesztése Szécsi László t03-pipeline

FRAKTÁLGEOMETRIA Feladatok. Czirbusz Sándor április 16. A feladatok végén zárójelben a feladat pontértéke található.

Fraktál alapú képtömörítés p. 1/26

Valószínűségi változók. Várható érték és szórás

A Newton-Raphson iteráció kezdeti értéktől való érzékenysége

Plakátok, részecskerendszerek. Szécsi László

2018, Diszkrét matematika

Matematika szigorlat, Mérnök informatikus szak I máj. 12. Név: Nept. kód: Idő: 1. f. 2. f. 3. f. 4. f. 5. f. 6. f. Össz.: Oszt.

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

2018, Diszkre t matematika. 10. elo ada s

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

1. Komplex függvények dierenciálhatósága, Cauchy-Riemann egyenletek. Hatványsorok, elemi függvények

Matematika A1a Analízis

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

A TANTÁRGY ADATLAPJA

Adatelemzési eljárások az idegrendszer kutatásban Somogyvári Zoltán

Textúrák. Szécsi László

Tartalomjegyzék. 1. Előszó 1

HLSL programozás. Szécsi László

Fraktálok. Bevezetés. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék Tavasz

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

TANTÁRGYI ÚTMUTATÓ. Gazdasági matematika I. tanulmányokhoz

Négyzetfraktálok. Fábián János

Fraktálok és számítógépes grafika

Programozási nyelvek 4. előadás

Nagy Gábor compalg.inf.elte.hu/ nagy

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

Folytonos görbék Hausdorff-metrika Mégegyszer a sztringtérről FRAKTÁLGEOMETRIA. Metrikus terek, Hausdorff-mérték. Czirbusz Sándor

Megoldások MATEMATIKA II. VIZSGA (VK) NBT. NG. NMH. SZAKOS HALLGATÓK RÉSZÉRE (Kérjük, hogy a megfelelő szakot jelölje be!

Záróvizsga tételek matematikából osztatlan tanárszak

Matematikai alapok 1 Tantárgyi útmutató

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék

Hajder Levente 2018/2019. II. félév

Gazdasági matematika 1 Tantárgyi útmutató

12. Mikor nevezünk egy részhalmazt nyíltnak, illetve zártnak a valós számok körében?

Nemlineáris jelenségek és Kao2kus rendszerek vizsgálata MATHEMATICA segítségével. Előadás: Szerda, 215 Labor: 16-18, Szerda, 215

2015, Diszkrét matematika

2. Hogyan számíthatjuk ki két komplex szám szorzatát, ha azok a+bi alakban, illetve trigonometrikus alakban vannak megadva?

Párhuzamos és Grid rendszerek

Geometriai modellezés. Szécsi László

Termék modell. Definíció:

A L Hospital-szabály, elaszticitás, monotonitás, konvexitás

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Sztochasztikus folyamatok alapfogalmak

2016, Diszkrét matematika

Numerikus módszerek 1.

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

Dr. Schuster György február / 32

A fontosabb definíciók

17.2. Az egyenes egyenletei síkbeli koordinátarendszerben

Összefoglalás és gyakorlás

Matematika (mesterképzés)

Matematika A2 vizsga mgeoldása június 4.

és annak H részcsoportja úgy, hogy a [H, G] intervallum (azaz a G-beli, H-t tartalmazó részcsoportok hálója) L-lel izomorf legyen?

Numerikus módszerek beugró kérdések

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Kiterjesztések sek szemantikája

3. Lineáris differenciálegyenletek

Metrikus terek, többváltozós függvények

Programok értelmezése

Digitális jelfeldolgozás

PTE PMMFK Levelező-távoktatás, villamosmérnök szak

Fraktálok. Hausdorff távolság. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék március 14.

Számítógépes Modellezés 11. Differenciálegyenletes modellek. Inga

PONTFELHŐ REGISZTRÁCIÓ

Természettudományi Kar. vizsgálata. Darida Sándor Matematika BSc, Matematikai elemző szakirány. Szakdolgozat

A Matematika I. előadás részletes tematikája

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Morvai Anikó. Szakdolgozat

Algoritmusok raszteres grafikához

BME MOGI Gépészeti informatika 15.

Hierarchikus skálafüggetlen gráfok generálása fraktálokkal

Gauss-Seidel iteráció

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Szegedi Tudományegyetem. Természettudományi és Informatikai Kar. Bolyai Intézet. Geometria Tanszék. Matematika-tanár szak.

Maple. Maple. Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007

Bevezetés az algebrába 2

Matematikai programok

MODELLEK ÉS ALGORITMUSOK ELŐADÁS

Modellek és Algoritmusok - 2.ZH Elmélet

GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai

11. gyakorlat megoldásai

Követelmény az 5. évfolyamon félévkor matematikából

Átírás:

Fraktálok és káosz Szirmay-Kalos László

A természet geometriája Euklideszi geometria metrikus Sima egyenesre/síkra épít (analízis: differenciálás) Kicsiben mindenki lineáris: Skálafüggőség Méret lényeges (milyen méret: dimenzió kapcsolat) Méret: szakasz, négyzet, kocka lefedés Dimenzió: algebra = független változók, topológia=kettévágás Hossz (1D); terület (2D); térfogat (3D) Ember alkotta objektumokra jó Természet Méret nem releváns (zérus vagy végtelen): dimenzió? Nem sima (nem differenciálható) Kicsiben is ugyanolyan: Skálafüggetlenség

(Helge von) Koch görbe: hossz végtelen l n = l 0 4 3 n Véges tartományban végtelen hosszú: Dimenzió > 1 Területe zérus Dimenzió < 2 Folytonos Sehol sem differenciálható (tüskés) Önhasonló

(Felix) Hausdorff dimenzió önhasonló objektumokra r = 1/ 2 N = 4 N = 8 N = 2 N = 1/r D D = log (N) log (1/r)

Koch görbe Hausdorff dimenziója r = 1/3 N = 4 D = log (4) log (3) 1.26

Lindenmayer (Arisztid) rendszerek F F+60F-120F+60F r = 1/3, N = 4, D=log(4)/log(3)=1.26 F F+90F-90F-90FF+90F+90F-90F r = 1/4, N = 8, D=log(8)/log(4)=1.5 F F+90F-90F-90F-90F+90F+90F+90F-90F r = 1/3, N = 9, D=log(9)/log(3)=2 Peano/Hilbert térkitöltő görbe

Nem önhasonló objektumok: vonalzó dimenzió N = 1/r D Vonalzó (l) db l 1 r =1/3 N = 4 r 2 N 2 r m N m Hossz(l) = l db = l N m = l (1/r D ) m = = l (1/r m ) D = 1/ l D-1 D = - log(hossz(l))/log(l) + 1

Dimenziómérés = hosszmérés EEG görbe log Hossz( l ) D-1 log l Alkalmazás: Természetes objektumok elkülönítése és kategorizálása

Fraktálok előállítása Matematikai gépek: L-rendszerek Fraktális (1/f ) zaj: Brown mozgás, Perlin zaj Kaotikus dinamikus rendszerek (véletlenszám generátor)

F F+60F-120F+60F Lindenmayer rendszerek

Vágás, Homogén osztás Vágás, homdiv Viewport tr. Raszterizáció transzform Viewport transzform Raszterizáció rasztertár Geometry shader csúcspontok vertex shader primitívek geometry shader gl_position reg1 reg2 reg3 reg4 pixelek gl_fragcoord reg1 reg2 reg3 reg4 Pixel cím Pixel szín Fragment shader VAO/VBO Textúrák GPU memória CPU

Fraktális zaj /9 /3 = 1/(2 3) Skála Részlet N = 4 N 2 = 16 /3 N m = 4 m /3 m-1 szórás

(1) S (Ken) Perlin zaj n( p) (2) S (3) S p p

Iterált függvények, fix point, stabilitás x n+1 = F(x n ) x 1 = F(x 0 ) x 2 = F(x 1 ) = F(F(x 0 )) x * = F(x * ) Fix point x 3 = F(x 2 ) = F(F(F(x 0 ))) Stabilitás: F (x * ) < 1 x * + x n+1 = F(x * + x n ) F(x * ) + F (x * ) x n x n+1 F (x * ) x n Labilis Stabil

Kaotikus dinamikus rendszer: nyulak kis C értékre S n+1 S n+1 = C S n (S max -S n ) S n S n+1 = S n Iteráció: S n+1 = F(S n ) Fix pont: S * = F(S * ) Stabil: F (S * ) < 1 S n n

Kaotikus dinamikus rendszer: nyulak közepes C értékre S n+1 S n S n+1 = S n stabil labilis S n+1 = C S n (S max -S n ) S n n

Kaotikus dinamikus rendszer: nyulak nagy C értékre S n+1 S n labilis labilis S n+1 = C S n (S max -S n ) S n n

Káosz A rendszer determinisztikus, de Kezdeti állapot hatása eltűnik Kis perturbáció nagyon eltérő viselkedéshez vezet Auto-korrelációs függvény zérushoz tart Korábbi állapot gyengén befolyásolja a sokkal későbbit Megjósolhatatlanság Teljesítmény sűrűség spektrum nem tart zérushoz Nagy frekvencia

static int r = 3; void seed(int s) { r = s; } int rand( ) { r = F(r); return r; } Iterált függvény: Pszeudó véletlenszám r n+1 = F(r n ) generátor véletlenként hat r n F nagy derivált! n

r n+1 1 1 Rossz F(r) 1 r n 1 1 1 1 1 1 (r n, r n+1 ) = (r n, F(r n )) párok 1

Kongruens generátor F(r) = { g r + c } g r+c tört része g nagy F(r) r

Kaotikus rendszerek a síkon F z = x + iy F(z)=z 2 + c F(z)=e z +c F(z)=cos(z+c) F(z)=sinh(z)+c

F: z z 2 divergens z = r e i r r 2 2 konvergens 1 Attraktor: H = F(H) F H

Attraktor felrajzolása Attraktor a labilis és a stabil tartomány határa: kitöltött attraktor = nem divergens pontok z n+1 = z n 2 : ha z < akkor fekete Attraktorhoz konvergálunk, ha az stabil z n+1 = z n 2 attraktora labilis

F -1 Inverz iterációs módszer H = F(H) H = F -1 (H) z n+1 = z n 2 z n+1 = z n H z 0 r n+1 = r n n+1 = n /2 + {0 1} Ha n nagy: 1 r n = (r 0 ) 1/2n 1 n = 0 /2 n +{0 1}.{0 1}{0 1}... {0 1}.{0 1}{0 1}... n n-1 n-2

Többértékű leképzés: Véletlen bolyongás z 0 + - n+1 = n /2 + {0 1} r n 1 n {0 1}.{0 1}{0 1}... n n-1 n-2 Nem lehet csak egy értékkel dolgozni??? Mélységi feltárás szélességi helyett??? Csak a +: n 0.000... = 0 Felváltva +/-: 2n 1.0101... = 4 /3; 2n+1 0.1010... = 2 /3 Véletlenszerűen!

(Gaston) Julia halmaz F: z z 2 + c

Kitöltött Julia halmaz: algoritmus Im z (X,Y) FilledJuliaDraw ( ) FOR Y = 0 TO Ymax DO Re z FOR X = 0 TO Xmax DO ViewportWindow(X,Y x, y) z = x + i y FOR n = 0 TO infinity DO z = z 2 + c IF z >= infinity THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR ENDFOR END

GPU implementáció float cvtx[] = { -1, -1, 1, -1, 1, 1, -1, 1 }; CPU program glbufferdata(gl_array_buffer, sizeof(cvtx), cvtx, GL_STATIC_DRAW); gldrawarrays(gl_triangle_fan, 0, 4); uniform vec2 cameracenter, camerasize; layout(location = 0) in vec2 cvertex; out vec2 z0; void main() { gl_position = vec4(cvertex, 0, 1); z0 = cvertex * camerasize/2 + cameracenter; } Im z Vertex shader Re z uniform vec2 c; in vec2 z0; out vec4 fragcol; z = z 2 + c Fragment shader void main() { vec2 z = z0; for(int i=0; i<1000; i++) z = vec2(z.x*z.x-z.y*z.y,2*z.x*z.y) + c; fragcol = (dot(z,z) < 100)? vec4(0, 0, 0, 1) : vec4(1, 1, 1, 1); }

Kitöltött Julia halmaz: kép

Julia halmaz inverz iterációval JuliaDrawInverseIterate ( ) Kezdeti z érték választás FOR n = 0 TO infinity DO x = Re z, y = Im z IF InWindow(x, y) WindowViewport(x, y X, Y) WRITE(X,Y, black) ENDIF z = z - c if (random( ) > 0.5) z = -z ENDFOR END Im z (X,Y) Re z Kezdeti z érték: z 2 = z - c gyöke

Vágás, homdiv Viewport tr. Raszterizáció rasztertár GPU implementáció z 0 + - Vertex shader layout(location = 0) in vec2 zroot; void main() { gl_position = vec4(zroot, 0, 1); } Fragment shader void main() { fragcolor = vec4(0, 0, 0, 1); } Pixel cím CPU vertex shader geometry shader Fragment shader

z 0 + - CPU program Kezdeti z érték: z 2 = z - c gyöke vec2 z = vec2(0.5, 0) + sqrtcomplex(vec2(0.25 - c.x, -c.y)); for (int p = 0; p < npackets; p++) { vec2 vtx[nseeds]; for (int i = 0; i < nseeds; i++) { z = sqrtcomplex(z - c) * (rand() & 1? 1 : -1); vtx[i] = -z; } glbufferdata(gl_array_buffer, sizeof(vtx), vtx, GL_DYNAMIC_DRAW); gldrawarrays(gl_points, 0, nseeds); }

Geometry shader uniform vec2 cameracenter, camerasize, c; layout(points) in; layout(points, max_vertices = 63) out; vec2 sqrtcomplex(vec2 z) { float r = length(z), phi = atan(z.y, z.x); return vec2(cos(phi/2), sin(phi/2)) * sqrt(r); } void main() { vec2 zs[63]; zs[0] = gl_in[0].gl_position.xy; gl_position = vec4((zs[0]-cameracenter)/(camerasize/2),0,1); EmitVertex(); } for(int i = 0; i < 63/2; i++) { vec2 z = sqrtcomplex(zs[i] - c); for(int j = 1; j <= 2; j++) { zs[2 * i + j] = z; gl_position = vec4((z-cameracenter)/(camerasize/2),0,1); EmitVertex(); z = -z; } } EndPrimitive(); 0 1 2 3 4 5 6

Julia halmaz összefüggése összefüggő nem összefüggő, Cantor féle halmaz

H = F(H) F H Julia halmaz H 1 = F(H 0 ) H 0 összefüggősége H 0 H H-c H 1 c H-c H c z n+1 = z n -c

(Benoit) Mandelbrot halmaz Azon c komplex számok, amelyekre a z z 2 + c Julia halmaza összefüggő.

Mandelbrot halmaz, algoritmus Im z (X,Y) MandelbrotDraw ( ) FOR Y = 0 TO Ymax DO FOR X = 0 TO Xmax DO Re z ViewportWindow(X,Y x, y) c = x + i y z = 0 FOR n = 0 TO infinity DO z = z 2 + c IF z >= infinity THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR ENDFOR END z > 2

GPU implementáció float cvtx[] = { -1, -1, 1, -1, 1, 1, -1, 1 }; glbufferdata(gl_array_buffer, sizeof(cvtx), cvtx, GL_STATIC_DRAW); gldrawarrays(gl_triangle_fan, 0, 4); uniform vec2 cameracenter, camerasize; layout(location = 0) in vec2 cvertex; out vec2 c; void main() { gl_position = vec4(cvertex, 0, 1); c = cvertex * camerasize/2 + cameracenter; } in vec2 c; out vec4 fragcol; z = z 2 + c CPU program Vertex shader Fragment shader void main() { vec2 z = c; for(int i = 0; i < niteration; i++) { z = vec2(z.x * z.x - z.y * z.y, 2 * z.x * z.y) + c; if (dot(z, z) > 4) break; } fragcol = (i == niteration)? vec4(0, 0, 0, 1) : vec4(1, 1, 1, 1); }

Matematikát kijátszó Mandelbrot halmazok

Inverz feladat: IFS modellezés F x, y H F F: szabadon vezérelhető, legyen stabil attraktora Attraktor: H = F(H)

Melyik függvény attraktora a Koch görbe? Attraktor: H = F(H) = W 1 (H) W 2 (H) W 3 (H) W 4 (H) W 2 (H) W 3 (H) W 1 (H) W 4 (H) W k (x,y) = [x,y] A k + q k

F: többértékű lineáris leképzés Nem feltétlenül hasonlósági transzformáció! Nem csak önhasonló objektumok. F = W 1 W 2 W m W k (x,y) = [x,y] A k + q k W 2 W 1 H H Stabilitás = kontrakció A sajátértékei < 1 H = W 1 (H) W 2 (H) W m (H) H = F(H) Kollázs: lefedés a kicsinyített változatokkal Nem feltétlenül diszkjunkt

IFS rajzolás: iterációs algoritmus IFSDraw ( ) Legyen [x,y] = [x,y] A 1 + q 1 megoldása a kezdő [x,y] FOR i = 0 TO infinity DO IF InWindow(x, y) WindowViewport(x, y X, Y) Write(X, Y, color); ENDIF y Válassz k-t p k valószínűséggel [x,y] = [x,y] A k + q k ENDFOR END W k (X,Y) x

Egyszerű IFS-ek

IFS modellezés

IFS képek