80 likes | 258 Views
Frakt álok. Szemcsenövekedés. 5. előadás. Fraktáldimenzió. az 1970-es években Mandelbrot és társai fejlesztették ki a fraktálgeometriát az elágazó testek jellemzőinek a leírására az egyik bevezetett jellemző mennyiség a fraktáldimenzió összefüggés a tömör testek sugara és tömege között.
E N D
Fraktálok. Szemcsenövekedés 5. előadás
Fraktáldimenzió • az 1970-es években Mandelbrot és társai fejlesztették ki a fraktálgeometriát az elágazó testek jellemzőinek a leírására • az egyik bevezetett jellemző mennyiség a fraktáldimenzió • összefüggés a tömör testek sugara és tömege között • ha a tárgy dimenziója (D) megegyezik az euklideszi tér dimenziójával (d) • ha egy testre definiálható a dimenziója, de az kisebb, mint d • d – fraktáldimenzió • a valóságban a skálázási egyenlet nem érvényes a teljes tartományra, van egy alsó és egy felső levágási határ • mikrostruktúra <-> végesméret • fraktálok másik jellemzője az önhasonlóság a különböző skálákon
Perkoláló klaszter fraktáldimenziója • Algoritmus: • definiáljuk a rácsot (NxN) és a p = 0.5927 aktiválási valószínűséget • végigjárjuk a rácsot és mindenpontját p valószínűséggel aktiváljuk • megszerkesztjük a klasztereketésmindegyiketegyediszámmallátjuk el • megvizsgáljuk, létezik-e perkolálóklaszter • ha igen, akkor csak ezt hagyjuk a rácson • meghatározzuk a „tömeg” – sugár összefüggést, ennek átlagértékéből fraktáldimenziót számolunk void clusterDetect(){ clusterNr = 1; for(int lx=1; lx<N; lx++) for(intly=1; ly<N; ly++){ if(lattice[lx][ly] == 1){ clusterNr++; lattice[lx][ly] = clusterNr; rec(lx, ly); } } } void rec(inti, int j){ if(lattice[i+1][j]==1){ lattice[i+1][j] = clusterNr;rec(i+1, j); } if(lattice[i][j+1]==1){ lattice[i][j+1] = clusterNr;rec(i, j+1); } if(lattice[i-1][j]==1){ lattice[i-1][j] = clusterNr;rec(i-1, j); } if(lattice[i][j-1]==1){ lattice[i][j-1] = clusterNr;rec(i, j-1); } } Klaszterdetektálás Megj. mindkétmetódus (függvény) ismeri alattice és a clusterNrváltozókat ebben a példában a rácsot szegélyeztük 0 értékű cellákkal
Tökéletes matematikai fraktálok – Koch görbe public voiditerate(double x1, double y1, double x2, double y2, int n) { if (n > 0) { double dx = (x2−x1)/3; double dy = (y2−y1)/3; double xOneThird = x1 + dx; // új végpont a szakasz 1/3 pontjánál double yOneThird = y1 + dy; double xTwoThird = x1 + 2∗dx; // újvégpont a szakasz 1/3 pontjánál double yTwoThird = y1 + 2∗dy; // a (dx, dy) szakasz elforgatasa 60 fokkal // és ennek hozzáadása a (xOneThird,yOneThird)-hez double xMidPoint = (0.5∗dx − 0.866∗dy + xOneThird); double yMidPoint = (0.5∗dy + 0.866∗dx + yOneThird); // mindenszegmens 4 újabbat generál iterate (x1,y1,xOneThird,yOneThird,n−1); iterate (xOneThird,yOneThird,xMidPoint,yMidPoint,n−1); iterate (xMidPoint,yMidPoint,xTwoThird,yTwoThird,n−1); iterate (xTwoThird,yTwoThird,x2,y2,n−1); } else { int ix1 = myWorld.xToPix(x1); int iy1 = myWorld.yToPix(y1); int ix2 = myWorld.xToPix(x2); int iy2 = myWorld.yToPix(y2); drawSegment(ix1,iy1,ix2,iy2 ); } }
Koch-görbe fraktáldimenziója a Koch-görbe generálásánál minden lépésben a szakaszok hossza az eredeti 1/3-a lesz a szakaszok száma az négyszereződik
Más matematikai fraktálok négyzetes Koch-görbe Sierpinski háromszögek Sierpinski szőnyeg
Fraktálnövesztéses folyamatok - járványterjedés • Rácsmodell: • tekintünk egy négyzetrácsot • egy elfoglalt rácspont egy fertőzött személyt jelent • kezdetben egy fertőzött pontot teszünk a rács közepébe • meglátogatjuk a négy legközelebbi szomszédját és mindeniket p valószínűséggel megfertőzzük, (1-p) valószínűséggel immunissá tesszük • az újonan megfertőződött emberekre megismételjük a fertőzés terjedését (de csak a nem immunis szomszédokra) • !vizsgáljuk meg a kapott klaszter alakját a p függvényében és határozzuk meg a fraktáldimenzióját
Szemcsenövekedés – DLA (Diffusion Limited Aggregation) hópelyhek villámlás baktérium kolóniák • DLA modell: • tekintünk egy négyzetrácsot, a közepén elhelyezünk egy részecskét • a centrumtól számított R sugarú kör valamely pontjáról elindítunk egy részecskét, ami véletlen bolyongást végez • ha a bolyongás során hozzáér a már kialakult klaszterhez, hozzáragasztjuk • új részecskét indítunk • stb... • Készítsük el a modell alapján a számítógépes szimulációt és határozzuk meg a kapott alakzat fraktáldimenzióját.