• Nie Znaleziono Wyników

Mathematica jako narz¦dzie badawcze Cz¦±¢ pi¡ta. Fraktale

N/A
N/A
Protected

Academic year: 2021

Share "Mathematica jako narz¦dzie badawcze Cz¦±¢ pi¡ta. Fraktale"

Copied!
9
0
0

Pełen tekst

(1)

Mathematica jako narz¦dzie badawcze Cz¦±¢ pi¡ta.

Fraktale

Czy koªa s¡ pi¦kne?

Mo»na udowodni¢ wiele teorii na ich temat, wiele ich cech jest interesuj¡cych, ale »eby koªo miaªo by¢ pi¦kne?

Jest nudne, wsz¦dzie takie samo;

podobnie linia prosta.

Co±, co jest takie samo w ka»dym miejscu, nie wydaje si¦ atrakcyjne.

Benoît Mandelbrot (za Wiedza i »ycie, nr 7/2010 str. 60, Pan od fraktali)

Celem zaj¦¢ b¦dzie badanie struktur matematycznych generuj¡cych frak- tale, a tak»e analiza samych fraktali. Zajmiemy si¦ tak»e tworzeniem graki bazuj¡cej na fraktalach.

Na tych ¢wiczeniach nie trzeba wykonywa¢ wszystkich zada«. Zadania po- dzielone zostaªy na dwa bloki A i B - nale»y wybra¢ co najmniej 2 zadania kategorii A, oraz co najmniej 2 zadania z kategorii B. Po wykonaniu zada«

z literkami prosz¦ nie zapomnie¢ o wykonaniu dwóch zada« umieszczonych na samym ko«cu (obowi¡zkowo).

Sugerowane jest, aby przed zaj¦ciami przypomnie¢/przyswoi¢ sobie nast¦- puj¡ce zagadnienia:

• Czym s¡ i wedªug jakich reguª powstaj¡ nast¦puj¡ce struktury frak- talne: gwiazdka Kocha, trójk¡t i dywan Sierpi«skiego, zbiór Cantora, kostka Mengera. [5, 1]

• metoda Newtona-Raphsona (metoda stycznych) szukania pierwiastków funkcji - na czym polega? [4, 3].

(2)

• losowe metody generowania fraktali oraz aniczne ukªady funkcji (IFS) [5, 6].

Zadanie A1.

Napisz skrypt, który generuje kilka pierwszych kroków konstrukcji zbioru Cantora. Pomocne mog¡ okaza¢ si¦ funkcje RealDigits[], Rectangle[].

Rysunek 1: Przykªadowy wynik zadania A1.

Zadanie A2.

Napisz skrypt generuj¡cy kilka pierwszych kroków konstrukcji ±nie»ynki Ko- cha. Pomocna mo»e okaza¢ si¦ funkcja z notatnika http://if.pw.edu.pl/

~siudem/MJNB/fraktale_pomoce.nb.

Zadanie A3.

Napisz skrypt generuj¡cy kilka pierwszych kroków konstrukcji trójk¡ta Sier- pi«skiego. By¢ mo»e pomocne b¦dzie tutaj umiej¦tne zastosowanie funkcji Nest[] albo NestList[] do operacji na listach.

Zadanie A4.

Napisz skrypt generuj¡cy kilka pierwszych kroków konstrukcji dywanu Sier- pi«skiego. Wystarczy tu niewielka modykacja skryptu z zadania A1.

(3)

Rysunek 2: Przykªadowy wynik zadania A2.

Zadanie A5.

Napisz skrypt generuj¡cy kilka pierwszych kroków konstrukcji kostki Men- gera. Pomocne mo»e okaza¢ si¦ wcze±niejsze wykonanie zadania A4. Nie- zb¦dna b¦dzie funkcja Graphicd3D[].

Rysunek 3: Przykªadowy wynik zadania A3.

(4)

Rysunek 4: Przykªadowy wynik zadania A4.

Zadanie B1. (metoda Newtona-Raphsona)

Zaimplementuj, w postaci funkcji metod¦ Newtona-Raphsona. Zastosuj j¡

do wielomianu p(z) = z3−1. Wygeneruj dla tego wielomianu zbiór Julii. Po- mocne mog¡ okaza¢ si¦ funkcje FixedPoints[], Which[], DensityPlot[], a w tej ostatniej u»yteczna mo»e okaza¢ si¦ opcja ColorFunction[]. Sprawd¹ jaki efekt daje zastosowanie tej metody do innych wielomianów.

W kolejnych zadaniach skupimy si¦ na iterowaniu odwzorowa«, które

Rysunek 5: Przykªadowy wynik zadania A5.

(5)

dobierane b¦d¡ losowo. przyjmijmy, »e mamy pewien zbiór X. Na nasze potrzeby przyjmiemy, »e X = R2. Na zbiorze tym zdeniowane s¡ funkcje fi: X → X, i = 1, 2, ..., n. Dysponujemy te» wagami wi > 0, i = 1, 2, ..., n.

Jeden krok iteracji polega na wylosowaniu liczby i ze zbioru {1, 2, ..., n}, a nast¦pnie wykonaniu funkcji fi. Iteracja powtarzana wielokrotnie prowadzi do zaskakuj¡co prostych i pi¦knych efektów.

Zadanie B2. (Spirala, za [5])

Zaimplementuj poni»szy ukªad dwóch odwzorowa« dobieranych losowo (x0 = −0.4x − 1

y0 = −0.4y + 0.1 ,

(x0 = 0.76x − 0.4y y0 = 0.4x + 0.76y .

Pomocne mog¡ okaza¢ si¦ funkcje NestList[], Point[], RandomChoice[].

Zadanie B3. (Choinka, za [5])

Zaimplementuj poni»szy ukªad czterech odwzorowa« dobieranych losowo (x0= −0.67x − 0.02y

y0 = −0.18x + 0.81y + 10 ,

(x0 = 0.4x + 0.4y y0 = −0.1x + 0.4y ,

Rysunek 6: Przykªadowy wynik zadania B1.

(6)

Rysunek 7: Przykªadowy wynik zadania B2.

(x0 = −0.4x − 0.4y y0 = −0.1x + 0.4y ,

(x0 = −0.1x

y0 = 0.44x + 0.44y − 2 .

Pomocne mog¡ okaza¢ si¦ funkcje NestList[], Point[], RandomChoice[].

Rysunek 8: Przykªadowy wynik zadania B3.

Oba powy»sze przykªady wykorzystywaªy funkcje aniczne, w kolejnych równie» b¦dziemy korzystali z funkcji anicznych, ale wygodniejsze oka»e si¦ wykorzystanie funkcji afiniczne[] z notatnika http://if.pw.edu.pl/

~siudem/MJNB/fraktale_pomoce.nb. Wyra»a on operacje aniczne w po- staci mno»enia przez macierz

A =r cos(θ) −s sin(ψ) r sin(θ) s cos(ψ)

 , i przesuwania o wektor (a, b)T

(7)

Zadanie B4. (Trójk¡t Sierpi«skiego inaczej, za [6])

Wygeneruj trójk¡t Sierpi«skiego, stosuj¡c trzy odwzorowania aniczne o pa- rametrach afiniczne[0,0,0.5,0.5,0,0], afiniczne[0,0,0.5,0.5,0,1], afiniczne[0,0,0.5,0.5,1,0] do trójk¡ta Polygon[{{0,0},{0,2},{2,0}}].

Pomocne oka»e si¦ wykorzystanie funkcji Nest[], GeometricTransformation[].

Rysunek 9: Przykªadowy wynik zadania B4.

Zadanie B5. (Drzewko, za [6])

Wygeneruj drzewko, stosuj¡c cztery odwzorowania aniczne o parametrach afiniczne[20,20,0.65,2/3,-0.1,3], afiniczne[45,45,0.5,0.5,0,1.3], afiniczne[−30,−30,0.6,2/3,0,3],afiniczne[−55,−55,-0.6,2/3,0,2]

do wielok¡ta Polygon[{{-0.2,0},{0.2,0},{0.35,2.5},{0.2,3},{-0.2,3},{0,2.5}}].

Pomocne oka»e si¦ wykorzystanie funkcji NestList[], GeometricTransformation[].

Zadanie B6. (Miasto, za [6])

Wygeneruj fraktalny obraz miasta. Posªu» si¦ w tym celu fragmentem kodu z pliku http://if.pw.edu.pl/~siudem/MJNB/fraktale_pomoce.nb. Po- mocne oka»e si¦ wykorzystanie funkcji Apply[], Nest[], Flatten[], Cuboid[].

(8)

Rysunek 10: Przykªadowy wynik zadania B5.

Rysunek 11: Przykªadowy wynik zadania B6.

Zadanie 1.

Nale»y wymy±li¢ samemu albo znale¹¢ w literaturze lub internecie ciekawy, oryginalny i nietrywialny obraz generowany przez zastosowanie odwzorowa«

anicznych i narysowa¢ taki obrazek.

(9)

Zadanie 2.

Uzyskane wyniki z sekcji A i B oraz zadania 1. nale»y umie±ci¢ w prezentacji wykonanej w ±rodowisku Mathematica.

Literatura

[1] http://mathworld.wolfram.com/

[2] R. L. Devaney, An Introduction to Chaotic Dynamical Systems, wydanie drugie, Westview Press, (2003).

[3] A. F. Beardon, Iteration of Rational Functions, Springer, New York, (2000).

[4] Z. Fortuna, B. Macukow, J. W¡sowski, Metody Numeryczne, Wydawnic- twa Naukowo-Techniczne, (2006).

[5] J. Kudrewicz, Fraktale i chaos, wydanie trzecie zmienione, Wydawnictwa Naukowo-Techniczne, Warszawa, (1996).

[6] Ch. Getz, J. Helmstedt, Graphics with Mathematica Fractals, Julia Sets, Patterns and Natural Forms., Elsevier, Amsterdam, (2004).

Cytaty

Powiązane dokumenty

Najpopularniejszym wykorzystywanym przez badane przedsi biorstwa sposo- bem budowania relacji jest publikowanie w mediach spo eczno ciowych informacji u ytecznych

Posªuguj¡c si¦ funkcjami NestList[], RandomChoice[], ListPlot[] wy- generuj realizacj¦ bª¡dzenia losowego generowanego przez rzut asymetryczna monet¡, dla której

Znajd¹, przy pomocy funkcji Solve[], punkty krytyczne rozwa»anego ukªadu nanie± je na wykres z Zadania 2..

Wykorzystując generowaną w Mathematice muzykę albo syntezator głosu SpeechSynthesize[] przygotuj ścieżkę dźwiekową, którą połączysz z ani- macją z poprzedniego zadania.

Mimo istnienia wielu zagrożeń, akwakultura karpiowatych ryb reofi lnych opracowana na wynikach ba- dań naukowych może stać się w większym zakresie niż obecnie ważnym elementem

Tak, jak wspomniano wcześniej – trudno jest we współczesnych organizacjach budować efektywne systemy dzielenia się z pracownikami informacjami, wymiany informacji w

Pierwszy to możliwość korzy- stania z żółtej ikony ze znakiem plus, znajdującej się na górze środkowej kolumny panelu Zotero, drugi – zaznaczania odpowiedniej pozycji z danej

b) Jeśli podano liczbę 1234, to program wypisuje na ekranie „Brawo, to właściwy kod” i w kolejnym wierszu „masz teraz dostęp do tajnych informacji”3. Jeśli nie podano