Korisnički Kontrolni Panel
Pogledajte svoj profil
Pogledajte svoje postove
ČPP
Prijavite se

Matematički forum na kojem možete da diskutujete o raznim matematičkim oblastima, pomognete drugima oko rešavanja zadataka, a i da dobijete pomoć kada vam zatreba


















Index stranica RAZNO MATEMATIČKI SOFTVER

Mandelbrot

Mandelbrot

Postod ubavic » Nedelja, 03. Januar 2016, 22:28

Pre dve nedelje napisao sam mali program koji izračunava Mandelbrotov skup u kompleksnoj ravni, i taj rezultat eksportuje kao .bmp sliku. Tokom dve nedelje postepeno sam proširivao program i sada je u stanju da prikaže i multibrot skup, gorući brod, i jednu klasu Julijevog skupa. Kôd programa sa primerima i dokumentacijom postavio sam ovde. Ovo su neki od rezultata: mandelbrotov skup, multibrot skup (r=4), brod koji gori. Pošto na forumu nismo do sada spominjali fraktale (osim blake-a), mislim da neće škoditi da napišem par reči o fraktalima:

Fraktali su objekti koji pokazuju slične detalje bez obzira koliko puta bili uveličani, što znači da delovi fraktala podsećaju na ceo fraktal (samosličnost). Najpoznatiji fraktali su: Mandelbrotov skup, Kohova pahulja, Pitagorino drvo, Peanova kriva, trougao Sjerpinskog (Sierpinski)... Program (za sada) može da crta ove fraktale:
Mandelbrotov skup je skup kompleksnih brojeva [inlmath]c[/inlmath] za koje važi da niz [inlmath]f(0),\;f\bigl(f(0)\bigr),\;f\Bigl(f\bigl(f(0)\bigr)\Bigr),\;\ldots[/inlmath] ne ide u beskonačnost, gde je [inlmath]f(z)=z^2+c[/inlmath]. Ekvivalentna definicija Mandelbrotovog skupa bi bila:
[dispmath]c\in\mathbb{M}\iff\lim_{n\to\infty}\left|z_{n+1}\right|\le2\\
\text{gde je}\enspace z_{n+1}=z_n^2+c\quad(z_0=0)[/dispmath]
Funkcija koja "crta" burning ship (gorući brod) fraktal slična je onoj koja crta Mandelbrotov skup: [inlmath]f(z)=\left(\left|\Re(z)\right|+i\left|\Im(z)\right|\right)^2+c[/inlmath]
Multibrot skup je generalizacija Mandelbrotovog skupa. Umesto [inlmath]f(z)=z^2+c[/inlmath] funkcija se definiše na sledeći način ([inlmath]r[/inlmath] je realan broj):
[dispmath]f(z)=z^r+c[/dispmath]
Julijev skup se definiše kao skup kompleksnih brojeva [inlmath]c[/inlmath] za koje niz [inlmath]J(c),\;J\bigl(J(c)\bigr),\;J\Bigl(J\bigl(J(c)\bigr)\Bigr),\;\ldots[/inlmath] ostaje ograničen. Negde se funkcija [inlmath]J(z)[/inlmath] definiše kao [inlmath]J(z)=\frac{P(z)}{Q(z)}[/inlmath] gde su [inlmath]P(z)[/inlmath] i [inlmath]Q(z)[/inlmath] polinomi, a negde je [inlmath]J(z)[/inlmath] definisana kao proizvoljna kompleksna funkcija. Program koji sam napravio može da crta samo Julijev skup sa funkcijom oblika
[dispmath]J(c)=c^r+z[/dispmath]
gde je [inlmath]r[/inlmath] realan broj, a [inlmath]z[/inlmath] unapred zadat kompleksan broj.

Program koji sam napravio koristi takozvani escape time algoritam. U suštini on provlači kompleksan broj kroz istu funkciju [inlmath]\mathrm{n}[/inlmath] puta. Ako nakon [inlmath]\mathrm{n}[/inlmath] puta intenzitet kompleksnog broja ostane manji od [inlmath]2[/inlmath], tada znamo da tačka pripada fraktalu (ako intenzitet [inlmath]f(z)[/inlmath] pređe [inlmath]2[/inlmath], niz [inlmath]f(z),\;f\bigl(f(z)\bigr),\;f\Bigl(f\bigl(f(z)\bigr)\Bigr),\;\ldots[/inlmath] ne ostaje ograničen). Ostale tačke bojimo na osnovu toga koliko brzo su prešle graničnu vrednost [inlmath]2[/inlmath].
Program još nije kompletiran, i u nekim slučajevima je spooor...

Slika

P.S. Izvinite ako sam vas smorio sa svojim programima. Meni je ovo zanimljivo, i možda će i vama biti :)
ubavic  OFFLINE
Zaslužni forumaš
 
Postovi: 623
Zahvalio se: 385 puta
Pohvaljen: 641 puta

Sharuj ovu temu na:

Share on Facebook Facebook Share on Twitter Twitter Share on MySpace MySpace Share on Google+ Google+

Re: Mandelbrot

Postod ubavic » Petak, 22. Novembar 2019, 01:39

Originalan projekat je odavno skinut sa github-a, zbog čega nije moguće pristupiti linkovanim slikama fraktala.
Neke od slika možete videti u mom tekstu o Mandelbrotovom i Žulijevom skupu.
Novi program se nalazi na https://github.com/ubavic/julia
ubavic  OFFLINE
Zaslužni forumaš
 
Postovi: 623
Zahvalio se: 385 puta
Pohvaljen: 641 puta


Povratak na MATEMATIČKI SOFTVER

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 23 gostiju


Index stranicaTimObriši sve kolačiće boarda
Danas je Četvrtak, 28. Mart 2024, 21:17 • Sva vremena su u UTC + 1 sat
Pokreće ga phpBB® Forum Software © phpBB Group
Prevod – www.CyberCom.rs