ONA – zadanie 1 – fraktale Mandelbrota i Julii

Naszym zadaniem będzie napisanie programu, który oblicza kolejne przybliżenia zbiorów fraktalnych. Inspiracją będą dla nas zbiory Julii  i Mandelbrota, ale nasz program będzie bardziej ogólny.

Podstawową funkcją naszego programu, będzie funkcja:

M=approx(xrange,yrange,max_iter,max_value,f),

która zwraca macierz wyników iteracji funkcji f dla wszystkich par wartości z wektorów xrange  i yrange, interpretowanych jako liczby zespolone.

M[a,b] = liczba iteracji funkcji f dla wartości xrange[a]+j*yrange[b], dla których wartość funkcji nie wykracza poza max_value, przy czym przybliżamy wynik poprzez wykonanie maksymalnie max_iter iteracji. Tzn jeśli po wykonaniu max_iter iteracji nigdy nie wykroczyliśmy poza zakres max_value, to zwracamy max_iter, w przeciwnym wypadku zwracamy ten numer iteracji, dla którego nasza wartość f(z,n) przekroczyla max_value. argument f powinien być funkcją przyjmującą 2 argumenty: z i n, gdzie z to liczba zespolona a n to stopień iteracji.

Oprócz funkcji approx(..), powinnismy zaimplementować funkcje Mandelbrot(z,n) i Julia(z,n), implementujące iterację dla zbioru Julii i Mandelbrota.

Nasz program powinien umożliwiać:

  • Wywołanie z linii komend i podawanie parametrów: zakresy x,y, n, typ funkcji, typ wyjścia, dodatkowe parametry (np. c dla zbioru Julii)
  • Wyświetlanie wyniku przy pomocy  funkcji imshow() wg wybranej skali kolorów
  • zapisywanie obrazka w pliku png, pdf lub macierzy w pliku  (przy pomocy operacji np.save())

Punktacja:

  • funkcja approx – 3 pkt
  • funkcje mandelbrot, julia – 2 pkt
  • obsługa z linii komend – 2 pkt
  • wyswietlanie – 2 pkt
  • zapis do pliku – 1 pkt

Rozwiązania wysyłamy do 25 III na adres e-mail wykładowcy z dopiskiem [ONA-1-2018]- w tytule 

1 thought on “ONA – zadanie 1 – fraktale Mandelbrota i Julii”

Leave a Reply

Your email address will not be published. Required fields are marked *