Konrad Kisiel & Grzegorz Siudem 24 marca 2020
Przedstawiamy zbiór zada ´n i problemów zwi ˛azanych z dynamik ˛a modeli matematycznych. Wersja ci ˛agle robocza. B ˛edziemy wdzi ˛eczni za wszelkie uwagi.
Spis tre´sci
Materiały wprowadzaj ˛ace 2
Definicje i oznaczenia 2 Mathematica 6Wymagania formalne 8
Obroty 9
Plan bada ´n 9
Pytania i problemy 9
Rodzina kwadratowa 13
Plan bada ´n 13
Pytania i problemy 13
Fraktale 19
Plan bada ´n 19
Pytania i problemy 19
Ergodyczno´s´c 23
Plan bada ´n 23
Pytania i problemy 24
Zwracamy uwag ˛e, ˙ze ka ˙zda pojawiaj ˛aca si ˛e w tek´scie nazwa mathematicznej funkcji (np.D[]) jest hiperł ˛aczem, po klikni ˛eciu w które mo ˙zna przeczyta´c dokumentacj ˛e tej funkcji na stronie reference.wolfram.com/language/
W Mathematice zło ˙zenie funkcji otrzy- mamy dzi ˛eki funkcjiNest[].
Dzi ˛eki temu b ˛edziemy mogli pisa´c o tym, ˙ze funkcjaNestList[]generuje orbity.
W poszukiwaniu punktów stalych pomo ˙ze funkcjaFixedPoint[].
Materiały wprowadzaj ˛ace
Poni ˙zej zamieszczamy gar´s´c najwa ˙zniejszych definicji stosowanych podczas zaj ˛e´c, krótki opis ´srodowiska Wolfram Mathematica, a na za- ko ´nczenie, opisujemy formalne wymagania, jakie b ˛edziemy stawia´c wynikom prac domowych.
Zalecamy przeczyta´c cały rozdział przed wykonywaniem zada ´n.
Definicje i oznaczenia
Niech f : X →X b ˛edzie pewn ˛a funkcj ˛a, a X (w zasadzie dowolnym) zbiorem. Mówi ˛ac o dynamice zadanej przez funkcj ˛e f mamy na my´sli iteracje tej funkcji, czyli jej wielokrotne zło ˙zenia
fn(x) = f ◦f◦ · · · ◦f
| {z }
n razy
(x) = f(f(f(. . . f
| {z }
n razy
(x). . .))).
Aby lepiej opisywa´c takie zło ˙zenia stosujemy wyja´snijmy poni ˙zsze terminy.
Definicja 1 Orbit ˛a funkcji f w punkcie x∈X nazywamy zbiór O(f , x) = {x, f(x), f2(x), f3(x), . . .}.
Gdy nie prowadzi to do nieporozumie ´n orbit ˛a b˛edziemy tak˙ze nazywali sko ´nczone podzbiory zbioruO(f , x)postaci
{x, f(x), f2(x), f3(x), . . . , fN(x)}.
Definicja 2 Orbit˛eO(f , x)nazywamy okresow ˛a o okresie k je´sli
∀n∈N fk+n(x) = fn(x).
Definicja 3 Gdy k w poprzedniej definicji przyjmuje warto´s´c k = 1, wówczas punkt x nazywamy punktem stałym, gdy˙z
f(x) =x.
Definicja 4 Punkt xp ∈ X nazywamy punktem preokresowym je´sli O(f , f(xp))jest orbit ˛a okresow ˛a.
W kolejnych definicjach zakładamy, ˙ze(X,B, µ)jest przestrzeni ˛a z miar ˛a.
Definicja 5 Mówimy, ˙ze przekształcenie T: X→X zachowuje miar˛e µ gdy
∀B∈ B, µ
T−1(B)=µ(B).
Równanie to bywa tak ˙ze nazywane warunkiem Markowa lub warunkiem braku pami ˛eci.
Definicja 6 Przekształcenie T nazwiemy ergodycznym je´sli zachowuje miar˛e i ponadto spełnia warunek
∀B∈ B, T−1(B) =B =⇒ (µ(B) =0 ∨ µ(X\B) =0). Twierdzenie 1 (Twierdzenie Birkhoffa) Niech T : X → X b˛edzie przekształceniem ergodycznym na przestrzeni(X,B, µ). Załó˙zmy dodat- kowo, ˙ze µ(X) < ∞. Wówczas dla dowolnej funkcji f ∈ L1(µ)zachodzi zbie˙zno´s´c:
1 n
n−1
∑
k=0
f
T(k)(x0)→ 1 µ(X)
Z
X
f(x)dµ(x), dla µ-p.w. x0∈X.
Definicje i twierdzenia zwi ˛azane z teori ˛a procesów stochastycz- nych przytaczamy za podr ˛ecznikiem Iwanika i Misiewicz [1].
Definicja 7 Procesem stochastycznym{Xt, t ∈ T}nazywamy tak ˛a funkcj˛e(t, ω) →Xt(ω), ω ∈Ω, t∈T, ˙ze Xt(ω)jest zmienn ˛a losow ˛a dla ka˙zdego ustalonego t∈T.
Definicja 8 Zbiór wszystkich mo˙zliwych warto´sci procesu stochastycznego {Xt, t ∈ T} S = {Xt(ω) : t ∈ T, ω ∈ Ω}nazywamy przestrzeni ˛a stanów procesu lub jego przestrzeni ˛a fazow ˛a.
B ˛edziemy rozwa ˙zali co najwy ˙zej przeliczalne przestrzenie stanów.
Definicja 9 (Warunek Markowa) Proces stochastyczny{Xn, n ∈ N} o warto´sciach wSm = {1, ..., m}, m ∈ N nazywamy ła ´ncuchem Mar- kowa lub procesem Markowa, je´sli dla dowolnego n ∈ N i dowolnego wyboru stanów k0, k1, ..., kn ∈ Smzachodzi poni˙zsza własno´s´c
P(Xn =kn|Xn−1=kn−1, ..., X0=k0) =P(Xn =kn|Xn−1=kn−1). Definicja 10 Ła ´ncuch Markowa{Xn, n ∈ N}jest jednorodny lub równowa˙znie ma stacjonarne prawdopodobie ´nstwa przej´scia, je´sli dla dowolnych stanów i, j∈ Sm, m∈N i dowolnego n∈N zachodzi równo´s´c
P(Xn= j|Xn−1=i) =P(X1=j|X0=i).
W dalszej cz ˛e´sci rozwa ˙zane b ˛ed ˛a jedynie ła ´ncuchy Markowa o stacjo- narnym prawdopodobie ´nstwie przej´scia.
Definicja 11 Prawdopodobie ´nstwa pji := P(X1=j|X0=i), dla i, j ∈ Sm, m∈N, nazywamy prawdopodobie ´nstwami przej´scia w jednym kroku, a utworzon ˛a z nich macierz
P=
p11 p12 p13 ... p1m p21 p22 p23 ... p2m
... ... ... ... ...
pm1 pm2 pm3 ... pmm
,
macierz ˛a przej´scia w jednym kroku.
Samo poj ˛ecie mo ˙zna zdefiiniowa´c te ˙z abstrakcyjnie, ale w rozwa ˙zanym przy- padku wystarczy uto ˙zsamia´c operator Markowa z operatorem generuj ˛acym proces Markowa, czyli z macierz ˛a przej´scia w jednym kroku.
2To wła´snie te wielokrotne iteracje s ˛a przyczyn ˛a, dla której formalizm teorii układów dynamicznych jest tu z powodzeniem stosowany.
Wida´c, ˙ze przyj ˛eta defiinicja 11 macie- rzy P powoduje, ˙ze macierz ˛a stocha- styczn ˛a nazywamy macierz stocha- styczn ˛a kolumnowo (tzn. w kolumnach sumuj ˛ac ˛a si ˛e do 1). Macierze stocha- styczne wierszowo s ˛a wła´sciwe przy transponowanej defiinicji P (porównaj uwaga 1). Macierz b ˛ed ˛ac ˛a jednocze´snie stochastyczn ˛a kolumnowo i wierszo- wo nazywamy macierz ˛a podwójnie stochastyczn ˛a.
Uwaga 1 Przyj˛eto tutaj notacj˛e inn ˛a od zawartej w cytowanych podr˛ecz- nikach do procesów stochastycznych (m. in. Iwanik i Misiewicz [1]), gdzie autorzy zapisywali prawdopodobie ´nstwo przej´scia w jednym kroku jako
˜pij:=P(X1=j|X0=i), co powodowało, ˙ze w ich uj˛eciu macierz przej´scia w jednym kroku była transpozycj ˛a macierzy, według defiinicji 11 - ˜PT =P.
Uwaga 2 Uj˛ecie teorii procesów Markowa w formalizm teorii układów dynamicznych cz˛esto okazuje si˛e pomocne nie tylko poj˛eciowo, ale te˙z ze wzgl˛edów rachunkowych (porównaj rozdział trzeci i pi ˛aty w podr˛eczniku Lasoty i Mackeya [2]). Wówczas macierz przej´scia P nazywa si˛e operatorem Markowa. Znane z teorii układów dynamicznych poj˛ecie asymptotycznej stabilno´sci wi ˛a˙ze si˛e wówczas ´sci´sle z ergodyczno´sci ˛a ła ´ncuchów Markowa.
W dalszej cz˛e´sci termin macierz przej´scia P b˛edzie stosowany zamiennie z terminem operator Markowa P.
Z aplikacyjnego punktu widzenia bardzo wa ˙zne jest pytanie, jak działa proces Markowa, gdy iterowany jest wielokrotnie2. Odpowie- dzi na pytanie to udziela poni ˙zsze twierdzenie.
Twierdzenie 2 Je˙zeli proces Markowa P jest iterowany n-krotnie to od- powiada mu wtedy proces Markowa o macierzy przej´scia w jednym kroku równej Q = Pn, przy czym qij(n) = [Pn]ij, jest prawdopodobie ´nstwem przej´scia w jednym kroku dla procesu b˛ed ˛acego n-krotn ˛a iteracj ˛a procesu wyj´sciowego.
Definicja 12 Macierz P ∈ Mm×m([0, 1]), m ∈ N, P = [pij]i, j=1, ..., m
spełniaj ˛ac ˛a poni˙zsze zało˙zenia u pij>0 dla dowolnych i, j∈ Sm, u ∑m
i=1
pij=1,
nazywamy macierz ˛a stochastyczn ˛a.
Drug ˛a, po macierzy przej´scia w jednym kroku, wygodn ˛a metod ˛a reprezentacji procesu Markowa s ˛a diagramy przej´scia w jednym kroku.
Definicja 13 Diagramem przej´scia w jednym kroku procesu Marko- wa{Xn, n ∈ N}nazywamy graf skierowany, w którym wierzchołkami s ˛a elementy przestrzeni fazowej, a łuki ł ˛acz ˛a dwa stany, o ile prawdopodobie ´n- stwo przej´scia mi˛edzy nimi w jednym kroku jest niezerowe.
Ka ˙zdy ze stanów nale ˙z ˛acy do przestrzeni fazowejSmdla procesu Markowa mo ˙ze zosta´c scharakteryzowany ze wzgl ˛edu na mo ˙zliwo´sci przej´scia mi ˛edzy nim a innymi stanami. Poni ˙zej zaprezentowano stosowan ˛a pó´zniej charakteryzacj ˛e stanów.
Definicja 14 Stan i∈ Smjest pochłaniaj ˛acy je´sli pii=1.
Intuicyjnie stan pochłaniaj ˛acy to taki stan, z którego nie mo ˙zna wyj´s´c.
Definicja 15 Stan i ∈ Smjest osi ˛agalny ze stanu j ∈ Smje´sli istnieje takie n∈N, ˙ze pij(n) >0. B˛edzie to oznaczane przez j→i.
Jeden stan jest dla drugiego osi ˛agalny, o ile mo ˙zna w toku iteracji przej´s´c z jednego do drugiego.
Definicja 16 Stany i, j ∈ Smwzajemnie si˛e komunikuj ˛a je´sli j → i oraz i→j.
Komunikowanie si ˛e jest relacj ˛a równowa ˙zno´sci (symetryczn ˛a, zwrot- n ˛a i przechodni ˛a), dzieli wi ˛ec wszystkie stany procesu Markowa na klasy abstrakcji - klasy stanów komunikuj ˛ace si ˛e mi ˛edzy sob ˛a.
Definicja 17 Ła ´ncuch Markowa nazywamy nieprzywiedlnym, gdy wszystkie jego stany wzajemnie si˛e komunikuj ˛a.
Nieprzywiedlno´s´c oznacza, ˙ze wszystkie stany nale ˙z ˛a do tej samej klasy abstrakcji wzgl ˛edem relacji komunikowania si ˛e.
Definicja 18 Okresem stanu i∈ Smnazywamy liczb˛e o(i) =NWD(n∈N : pii(n) >0),
czyli najwi˛ekszy wspólny dzielnik zbioru takich n, ˙ze powrót do stanu i jest mo˙zliwy po n krokach.
Stan i jest okresowy je´sli o(i) >1 i nieokresowy gdy o(i) =1.
Definicja 19 Nieprzywiedlny ła ´ncuch Markowa jest okresowy je´sli wszystkie jego stany s ˛a okresowe o tym samym okresie d > 1. W prze- ciwnym przypadku mówimy, ˙ze ła ´ncuch jest nieokresowy.
Defiinicja 19 jest dobrze okre´slona, co wynika z poni ˙zszego twierdze- nia, przytoczonego za podr ˛ecznikiem Iwanika i Misiewicz [1].
Twierdzenie 3 W nieprzywiedlnym ła ´ncuchu Markowa wszystkie stany maj ˛a ten sam okres.
Definicja 20 Rozkład pocz ˛atkowy πi =P(X0=i), i∈ Smła ´ncucha Mar- kowa{Xn, n ∈ N}jest stacjonarny lub niezmienniczy je´sli zachodzi równanie
π=Pπ.
Rozkład stacjonarny jest wi ˛ec punktem stałym operatora P.
Jest to tak naprawd ˛e cecha ka ˙zdej macierzy stochastycznej, dla której 1 jest na pewno warto´sci ˛a własn ˛a.
Je´sli stanów byłoby przeliczalnie wiele wówczas nale ˙zy jeszcze zało ˙zy´c, ˙ze ka ˙zdy stan jest dodatnio powracaj ˛acy, czyli, ˙ze prawdopodobie ´nstwo powrotu do ka ˙zdego stanu w sko ´nczonym czasie jest wi ˛eksze ni ˙z 0.
Komórki wyró ˙znione s ˛a wewn ˛atrz notatnika ramk ˛a po prawej stronie.
Zach ˛ecamy do sprawdzenia opisywanej składni ju ˙z teraz. Mo ˙zna to zrobi´c nawet bez dost ˛epu do wydziałowych licencji, u ˙zywaj ˛ac aplikacji Wolfram Programming Lab.
Zauwa ˙zmy, ˙ze te nazwy do´s´c dokładnie precyzuj ˛a co dana funkcja robi, np.
Series[]rozwija w szereg, aSolve[]
rozwi ˛azuje równania. Podstawowa znajomo´s´c j ˛ezyka angielskiego pozwala zatem na do´s´c dokładne przewidywa- nie nazwy funkcji, której funkcjonalno´s´c chcieliby´smy uzyska´c.
Definicja 21 Jednorodny ła ´ncuch Markowa jest{Xn, n∈ N}ergodycz- ny, je´sli dla ka˙zdego i∈ Smistniej ˛a i nie zale˙z ˛a od j nast˛epuj ˛ace granice
qi= lim
n→∞pij(n) >0, oraz ∑m
i=1
qi =1. Otrzymany rozkład q= (qi)i=1, ..., mnazywamy ergodycz- nym.
Ergodyczno´s´c w j ˛ezyku operatorów Markowa (porównaj rozdział 5.6 w podr ˛eczniku Lasoty i Mackeya [2]) jest równowa ˙zna istnieniu asymptotycznie stabilnego rozkładu prawdopodobie ´nstwa dla opera- tora (macierzy) P.
Twierdzenie 4 Ka˙zdy rozkład ergodyczny dla pewnego ła ´ncucha Markowa jest te˙z rozkładem stacjonarnym tego ła ´ncucha.
Uwaga 3 Implikacja z twierdzenia 4 w ogólno´sci nie daje si˛e odwróci´c.
Twierdzenie odwrotne nie musi by´c prawdziwe. Ła ´ncuch Markowa mo˙ze posiada´c wi˛ecej ni˙z jeden rozkład stacjonarny (porównaj twierdzenie 5), a, zgodnie z definicj ˛a 21, rozkład ergodyczny wyznaczony jest jednoznacznie.
Na podstawie twierdzenia 5 ka˙zdy ła ´ncuch Markowa posiada co najmniej jeden rozkład stacjonarny, ale co do istnienia rozkładu ergodycznego dla dowolnego procesu nie ma gwarancji. (porównaj twierdzenie 6).
Twierdzenie 5 Dla ka˙zdego procesu Markowa o sko ´nczonej liczbie stanów istnieje co najmniej jeden rozkład stacjonarny. Wszystkie rozkłady stacjonar- ne (jako wektory z przestrzeniRm) nale˙z ˛a do podprzestrzeni rozpi˛etej przez wektory własne macierzy P odpowiadaj ˛ace warto´sci własnej 1.
Twierdzenie 6 Rozwa˙zmy nieokresowy i nieprzywiedlny proces Markowa o sko ´nczonej liczbie stanów. Wówczas ła ´ncuch ten posiada dokładnie jeden rozkład stacjonarny π. Co wi˛ecej rozkład π jest te˙z rozkładem ergodycznym tego procesu.
Mathematica
Podstawow ˛a jednostk ˛a składni w ´srodowisku Mathematica jest ko- mórka. Komórki mog ˛a przyjmowa´c kilka typów, ale dwa najwa ˙zniej- sze z nich toIn[], czyli wprowadzany przez u ˙ztkownika skrypt oraz Out[], czyli wynik działaniaIn[]. Aby wykona´c komórk ˛e, w której aktualnie znajduje si ˛e kursor nale ˙zy wcisn ˛a´c[Shift]+[Enter]lub prawy[Enter].
Nazwy wbudowanych funkcji w j ˛ezyku Wolfram zawsze zaczynaj ˛a si ˛e wielk ˛a liter ˛a według wzoru
NazwaFunkcji[arg1, arg2, ...]
Dost ˛epn ˛a, przypomnijmy, pod adresem reference.wolfram.com/language/
Zwracamy uwag ˛e na bogactwo przykła- dów dost ˛epnych w plikach pomocy.
Jaki wyniki daj ˛a te kody ´zródłowe?
Lista list jest sposobem zapisu macierzy w ´srodowisku Mathematica - po wi ˛ecej szczegółów odsyłamy do dokumen- tacji (zwłaszczaSymbolic & Numeric Computation→Matrices and Linear Algebra).
FunkcjaTable[]jest jedn ˛a z cz ˛e´sciej u ˙zywanych, podczas pracy z Ma- thematik ˛a. Sugerujemy przejrze´c jej dokumentacj ˛e.
Polecamy tak ˙ze wypróbowa´c działania funkcjiDisk[],Polygon[], a tak ˙ze mo ˙zliwo´sci manipulowania obiektami graficznymi (kolory, grubo´sci linii etc.), przykłady Czytelnik znajdzie oczywi´scie w dokumentacjiGraphics[].
gdzie argumenty funkcji przekazywane s ˛a w kwadratowych nawia- sach[]. Najwa ˙zniejszym sposobem poznawania funkcjonalno´sci Mathematiki jest jej bogata pomoc. Jest to tak ˙ze podstawowe narz ˛e- dzie pracy w tym ´srodowisku. Pomoc wywołuje si ˛e klawiszem[F1]
wewn ˛atrz aktywnego notatnika, lub, nawet bez aktywnej aplikacji, mo ˙zna sprawdzi´c jej internetow ˛a wersj ˛e.
Jako ´cwiczenie wprowadzaj ˛ace do ´srodowiska Wolfram Mathema- tica proponujemy sprawdzi´c w dokumentacji do czego mog ˛a słu ˙zy´c nast ˛epuj ˛ace funkcje
u Plot[]
u Manipulate[], u D[],
u Integrate[], u Table[], u ListPlot[],
u Animate[], u Graphics[], u Simplify[]. Jak mo ˙zna zauwa ˙zy´c, podczas analizy powy ˙zszych przykładów, podstawow ˛a struktur ˛a danych w Mathematice jest lista. Lista to nic innego jak pewien uporz ˛adkowany zbiór pewnych (niekoniecznie tego samego typu!) elementów. Poni ˙zej zamieszczamy przykłady list
{a, b, c, 1, 2, 3}
{{1,0},{0,1}}
Table[1/i,{i,10}]
Poni ˙zsze kody ´zródłowe s ˛a przykładami wykorzystania ´srodowi- ska Mathematica do tworzenia grafiki. Sugerujemy je skopiowa´c do notatnika i sprawdzi´c co daje ich wykonanie. Przejrzenie dokumenta- cji wykorzystanych funkcji równie ˙z b ˛edzie pouczaj ˛ace.
Graphics[Table[Circle[RandomReal[{-10, 10}, {2}]], {80}]]
Graphics[{Blue, FilledCurve[Line[RandomReal[{0, 10}, {10, 2}]]], Red, FilledCurve[Line[RandomReal[{0, 10}, {20, 2}]]],
Green, FilledCurve[Line[RandomReal[{0, 10}, {100, 2}]]]}]
Wymagania formalne
Prawidłowo przygotowana praca domowa powinna spełnia´c nast ˛epu- j ˛ace wymagania
u Po pierwsze musi by´c zgodna z obowi ˛azuj ˛acym, umieszczonym na stronie przedmiotu, szablonem odpowiedzi. W szczególno´sci, nie mo ˙ze zajmowa´c wi ˛ecej ni ˙z jednej kartki A4.
u Kody ´zródłowe powinny by´c czytelne i poprawne.
u Wszystkie liczby i cyfry wyst ˛epuj ˛ace na wykresach i rysunkach powinny by´c w rozmiarach zbli ˙zonych do czcionki tekstu oraz kroju, umo ˙zliwiaj ˛acym ich wygodne odczytanie.
u Wszystkie krzywe (w tym osie współrz ˛ednych i wykresy) wy- st ˛epuj ˛ace na rysunkach powinny by´c pogrubione tak, aby by´c czytelne i odró ˙znia´c si ˛e od reszty rysunku.
u Osie wykresów powinny by´c podpisane.
Uwaga:Przed wykonywaniem zada ´n sugerowane jest przeczytanie pierwsze- go rozdziału niniejszego skryptu.
:=vs.=
Plot[]
ListPlot[]
GraphicsGrid[],Show[]
Manipulate[]
Nest[]
NestList[]vs.Table[]
Histogram[]vs.HistogramList[]
Obroty
Eppur si muove — Galileo Galilei
Celem ´cwicze ´n b ˛edzie zbadanie podstawowych dynamicznych własno´sci obrotu na okr ˛egu (S1= [0, 2π]/(0=2π)), czyli funkcji
fθ :S1→ S1, fθ(x) = (x+θ) mod 2π.
Na przykładzie tych bada ´n poznamy te ˙z podstawow ˛a funkcjonalno´s´c
´srodowiska Wolfram Mathematica.
Plan bada ´n
1. Implementacja funkcji fθ(definicja funkcji, definicja zmiennej).
2. Rysowanie wykresu funkcji fθ.
3. Rysowanie wykresu orbity fθ(naiwne).
4. Ł ˛aczenie wykresów.
5. Dyskusja zale ˙zno´sci fθ(x)od θ i x.
6. Iterowanie funkcji fθ. 7. Generowanie orbity fθ.
8. Analiza orbity funkcji fθi dyskusja jej zale ˙zno´sci od θ.
Pytania i problemy
♣1 Wyja´snij jak działa i, rysuj ˛ac wykres funkcji sinus, podaj przy- kład u ˙zycia funkcjiPlot[].
♣2 Wyja´snij jak działa i, rysuj ˛ac wykres listy{3,1,4,1,5,9}, podaj przykład u ˙zycia funkcjiListPlot[].
♣3 Wyja´snij jak działa i, generuj ˛ac iteracje funkcji h(x) = 2x, podaj przykład u ˙zycia funkcjiNest[].
♣4 Wyja´snij jak działa i, rysuj ˛ac wykres listy pierwszych 10 liczb pierwszych, podaj przykład u ˙zycia funkcjiListPlot[].
♣5 Wyja´snij jak działa i, rysuj ˛ac wykres funkcji kosinus, podaj przy- kład u ˙zycia funkcjiPlot[].
♣6 Wyja´snij jak działa i, generuj ˛ac iteracje funkcji h(x) = x/3, podaj przykład u ˙zycia funkcjiNest[].
♣7 Jak w ´srodowisku Mathematica definiuje si ˛e funkcje? Zdefiniuj własn ˛a funkcj ˛e sgn(x):= |x|/x dla x6=0.
Potrzebn ˛a list ˛e najpro´sciej wygenerowa´c komend ˛ali=RandomReal[{0,1},{100}]
Zwró´cmy uwag ˛e, ˙ze jest to lista par postaci{{a,Sin[a]},{b,Sin[b]},...}
Sugrowanym przykładem mog ˛a by´c punkty{{0.1,0.15},{0.2,0.19}, {0.3,0.32},{0.4,0.39},{0.5,0.51}, {0.6,0.59}}i przybli ˙zaj ˛aca je funkcja h(x) =x.
W zadaniach♣21− ♣23sugerujemy uwa ˙znie przeczyta´c rozdziałOptions w dokumentacji funkcjiPlot[].
W zadaniach♣24− ♣26sugerujemy uwa ˙znie przeczyta´c rozdziałOptions w dokumentacji funkcjiListPlot[].
W zadaniach♣27− ♣30sugerujemy uwa ˙znie przeczyta´c rozdziałOptions w dokumentacji funkcjiListPlot[]
i/lubPlot[].
♣8 Wyja´snij jak działa i, generuj ˛ac list ˛e kolejnych iteracji funkcji sinus, podaj przykład u ˙zycia funkcjiNestList[].
♣9 Wyja´snij jak działa i, wyznaczaj ˛ac histogram listy liczb pseudolo- sowych, podaj przykład u ˙zycia funkcjiHistogram[].
♣10 Wyja´snij jak działa i, generuj ˛ac list ˛e kolejnych iteracji funkcji h(x) =x/10, podaj przykład u ˙zycia funkcjiNestList[].
♣11 Jak w ´srodowisku Mathematica definiuje si ˛e funkcje? Zdefiniuj własn ˛a funkcj ˛e h(x) = |x|.
♣12 Jak w ´srodowisku Mathematica definiuje si ˛e zmienne? Podaj przykłady co najmniej 5 typów zmiennych.
♣13 Jak w ´srodowisku Mathematica stworzy´c list ˛e? Jak zmieni´c dokładnie jeden jej element?
♣14 Wyja´snij jak działa i, generuj ˛ac macierz jednostkow ˛a 5×5, podaj przykład u ˙zycia funkcjiTable[].
♣15 Wyja´snij jak działa i, generuj ˛ac list ˛e ze współrz ˛ednymi wybra- nych punktów wykresu funkcji sinus na zbiorze[0, 2π], podaj przykład u ˙zycia funkcjiTable[].
♣16 Jak doda´c wi ˛ecej niz jeden wykres naPlot[]? Podaj przykład z funkcjami sinus i kosinus.
♣17 Jak doda´c wi ˛ecej niz jeden wykres naListPlot[]? Podaj przy- kład z listami{1,2,3,4}i{{4,5},{3,2},{2,1},{1,0}}.
♣18 Jak doda´c kropki na wykresie typuPlot[]?
♣19 Powtórz poprzednie zadanie, ale tym razem dodaj ˛ac lini ˛e ci ˛agł ˛a na wykresie typuListPlot[].
♣20 Wyja´snij jak działa funkcjaManipulate[]. Zilustruj jej działanie przykładem.
♣21 Jak pogrubi´c krzyw ˛a wykresu typuPlot[]?
♣22 Jak zmieni´c kolor krzywej wykresu typuPlot[]?
♣23 Jak zmieni´c styl kreskowania krzywej wykresu typuPlot[]?
♣24 Jak zmieni´c rozmiar punktów wykresu typuListPlot[]?
♣25 Jak zmieni´c kolor punktów wykresu typuListPlot[]?
♣26 Jak zmieni´c kształt punktów wykresu typuListPlot[]?
♣27 Jak doda´c do wykresu (dowolnego typu) linie siatki?
Uwaga:Pami ˛etaj aby w rozwi ˛azaniach
♠zastosowa´c opcje zwi ˛ekszaj ˛ace czytelno´s´c (a niekiedy nawet nadaj ˛ace sens) wykresów. S ˛a to opcje takie jak:
PlotRange,AxesOrigin,PlotStyle, PlotLegendsitp.
Dobierz odpowiednie rozmiary prze- działów (binów).
Dobierz odpowiednie rozmiary prze- działów (binów).
˙Zeby rysunek był czytelny zamiast funkcjiListPlot[]wykorzystaj ListLogPlot[].
Dobierz odpowiednie rozmiary prze- działów (binów).
Zamiast funkcjiPlot[]wykorzystaj LogPlot[].
Dobierz odpowiednie rozmiary prze- działów (binów).
♣28 Jak zmieni´c na wykresie (dowolnego typu) zakres na osi odci ˛e- tych i rz ˛ednych?
♣29 Jak na wykresie (dowolnego typu) podpisa´c osie?
♣30 Jak doda´c do wykresu (dowolnego typu) linie siatki?
♠1 Narysuj wykres pierwszych 10 elementów orbity funkcji h(x) =x3w x0=0.5.
♠2 Wykorzystuj ˛ac warunkow ˛a instrukcj ˛eIf[]napisz własn ˛a imple- mentacj ˛e funkcjiMod[].
♠3 Narysuj wykres pierwszych 10 elementów orbity funkcji h(x) =√
x w x0=0.5.
♠4 Narysuj histogram pierwszych 100 elementów orbity funkcji h(x) =√
x w x0=0.5.
♠5 Narysuj wykresy trzech pierwszych iteracji funkcji sinus na zbiorze[0, 2π].
♠6 Narysuj histogram pierwszych 100 elementów orbity funkcji h(x) =x3w x0=0.5.
♠7 Narysuj wykresy trzech pierwszych iteracji funkcji kosinus na zbiorze[0, 2π].
♠8 Narysuj wykres pierwszych 4 elementów orbity funkcji h(x) =exw x0=0.05.
♠9 Narysuj histogram pierwszych 100 elementów orbity funkcji h(x) =sin x w x0=π/2.
♠10 Narysuj wykres drugiej iteracji funkcji wykładniczej na[0, 1].
♠11 Narysuj wykres pierwszych 50 elementów orbity funkcji h(x) =3x(1−x)w x0=0.27.
♠12 Narysuj wykres czwartej iteracji funkcji h(x) = 3x(1−x)na zbiorze[0, 1].
♠13 Narysuj wykres pierwszych 10 elementów orbity funkcji h(x) =sin x w x0=π/2.
♠14 Narysuj wykres trzeciej iteracji funkcji h(x) =sin(ex)na[0, 1].
♠15 Narysuj histogram pierwszych 100 elementów orbity funkcji h(x) =3x(1−x)w x0=0.27.
♠16 Wygeneruj list ˛e wykresów pierwszych 5 iteracji funkcji sinus na zbiorze[0, 2π].
Polecamy tutaj funkcj ˛eManipulate[].
Polecamy tutaj funkcj ˛eManipulate[].
Polecamy tutaj funkcj ˛eManipulate[].
Pojawiaj ˛aca si ˛e w zadaniach♠24− ♠27 funkcja zwi ˛azana jest ze słynnym otwartym problemem Collatza.
Sugerujemy rozpocz ˛a´c poszukiwania od n<5.
Sugerujemy przyj ˛ecie warto´sci n = 1, . . . , 10.
♠17 Wygeneruj macierz 5×5, o współrz ˛ednych b ˛ed ˛acych sum ˛a numeru wiersza i kolumny.
♠18 Narysuj i wyja´snij jak zale ˙zy wykres funkcji hC(x) = e−Cx2 od parametru C∈ [0, 2].
♠19 Wypisz wszystkie macierze 2×2 o elementach ze zbioru{0, 1}.
♠20 Rozwi ˛a ˙z graficznie równanie x2−2x=0.
♠21 Jak zale ˙zy od warto´sci parametru C orbita funkcji hC(x) =Cx?
♠22 Jak zale ˙zy od warto´sci parametru C ∈ [−2, 1]orbita funkcji hC(x) =C sin(πx)na zbiorze x∈ [−1, 1]?
♠23 Rozwi ˛a ˙z graficznie równanie ex+x=0.
♠24 Rozstrzygnij własn ˛a implementacj ˛a czy dla warto´sci pocz ˛at- kowych n = 2, 3, . . . , 200 poni ˙zsza całkowitoliczbowa funkcja posiada orbit ˛e okresow ˛a?
h(n) =
n
2 gdy n jest parzysta 3n+1 gdy n jest nieparzysta.
♠25 Zidentyfikuj punkt stały funkcji z zadania♠24. Rozstrzygnij albo pospekuluj o istnieniu innych punktów stałych.
♠26 Znajd´z co najmniej dwie orbity funkcji z zadania♠24.
♠27 Narysuj wykres długo´sci orbity funkcji z zadania♠24 zanim osi ˛agnie swoj ˛a finaln ˛a orbit ˛e okresow ˛a w zale ˙zno´sci od punktu.
pocz ˛atkowego n.
♠28 Wygeneruj macierz trójk ˛atn ˛a, gdzie ka ˙zdy niezerowy element jest numerem naddiagonali na której lezy.
♠29 Wyznacz punkt stały funkcji f(x) =x/π dla x∈R.
♠30 Narysuj wykres trzeciej iteracji funkcji h(x) = 3x(1−x)na zbiorze[0, 1].
Dlaczego naiwny model ˆfλ(x) =λxjest niefizyczny?
Przy definiowaniu fλ[x_]:=przydatna mo ˙ze okaza´c si ˛e funkcjaN[]. Dlaczego?
Prosz ˛e pami ˛eta´c te ˙z aby uwzgl ˛edni´c mo ˙zliwo´s´c zmiany długo´sci obserwo- wanej orbity
Pomocne mo ˙ze by´c naniesienie na badany wykres funkcji h(x) =x
Na diagramie bifurkacyjnym nale ˙zy umie´sci´c tylko punkty powy ˙zej pewnej liczby iteracji n0.
Rodzina kwadratowa
A w dodatku, daj ˛e s ł o w o, mam rodzin ˛e w y j ˛at k o w ˛a! J. Brzechwa
Celem ´cwicze ´n b ˛edzie numeryczne zbadanie dynamiki rozwoju populacji bakterii, modelowane przez rodzin ˛e odwzorowa ´n kwadra- towych
fλ(x) =λx(1−x), x∈ [0, 1], gdzie λ∈ [1, 4]to parametr.
Plan bada ´n
1. Rodzina kwadratowa jako uproszczony model populacji bakterii.
Ustalmy pojemno´s´c ´srodowiska M > 0, liczb ˛e y0 ∈ [0, M]jako pocz ˛atkow ˛a ilo´s´c bakterii oraz wielko´s´c x0:=y0/M.
u Niech populacji zmienia si ˛e zgodnie z fλ(x) =λx(1−x), u Dokonaj interpretacji biologicznej rekurencji postaci
xn+1= fλ(xn).
2. Dla ustalonych warto´sci x0i λ wygeneruj 30 pierwszych elemen- tów orbityO(fλ, x0).
3. Przedstaw w formie graficznej uzyskan ˛a orbit ˛e.
4. Przy u ˙zyciu funkcjiManipulate[]przedyskutuj zale ˙zno´s´c dyna- miki od λ i x0.
5. Narysuj kolejne iteracje funkcji fλ(x). Przedyskutuj zale ˙zno´s´c kolejnych iteracji od parametru λ oraz zinterpretuj uzyskane wyniki.
6. Diagram bifurkacyjny.
Dla wybranego (dobrze dobranego) punktu startowego x0wyge- neruj pierwsze n elementów orbityO(fλ, x0). Dysponuj ˛ac szere- gami czasowymi dla ró ˙znych warto´sci λ nanie´s ich „zachowania asymptotyczne” dla kolejnych warto´sci λ na wykres aby otrzyma´c poszukiwany diagram bifurkacyjny.
Pytania i problemy
♣1 Jak do wykresu (dowolnego typu) doda´c legend ˛e?
♣2 Opisz co najmniej 3 typy komórek (np.In,Out,Text).
♣3 Wyja´snij czym ró ˙zni ˛a si ˛e w działaniu np. funkcjiTable[]liczniki {i,1,10,1}i{i,{1,10,1}}.
♣4 Czym ró ˙zni ˛a si ˛e przypisania=i:=? Zilustruj t ˛e ró ˙znic ˛e wykorzy- stuj ˛ac funkcj ˛eRandomInteger[].
♣5 Wyja´snij jak działa funkcjaShow[]. Podaj przykład jej wykorzy- stania.
♣6 Wyja´snij jak działa funkcjaNestWhile[]. Podaj przykład jej zasto- sowania.
♣7 Wyja´snij jak działa funkcjaNestWhileList[]. Podaj przykład jej zastosowania.
♣8 Wyja´snij jak działa funkcjaFixedPoint[]. Podaj przykład jej za- stosowania.
♣9 Wyja´snij jak działa funkcjaPartition[]. Podaj przykład jej zasto- sowania.
♣10 Wyja´snij jak działa funkcjaRiffle[]. Podaj przykład jej zastoso- wania.
♣11 Wyja´snij jak działa funkcjaJoin[]. Podaj przykład jej zastoso- wania.
♣12 Wyja´snij jak działa funkcjaFlatten[]. Podaj przykład jej zasto- sowania.
♣13 Wyja´snij jak działa funkcjaReverse[]. Podaj przykład jej zasto- sowania.
♣14 Wyja´snij jak działa funkcjaAnimate[]. Podaj przykład jej zasto- sowania.
♣15 Jak działa funkcjaGraphicsGrid[]? Podaj przykład jej zastoso- wania.
♣16 Jak działa funkcjaGraphicsRow[]? Podaj przykład jej zastosowa- nia.
♣17 Jak działa funkcjaGraphicsColumn[]? Podaj przykład jej zasto- sowania.
♣18 Wyja´snij jak działa funkcjaRange[]. Podaj przykład jej zastoso- wania.
♣19 Wyja´snij jak działa funkcjaDirective[]. Podaj przykład jej za- stosowania.
Uwaga:Pami ˛etaj aby w rozwi ˛azaniach
♠zastosowa´c opcje zwi ˛ekszaj ˛ace czytelno´s´c (a niekiedy nawet nadaj ˛ace sens) wykresów. S ˛a to opcje takie jak:
PlotRange,AxesOrigin,PlotStyle, PlotLegendsitp.
Do zliczania czasu wykonania funkcji polecamy komend ˛eAbsoluteTiming[].
♣20 Wyja´snij na przykładach czym ró ˙zni si ˛e sze´s´c ró ˙znych liczników opisanych w dokumentacji funkcjiManipulate[].
♣21 Wyja´snij na przykładach czym ró ˙zni si ˛e sze´s´c ró ˙znych liczników opisanych w dokumentacji funkcjiTable[].
♣22 Wyja´snij jak działa funkcjaSort[]. Podaj przykład jej zastoso- wania.
♣23 Wyja´snij jak działa, a nast ˛epnie wykorzystaj w napisaniu wła- snej funkcji, procedur ˛eFunction[]w wersjiFunction[x,body].
♣24 Wyja´snij jak działa, a nast ˛epnie wykorzystaj w napisaniu wła- snej funkcji, procedur ˛eFunction[]w wersjiFunction[F[#]].
♣25 Co w ´srodowisku Mathematica oznacza#(Slot)?
♣26 Wyja´snij jak działa, a nast ˛epnie wykorzystaj w napisaniu wła- snej funkcji, procedur ˛eF[#]&.
♣27 Jakie znaczenie w ´srodowisku Mathematica maj ˛a#(Slot) i&
(Function)?
♣28 Jakie warto´sci mo ˙ze przyjmowa´c i jak działa (m. in. wPlot[]
iListPlot[]) dyrektywaFilling?
♣29 Jakie warto´sci mo ˙ze przyjmowa´c i jak działa (wListPlot[]) dyrektywaJoined?
♣30 Jakie warto´sci mo ˙ze przyjmowa´c i jak działa (wListPlot[]) dyrektywaMesh?
♠1 Analizuj ˛ac wykres orbity wyznacz (empirycznie) warto´s´c λ przy której zachodzi pierwsza bifurkacja w rodzinie kwadratowej.
♠2 Analizuj ˛ac wykres orbity wyznacz (empirycznie) warto´s´c λ przy której zachodzi druga bifurkacja w rodzinie kwadratowej.
♠3 Porównaj na wykresie, w zale ˙zno´sci od n∈ {1, 2, . . . , 20}, czasy wykonywania komend
Table[Nest[λ # (1 - #) &, 2/5, n], {λ, 1, 4, 1/4}]
Table[Nest[λ # (1 - #) &, 2/5, n], {λ, 1, 4, 0.25}]
Wyja´snij ró ˙znice.
♠4 Analizuj ˛ac wykres orbity wyznacz (empirycznie) warto´s´c λ przy której, dla rodziny kwadratowej, pojawia si ˛e pierwsza or- bita o okresie 4.
Mo ˙zna wyliczy´c jej wzór, analizuj ˛ac posta´c funkcji fλ, odszuka´c go w lite- raturze albo dopasowa´c numerycznie np. przy pomocy funkcjiFit[]lub FindFit[].
W zadaniu tym bardzo wa ˙zne jest odpowiednie dobranie długo´sci orbity i liczby binów. Zbyt małe zniwecz ˛a spodziewany efekt.
♠5 Analizuj ˛ac f3.54 Przy pomocy funkcjiSolve[]wyznacz warto-
´sci orbity okresowej o okresach 2 i 4 oraz punkty stałe. Sprawd´z wszystkie wyniki bezpo´srednio z definicji (wywołuj ˛ac funkcj ˛e f3.5
odpowiedni ˛a liczb ˛e razy).
♠6 Powtórz wykres diagramu bifurkacyjnego z zaj ˛e´c w lepszej roz- dzielczo´sci dla λ ∈ (1, 3). Dopasuj krzyw ˛a do obserwowanych punktów.
♠7 Wykonuj ˛ac operacje na listach wyznacz warto´s´c λ dla pierwszej bifurkacji podwajania okresu.
♠8 Analizuj ˛ac f3.12 Przy pomocy funkcjiSolve[]wyznacz warto´sci orbity okresowej o okresie 2 oraz punkty stałe. Sprawd´z wszystkie wyniki bezpo´srednio z definicji (wywołuj ˛ac funkcj ˛e f3.1 odpo- wiedni ˛a liczb ˛e razy). Narysuj wykres zale ˙zno´sci punktów orbity o okresie 2 w funkcji λ∈ (3, 3.5).
♠9 Wykonuj ˛ac operacje na listach wyznacz warto´s´c λ dla pierwszej bifurkacji podwajania okresu.
♠10 Wychodz ˛ac od listy danej funkcj ˛aRange[200]i stosuj ˛ac operacje na listach, wygeneruj list ˛e liczb mniejszych ni ˙z 200 i podzielnych przez 13.
♠11 Odczytaj, zmieniaj ˛ac warto´sci λ na wykresie fλ3(x)przy jakiej warto´sci parametru λ pojawia si ˛e orbita o okresie 3.
♠12 Wykonaj animacj ˛e (wzgl ˛edem parametru λ) histogramu orbity funkcji fλ. W raporcie zamie´s´c kod ´zródłowy i wybrane, reprezen- tatywne, klatki tej animacji, nie mniej ni ˙z 10.
♠13 Dodaj ˛ac strzałki do wspólnego wykresu funkcji fλ i h(x) = x zilustruj pierwsze trzy iteracje metod ˛a graficzn ˛a. Zamie´s´c wyniki dla czterech warto´sci λ generuj ˛acych odmienn ˛a dynamik ˛e.
♠14 Wychodz ˛ac od listy danej funkcj ˛aRange[200]i stosuj ˛ac ope- racje na listach, wygeneruj list ˛e par postaci{n,n+1}, gdzie n = 0, 2, 4, . . . , 200.
♠15 Powtórz wykres diagramu bifurkacyjnego z zaj ˛e´c w lepszej roz- dzielczo´sci dla λ ∈ (3, 3.7). Odczytaj z wykresu mo ˙zliwie najdo- kładniej warto´sci λ odpowiadaj ˛ace trzem pierwszym bifurkacjom podwojenia okresu.
♠16 Analizuj ˛ac wykres orbity wyznacz (empirycznie) warto´s´c λ przy której, dla rodziny kwadratowej, pojawia si ˛e pierwsza orbita o okresie 8.
Je´sli λbto punkt bifurkacji to przed oznacza λb−ε, a po λb+εnp. dla ε=0.001.
W zadaniu♠16nale ˙zy odnosi´c si ˛e do kolejnych elementów orbity (co najmniej 200), które wyst ˛epuj ˛a powy ˙zej pewnej dostatecznie du ˙zej liczby iteracji n0.
Pami ˛etaj, ˙ze operujesz na liczbach zmiennoprzecinkowych, a nie rzeczywi- stych!
♠17 Odczytaj z diagramu bifurkacyjnego warto´sci 4 kolejnych bi- furkacji, a nast ˛epnie narysuj histogramy orbity przed i po ka ˙zdej bifurkacji.
♠18 Korzystaj ˛ac z licznika postaci{λ,3,4,0.01}wygeneruj list ˛e orbit funkcji fλ, nast ˛epnie usu ´n dubluj ˛ace si ˛e elementy i narysuj wykres liczno´sci orbity w funkcji λ.
♠19 Wykonuj ˛ac operacje na listach wyznacz warto´s´c λ dla drugiej bifurkacji podwajania okresu.
♠20 Wychodz ˛ac od listy danej funkcj ˛aRange[200]i stosuj ˛ac operacje na listach, wygeneruj list ˛e liczb mniejszych ni ˙z 200 i podzielnych przez 7.
♠21 Stosuj ˛ac funkcj ˛eHistogramListdo listy słu ˙z ˛acej podczas ´cwi- cze ´n do narysowania diagramu bifurkacyjnego narysuj funkcj ˛a ArrayPlotwykres, w którym na osi poziomej b ˛ed ˛a warto´sci λ, na osi pionowej wartosci y ∈ [0, 1], a intensywno´s´c koloru ka ˙zdego piksela wykresu b ˛edzie zale ˙ze´c od cz ˛esto´sci wyst ˛epowania danych warto´sci y w orbicie funkcji fλ.
♠22 Na diagramie bifurkacyjnym z zaj ˛e´c nanie´s strzałki wskazuj ˛ace miejsca pierwszych trzech bifurkacji.
♠23 Dodaj ˛ac strzałki do wspólnego wykresu funkcji fλ i h(x) = x zilustruj pierwsze trzy iteracje metod ˛a graficzn ˛a. Zamie´s´c wyniki dla czterech warto´sci λ generuj ˛acych odmienn ˛a dynamik ˛e.
♠24 Powtórz wykres diagramu bifurkacyjnego z zaj ˛e´c w lepszej rozdzielczo´sci dla λ∈ (3.7, 4).
♠25 Usu ´n dubluj ˛ace si ˛e punkty z diagramu bifurkacyjnego z zaj ˛e´c.
♠26 Wykonuj ˛ac operacje na listach wyznacz warto´s´c λ dla trzeciej bifurkacji podwajania okresu.
♠27 Wychodz ˛ac od listy danej funkcj ˛aRange[200]i stosuj ˛ac operacje na listach, wygeneruj list ˛e liczb mniejszych ni ˙z 200 i podzielnych przez 11.
♠28 Wyznacz graficznie, powi ˛ekszaj ˛ac odpowiedni fragment dia- gramu bifurkacyjnego i zwi ˛ekszaj ˛ac jego rozdzielczo´s´c warto´s´c parametru λ, dla którego funkcja fλma orbit ˛e o długo´sci 3.
♠29 Odczytaj z diagramu bifurkacyjnego krotno´sci orbit pojawiaj ˛a- cych si ˛e w pierwszych 4 bifurkacjach.
♠30 Stosuj ˛ac funkcj ˛eHistogramListdo listy słu ˙z ˛acej podczas ´cwi- cze ´n do narysowania diagramu bifurkacyjnego narysuj funkcj ˛a ArrayPlotwykres, w którym na osi poziomej b ˛ed ˛a warto´sci λ, na osi pionowej wartosci y ∈ [0, 1], a intensywno´s´c koloru ka ˙zdego piksela wykresu b ˛edzie zale ˙ze´c od cz ˛esto´sci wyst ˛epowania danych warto´sci y w orbicie funkcji fλ.
Sugeruj ˛e rysowa´c na wykresie ListLogLogPlot, a krzyw ˛a dopaso- wywa´c funkcjaFindFit.
Polecamy funkcjeLinei wycinanie r ˛eczne lub automatyzacja przy po- mocy operacji na listach i/lub funkcji RealDigits.
Polecamy funkcj ˛eCountryDatai ryso- wanie konturów pa ´nstw.
Pomocna oka ˙ze si ˛e funkcjaImageTrimi operacje na listach.
Oczywi´scie wybórJuliaSetPloti MandelbrotSetPlotodradzamy – popsułoby to cał ˛a zabaw˛e.
Fraktale
We need to go deeper!
Incepcja
Celem ´cwicze ´n b ˛edzie analiza i wizualizacja zbiorów fraktalnych w tym (trójkowego) zbioru Cantora, zbiorów Julii i Mandelbrota dla rodziny kwadratowej, a tak ˙ze obliczanie wymiaru fraktalnego dla rzeczywistych obiektów.
Plan bada ´n
1. Wyznacz empirycznie wymiar fraktalny dla zbioru Cantora. Ze- staw dopasowan ˛a krzyw ˛a z danymi empirycznymi na jednym wykresie. Porównaj ze ´scisłym wynikiem.
2. Narysuj graficzn ˛a wizualizacj ˛e zbioru Cantora.
3. Wygeneruj binarny obrazek rzeczywistego obiektu o fraktalnej naturze
4. Wyznacz eksperymentalnie wymiar fraktalny swojego rysunku.
5. Wykonaj wizualizacje zbiorów Julii i Mandelbrota.
Pytania i problemy
♣1 Jak działa funkcjaGraphics? Podaj przykład jej zastosowania.
♣2 Jak działa funkcjaLine? Podaj przykład jej zastosowania.
♣3 Jak działa funkcjaRectangle? Podaj przykład jej zastosowania.
♣4 Jak działa funkcjaPolygon? Podaj przykład jej zastosowania.
♣5 Jak działa funkcjaDisk? Podaj przykład jej zastosowania.
♣6 Jak działa funkcjaCircle? Podaj przykład jej zastosowania.
♣7 Jak działa funkcjaArrow? Podaj przykład jej zastosowania.
♣8 Jak działa funkcjaThickness? Podaj przykład jej zastosowania.
♣9 Jak działa funkcjaArrayPlot? Podaj przykład jej zastosowania.
♣10 Jak działa funkcjaListLogLogPlot? Podaj przykład jej zastoso- wania.
♣11 Jak działa funkcjaImageTrim? Podaj przykład jej zastosowania.
♣12 Jak działa funkcjaImageCrop? Podaj przykład jej zastosowania.
♣13 Jak działa funkcjaImageValue? Podaj przykład jej zastosowania.
♣14 Czym ró ˙zni si ˛e dyrektywaThickodThickness?
♣15 Jak działa funkcjaCountryData? Podaj przykład jej zastosowa- nia.
♣16 Jak działa funkcjaFindFit? Podaj przykład jej zastosowania.
♣17 Jak działa funkcjaReplaceAll(\.)? Podaj przykład jej zastoso- wania.
♣18 Jak zmieni´c grubo´s´c lini podczas rysowania grafiki?
♣19 Jak zmieni´c styl lini podczas rysowania grafiki?
♣20 Jak wczyta´c obrazek do ´srodowiska Mathematica?
♣21 Jak działa funkcjaNestWhile? Podaj przykład jej zastosowania.
♣22 Jak działa funkcjaMap? Podaj przykład jej zastosowania.
♣23 Jak działa funkcjaApply? Podaj przykład jej zastosowania.
♣24 Jak działa funkcjaImageMeasurements? Podaj przykład jej zasto- sowania.
♣25 Jak działa dyrektywaColorFunctions? Podaj przykład jej zasto- sowania.
♣26 Co robi@? Podaj przykład zastosowania.
♣27 Co robi\@? Podaj przykład zastosowania.
♣28 Co robi@@? Podaj przykład zastosowania.
♣29 Co robi@@@? Podaj przykład zastosowania.
♣30 Co robi#i&? Podaj przykład zastosowania.
♠1 Wyznacz empirycznie wymiar fraktalny zbioru Julii dla 3 wybra- nych warto´sci c.
♠2 Poł ˛acz wykresy zbiorów Julii i Mandelbrota w jeden blokManipulate, w którym klikaj ˛ac na punkt zbioru Mandelbrota kod rysuje odpo- wiadaj ˛acy temu punktowi zbiór Julii.
♠3 Narysuj rysunek zbioru Julii w wi ˛ekszej rozdzielczo´sci dla 3 wybranych warto´sci c.
♠4 Narysuj polityczn ˛a map ˛e polityczn ˛a Afryki, wykorzystuj ˛ac funk- cjeCountryData.
♠5 Narysuj polityczn ˛a map ˛e polityczn ˛a Ameryki Południowej, wy- korzystuj ˛ac funkcjeCountryData.
♠6 Narysuj w wi ˛ekszej rozdzielczo´sci wybrany fragment zbioru Mandelbrota, wyznacz jego empiryczny wymiar fraktalny.
♠7 Narysuj polityczn ˛a map ˛e polityczn ˛a Ameryki Północnej, wyko- rzystuj ˛ac funkcjeCountryData.
♠8 Poł ˛acz wykresy zbiorów Julii i Mandelbrota w jeden blokManipulate, w którym klikaj ˛ac na punkt zbioru Mandelbrota kod rysuje odpo- wiadaj ˛acy temu punktowi zbiór Julii.
♠9 Narysuj rysunek zbioru Julii w wi ˛ekszej rozdzielczo´sci dla 3 wybranych warto´sci c.
♠10 Narysuj polityczn ˛a map ˛e polityczn ˛a Azji, wykorzystuj ˛ac funkcje CountryData.
♠11 Narysuj w wi ˛ekszej rozdzielczo´sci wybrany fragment zbioru Mandelbrota, wyznacz jego empiryczny wymiar fraktalny.
♠12 Narysuj polityczn ˛a map ˛e Europy, wykorzystuj ˛ac funkcjeCountryData.
♠13 Wyznacz empirycznie wymiar fraktalny zbioru Julii dla 3 wy- branych warto´sci c.
♠14 Dopasuj parametry wybranej krzywej do ci ˛agu liczb Fibonaccie- go.
♠15 Poł ˛acz wykresy zbiorów Julii i Mandelbrota w jeden blok Manipulate, w którym klikaj ˛ac na punkt zbioru Mandelbrota kod rysuje odpowiadaj ˛acy temu punktowi zbiór Julii.
♠16 Narysuj rysunek zbioru Julii w wi ˛ekszej rozdzielczo´sci dla 3 wybranych warto´sci c.
♠17 Dopasuj parametry wybranej krzywej do ci ˛agu liczb pierw- szych.
♠18 Narysuj w wi ˛ekszej rozdzielczo´sci wybrany fragment zbioru Mandelbrota, wyznacz jego empiryczny wymiar fraktalny.
♠19 Dopasuj parametry wybranej krzywej do ci ˛agu liczb Fibonaccie- go.
♠20 Wyznacz empirycznie wymiar fraktalny zbioru Julii dla 3 wy- branych warto´sci c.
♠21 Wczytaj plik z grafik ˛a przedstawiaj ˛ac ˛a wybran ˛a ro´slin ˛e, wy- znacz empirycznie jego wymiar fraktalny.
♠22 Narysuj rysunek zbioru Julii w wi ˛ekszej rozdzielczo´sci dla 3 wybranych warto´sci c.
♠23 Wczytaj plik z grafik ˛a przedstawiaj ˛ac ˛a wybran ˛a muszl ˛e, wy- znacz empirycznie jego wymiar fraktalny.
♠24 Poł ˛acz wykresy zbiorów Julii i Mandelbrota w jeden blok Manipulate, w którym klikaj ˛ac na punkt zbioru Mandelbrota kod rysuje odpowiadaj ˛acy temu punktowi zbiór Julii.
♠25 Narysuj w wi ˛ekszej rozdzielczo´sci wybrany fragment zbioru Mandelbrota, wyznacz jego empiryczny wymiar fraktalny.
♠26 Wczytaj plik z grafik ˛a przedstawiaj ˛ac ˛a delt ˛e wybranej rzeki, wyznacz empirycznie jego wymiar fraktalny.
♠27 Wczytaj plik z grafik ˛a przedstawiaj ˛ac ˛a układ naczy ´n krwiono-
´snych, wyznacz empirycznie jego wymiar fraktalny.
♠28 Wyznacz empirycznie wymiar fraktalny zbioru Julii dla 3 wy- branych warto´sci c.
♠29 Poł ˛acz wykresy zbiorów Julii i Mandelbrota w jeden blok Manipulate, w którym klikaj ˛ac na punkt zbioru Mandelbrota kod rysuje odpowiadaj ˛acy temu punktowi zbiór Julii.
♠30 Narysuj rysunek zbioru Julii w wi ˛ekszej rozdzielczo´sci dla 3 wybranych warto´sci c.
Mo ˙zna u ˙zy´c funkcjiIntegrate[].
Polecamy do tego celuNest[]iMap[].
Warto zapozna´c si ˛e z opcj ˛aPDFdla funkcjiHistogramList[]- b ˛edzie to pomocne.
Ergodyczno´s´c
Wstrz ˛a ´s n i ˛e t e, nie zmieszane — James Bond
Plan bada ´n
1. Korzystaj ˛ac z twierdzenia Birkhoffa i wyników uzyskanych na pierwszych zaj ˛eciach dla obrotu na okr ˛egu (o k ˛at niewspółmierny do π) oblicz numerycznie poni ˙zsze całki. Porównaj uzyskane wyniki z warto´sci ˛a dokładn ˛a.
a) R2π
0 sin(x)dx, b) R2π
0 cos2(x)dx.
2. Wyestymuj miar ˛e niezmiennicz ˛a dla f4=4x(1−x), w tym celu:
• Wylosuj wektor m liczb pseudolosowych z rozkładu równomier- nego na[0, 1].
• Na ka ˙zdej ze współrz ˛ednych rozwa ˙zanego wektora wywołaj n-t ˛a iteracj ˛e funkcji f4Zadziałaj na ka ˙zdej współrz ˛ednej tego wektora n razy rozwa ˙zan ˛a funkcj ˛a.
• Przy u ˙zyciu funkcjiHistogramList[]utwórz z tej listy odpo- wiedni ˛a list ˛e histogramu - sugerujemy samemu popracowa´c nad optymalnym doborem liczby przedziałów i ich szeroko´sci na jakie chcemy podzieli´c nasze dane.
• Stosuj ˛ac funkcjePartition[]iRiffle[]tak przekształ´c uzyska- n ˛a list ˛e aby mo ˙zna było narysowa´c j ˛a z wykorzystaniem funkcji ListPlot[].
• Porównaj uzyskany wynik z wynikiem dokładnym:
h(x) = 1 πpx(1−x).
3. Odwzorowanie z rodziny logistycznej f4(x)jest ergodyczne. Ob- licz warto´s´c oczekiwan ˛aE√
X jako warto´s´c oczekiwan ˛a rozkładu danego przez miar ˛e niezmiennicz ˛a z poprzedniego zadania
h(x) = 1 πpx(1−x) oraz poprzez iteracj ˛e odwzorowania f4(x).
4. Wyznacz wszystkie deterministyczne układy dynamiczne na zbio- rze trójelementowym. Narysuj ich macierze i diagramy przej´scia w jednym kroku. Które s ˛a ergodyczne w sensie dynamicznym, a które w sensie procesów Markowa?
Przydatne mog ˛a by´c funkcje Eigensystem[],Eigenvalues[], Eigenvectors[]
5. Zaproponuj ła ´ncuch Markowa o 5 stanach, który jest ergodyczny.
Znajd´z stacjonarny rozkład prawdopodobie ´nstwa, analizuj ˛ac jego macierz przej´scia, a nast ˛epnie j ˛a iteruj ˛ac.
Pytania i problemy
♣1 Wyja´snij w jaki sposób mo ˙zna obliczy´c n-t ˛a pot ˛eg ˛e macierzy.
♣2 Wyja´snij jak działa funkcjaIntegrate[]. Podaj przykład jej zasto- sowania.
♣3 Wyja´snij jak działa funkcjaD[]. Podaj przykład jej zastosowania.
♣4 Wyja´snij jak działa funkcjaSolve[]. Podaj przykład jej zastoso- wania.
♣5 Wyja´snij jak działa funkcjaNSolve[]. Podaj przykład jej zastoso- wania.
♣6 Czym ró ˙zni ˛a si ˛e porównania==(Equal) i===(SameQ)?
♣7 Wyja´snij jak działa funkcjaEigenvalues[]oraz zilustruj jej dzia- łanie na przykładzie.
♣8 Wyja´snij jak działa funkcjaEigenvectors[]oraz zilustruj jej działanie na przykładzie.
♣9 Wyja´snij jak działa funkcjaEigensystem[]oraz zilustruj jej dzia- łanie na przykładzie.
♣10 Jaka jest ró ˙znica mi ˛edzy funkcjamiMap[]iApply[].
♣11 Wyja´snij oraz zilustruj na przykładzie działanie funkcjiNIntegrate[].
♣12 Wyja´snij oraz zilustruj na przykładzie działanie funkcjiWeightedAdjacencyGraph[].
♣13 Wyja´snij jak wykorzysta´c funkcj ˛eArrayPlot[]do narysowania szachownicy 4×4.
♣14 Wyja´snij oraz zilustruj na przykładzie działanie funkcjiMatrixForm[].
♣15 Wyja´snij dlaczego kod:MatrixForm[{1, 1}] == {2, 2}nie zwraca warto´sci logicznejTrue.
♣16 Wyja´snij jak zmieni´c kolor wybranej (tylko jednej) kraw˛edzi w grafie generowanym za pomoc ˛a funkcjiWeightedAdjacencyGraph[].
♣17 Wyja´snij jak działa funkcjaGraph[]oraz zilustruj jej działanie na przykładzie.
♣18 Wyja´snij jak działa funkcjaFlatten[]oraz zilustruj jej działanie na przykładzie.
Prosz ˛e szuka´c wbudowanej funkcji, a nie implementowa´c np. metod ˛e odwrotnej dystrybuanty!
Pomocna b ˛edzie funkcjaTable[].
♣19 Wyja´snij oraz zilustruj na przykładzie działanie funkcjiTranspose[].
♣20 Wyja´snij jak przy pomocy funkcjiAdjacencyGraph[]wygenero- wa´c graf pełny o 5 wierzchołkach.
♣21 Wyja´snij i zilustruj przykładem działanie funkcjiTotal[].
♣22 Wyja´snij oraz zilustruj przykładem działanie funkcjiMax[]
iMin[].
♣23 Wyja´snij oraz zilustruj przykładem działanie dyrektywyGraphLayout.
♣24 Wyja´snij oraz zilustruj przykładem działanie dyrektywyVertexyStyle
♣25 Wyja´snij oraz zilustruj przykładem działanie dyrektywyEdgeStyle
♣26 Czym ró ˙zni ˛a si ˛e funkcjeDirectedEdge[]iUndirectedEdge[]?
♣27 Wyja´snij oraz zilustruj przykładem działanie funkcjiMean[]
♣28 Wyja´snij jak działa funkcjaHistogram[], zilustruj jej działanie przykładem.
♣29 Jak w ´srodowisku Mathematica wygenerowac liczby pseudolo- sowe z rozkładu jednostajnego na zadanym przedziale?
♣30 Jak w ´srodowisku Mathematica wygenerowac liczby pseudolo- sowe z zadanego rozkładu?
♠1 Niech n∈N, parzysta. W jaki sposób w grafie o n wierzchołkach generowanym za pomoc ˛a funkcjiWeightedAdjacencyGraph[]
pokolorowa´c parzyste wierzchołki na zielono a nieparzyste na
˙zółto?
♠2 Zaproponuj proces Markowa o co najmniej 6 stanach posiadaj ˛acy stany o ró ˙znym okresie, tak aby graf reprezentuj ˛acy ten proces był spójny (jako graf nieskierowany). Dla zaproponowanego procesu:
u narysuj diagram przej´scia w jednym kroku, u narysuj macierz przej´scia w jednym kroku,
u znajd´z wszystkie stacjonarne rozkłady prawdopodobie ´nstwa.
♠3 Dla dowolnego grafu zapisz macierz przej´scia w jednym kroku dla cz ˛astki bł ˛adz ˛acej po nim przypadkowo.
♠4 Zaproponuj proces Markowa o okresie 2 posiadaj ˛acy co najmniej 6stanów, tak aby graf reprezentuj ˛acy ten proces był spójny (jako graf skierowany). Dla zaproponowanego procesu:
u narysuj diagram przej´scia w jednym kroku, u narysuj macierz przej´scia w jednym kroku,
u znajd´z wszystkie stacjonarne rozkłady prawdopodobie ´nstwa.
♠5 Wykorzystuj ˛ac funkcj ˛eEigensystem[]znajd´z wszystkie stacjo- narne rozkłady prawdopodobie ´nstwa dla grafu zadanego macierz ˛a przej´scia (Rozumianej w my´sl definicji 11)
1 0 0 0 0
0 0.5 0.5 0 0
0 0 0 0.5 0
0 0.5 0 0 1
0 0 0.5 0.5 0
.
♠6 Dla dowolnego grafu zapisz macierz przej´scia w jednym kroku dla cz ˛astki bł ˛adz ˛acej po nim przypadkowo.
♠7 Powtórz zadanie♠5dla macierzy przej´scia:
1 0 0 0.3 0
0 0.5 0.5 0 0 0 0.5 0.5 0 0
0 0 0 0.5 1
0 0 0 0.2 0
♠8 Wykorzystuj ˛ac funkcjeAdjacencyGraph[],Table[],If[]napisz program, który dla zadanego n ∈ N wygeneruje graf pełny o n wierzchołkach.
♠9 Wykorzystuj ˛ac funkcjeGraph[],Table[],If[]napisz program, który dla zadanego n ∈ N wygeneruje graf pełny o n wierzchoł- kach.
♠10 Napisz funkcj ˛e, który, wykorzystuj ˛ac funkcj ˛eTotal[]sprawdza czy podana w jej argumencie macierz jest macierz ˛a przej´scia w jednym kroku (w my´sl definicji 11).
♠11 Napisz funkcj ˛e, który, wykorzystuj ˛ac funkcj ˛ePlus[]sprawdza czy podana w jej argumencie macierz jest macierz ˛a przej´scia w jednym kroku (w my´sl definicji 11).
♠12 Napisz funkcj ˛e która dla zadanego n ∈ N zwraca´c b ˛edzie przy pomocyArrayPlot[]graficzn ˛a reprezentacj ˛e macierzy n×n przedstawiaj ˛ac ˛a pikselowe koło, czyli figur ˛e, w której małymi kwadratami przybli ˙za si ˛e z coraz wi ˛eksz ˛a dokładno´sci ˛a (wraz ze wzrostem warto´sci n) wn ˛etrze dwuwymiarowej kuli.
♠13 Wykonaj zadanie♠12 przybli ˙zaj ˛ac wn ˛etrze dwuwymiarowej figury danej nast ˛epuj ˛aco:
P=n(x, y) ∈R2: 4+2x<x2+y2<9o .