Zestawy zadań

Zawartość:

Zestaw 1

A
(1 punkt)

Proszę zainstalować i uruchomić program Mathematica.

B
(2 punkty)

Korzystająć z notebooka proszę zaimplementować ciąg liczb Fibonacciego \(0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21, \ldots\).

Zestaw 2

MATERIAŁY DODATKOWE

W razie kłopotów:

Ostatnie twierdzenie Fermata:

Szablony, wzrce: Help - Wolfram Documentation i w okienku:

Zadanie A:

FullSimplify

Notebook z zajęć 11 X, aby uruchomić wszystkie komórki wystarczy w menu wybrać Evaluate - Evaluate Notebook:

Notebook z zajęć 18 X, aby uruchomić wszystkie komórki wystarczy w menu wybrać Evaluate - Evaluate Notebook:

A
(2 punkt)

Proszę, z wykorzystaniem funkcji

FullSimplify

sprawdzić czy istnieją liczby całkowite \(x\) , \(y\) , \(z\) oraz \(n\), które spełniają:

B
(1 punkt)

Proszę skonstruować krótki dowód wyniku z zadania A. Zeskanowane wyprowadzienie można mi wysłać pocztą elektroniczną.

C
(2 punkt)

Proszę z wykorzystaniem funkcji

If

zaimplementować funkcję \(f(x , y)\), która przyjmuje wartość \(1\) gdy punkt \((x , y)\) wpada w dwu-wymiarowy pierścień o zewnętrznym promieniu \(1\) oraz wewnętrznym promieniu \(\frac{1}{2}\) ze środkiem w środku układu współrzędnych. W przeciwnym wypadku funkcja przyjmuje wartość \(0\). Proszę tą funkcję narysować z wykorzystaniem

RegionPlot
D
(2 punkt)

Korzystając z funkcji:

Import

oraz

Cases

Proszę napisać program który:

E
(2 punkt)

Korzystając z

Manipulate

proszę napisać program, który będzie manipulował wykresem funkcji \(f(x) = exp(x) sin(4 x)\). Implementacja powinna pozwalać na wykonanie operacji:

Zestaw 3

Naszym celem będzie stworzenie animacji ilustrującej rosnące nasiona, np słonecznika:

MATERIAŁY DODATKOWE
A
(2 punkt)

Pierwszy krok to skonstruowanie funkcji rysującej pojedyncze nasionko. Załóżmy, że nasiono ma trzy atrybuty:

Taki obiekt można reprezentować trzy elementową listą:

{x , y , s}

Proszę zaimplementować funkcję:

draw[{x_ , y_ , s_}] := ...

zwracającą listę (ewentualnie zagnieżdżoną listę) wyrażeń (Disk[...], Circle[...], Gray[...], …) opisującydh rysunek nasiona (narazie nie wrzucamy tej listy jeszcze do Graphics). Przykładowo

draw[{1.0 , 2.0 , 0.1}]

mogłoby zwracać:

Circle[{1.0 , 2.0} , 0.1]
B
(1 punkt)

Proszę zaimplementować funkcję:

grow[{x_ , y_ , s_}] := ...

zwracającą nową listę atrybutów nasiona. Rozmiar nasiona w nowej liście powinien wynosić mul s, gdzie mul = 1.01 dodatkowo zdefiniowaną zmienną.

C
(1 punkt)

Proszę zaimplementować funkcję:

expand[{x_ , y_ , s_}] := ...

zwracającą nową listę atrybutów nasiona. Tym razem przesuwamy położenie środka nasionka. Nowe położenie powinno mieć współrzędne mul x oraz mul y, gdzie \(mul\) jest zmienną zdefiniowaną w zadaniu B.

D
(2 punkt)

Proszę zaimplementować funkcję:

rotate[{x_ , y_ , s_}] := ...

zwracającą nową listę atrybutów nasiona. Tym razem obracamy nasionko względem środka układu współrzędnych. Kąt obrotu powininen wynosić \(\alpha = 2 \pi \frac{\sqrt{5} - 1}{2}\). Można wykorzystać funkcję RotationTransform.

E
(3 punkt)

Proszę zaimplementować funkcję:

singleIteration[seeds_] := ...

gdzie seeds jest listą nasionek, np:

{ { 0.01 , 0.0 , 0.01 } , { 0.02 , 0.01 , 0.013 } }

a wartość zwracana zawiera dodatkowe nasionko. To dodatkowe nasionko powstaje z pierwszego nasiona w seeds poprzez aplikację wcześniej zdefiniowanych funkcji grow, expand, rotate.

F
(2 punkt)

Korzystająć z funkcji Nest oraz Graphics proszę stworyć obrazek z \(5\) nasionkami. Można założyć, że pierwsze nasiono ma atrybuty:

{0.01 , 0.0 , 0.12 * 0.01}

Pod koniec zajęć spróbujemy to rozszerzyć i stworzyć animację.

Zestaw 4

MATERIAŁY DODATKOWE
A
(1 punkt)

Korzystając z funkcji Solve proszę znaleźć wszystkie trójki pitagorejskie, których wartości są mniejsze lub równe \(200\). Trójki pitagorejskie to liczby całkowite \(x\), \(y\), \(z\) spełniające równanie pitagorasa \(x^{2} + y^{2} = z^{2}\).

B
(1 punkt)

Korzystając z wyniku zadania A oraz funkcji Histogram proszę narysować histogram wartości “przyprostokątnych” (\(x\), \(y\)). Szerokość pojedynczego binu histogramu niech wynosi \(10\). Wysokości słupków niech oznacza prawdopodobieństwo trafienia w bin. Dodatkowo proszę opisać rysunek oraz zmienić kolor słupków na inny niż domyślny.

Wskazówka: mogą się przydać funkcje Flatten oraz ReplaceAll (pisane w skrócie jako operator /.). Dodatkowo proszę uważnie przeczytać dokumentację funkcji Histogram.

C
(2 punkt)

Korzystająć z:

NSolve

proszę znaleźć wartści \(x\) dla których zachodzi:

D
(2 punkt)

Korzystając z funkcji

Plot

oraz opcjonalnych argumentów:

GridLines -> ... ,
PlotStyle -> ... ,
Frame -> ... ,
Axes -> ... ,
FrameLabel -> ...

Proszę narysować wykres funkcji \(f(x)\) z zadania A w przedziale o \(0\) do \(2 \pi\). Wykres powinien:

E
(2 punkt)

Korzstając z funkcji NIntegrate proszę policzyć powierzchnię dwu wymiarowego pierścienia, którego mniejszy promień wynosi \(0.5\) a większy promień \(1.0\). Proszę ten pierścień narysować korzystając z funkcji DensityPlot.

Wskazówka: wystarczy policzyć dwu-wymiarową całkę z funkcji isIn[x , y], która przybiera wartość \(1\) gdy \((x , y)\) wpada w pierścień oraz \(0\) gdy \((x , y)\) jest poza pierścieniem. Funkcję isIn można również wykorzystać w funkcji DensityPlot.

F
(1 punkt)

Proszę przeprowadzić rachunek z zadania E wykorzystując Integrate. Wynik proszę porównać z zadaniem E oraz powierzchnią pierścienia policzoną analitycznie (znamy wzór na powierzchnię koła).

G
(1 punkt)

Na kolejnych zajęciach poznamy podstawy pisania tekstów oraz prezentacji z wykorzystaniem systemu LaTeX i będziemy korzystać z Overleaf. Proszę spróbować założyć sobie darmowe konto na serwisie Overleaf.

Zestaw 5

Materiały Dodatkowe

Markdown:

Latex:

MISC:

A
(2 punkt)

Proszę napisać krótki (jedna, może dwie strony) opis modelu z zestawu 3. Tekst powinien być napisany w systemie LaTeX oraz zawierać

B
(2 punkt)

Podobnie jak w zadaniu A ale tym razem proszę stworzyć którką prezentację z wykorzystaniem klasy Beamer.

C
(2 punkt)

Proszę napisać notebook Mathematici, który:

Zestaw 6

Materiały Dodatkowe
A
(2 punkt)

Proszę:

B
(2 punkt)

Korzystając z funkcji NetTrain oraz NetModel proszę wytrenować sieć “LeNet” do rozpoznawania ręcznie pisanych cyfr.

C
(2 punkt)

Korzystając z modelu wytrenowanego w B proszę stworzyć tablicę pomyłek (confusion matrix).

Zestaw 7

MATERIAŁY DODATKOWE
A
(1 punkt)

Proszę pobrać ze strony dane dotyczące oczekiwanej długości życia oraz ilości dzieci przypadających na jedną kobietę. Arkusze proszę pobrać w formacie CSV.

B
(2 punkt)

Korzystając z funkcji Count proszę policzyć w ilu państwach oczekiwany czas życia w roku 1976 był \(>x\) gdzie \(x = 0 \ldots 130\). Wynik proszę nanieść na wykres.

C
(2 punkt)

Podobnie jak w zadaniu B proszę policzyć wykres dla roku 1809. Proszę porównać obydwa wykresy ale upewnić się, że w rachunku dla roku 1976 oraz 1809 brane są pod uwagę te same państwa. Można w tym celu skorzystać z funkcji Cases.

D
(2 punkt)

Korzystając z funkcji Transpose , Cases, Riffle oraz Partition proszę odtworzyć wykres z wykładu ilustrujący zmieniającą się w czasie korelację liczby dzieci przypadających na jedną kobietę oraz długość życia.

Zestaw 8

MATERIAŁY DODATKOWE
A
(4 punkt)

Proszę pobrać z serwisu arxiv wybraną publikację i odtworzyć bibliografię w LaTeX, można korzystać z systemu Overleaf. Bibliografia powinna zawierać minimum 10 pozycji i być zapisana w pliku .bib. Korzystając z BibTeX proszę napisać minimalistyczny artykuł w którym cytowanych jest kilka pozycji z bibliografii.

B
(2 punkt)

Korzystając z funkcji Table, TableForm oraz TeXForm proszę stworzyć w w Mathematice tabelkę zawierającą trzy wiersze oraz dwie kolumny. Tabelkę proszę zapisać ją w postaci zrozumiałej dla LaTeX. Tabelka powinna mieć opisane rzędy oraz kolumny. Proszę ją umieścić w minimalistycznym artykule z zadania A.

C
(2 punkt)

Korzystając z funkcji Nest proszę napisać funkcję implementującą ułamek łańcuchowy, czyli ułamek typu:

\[ \frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{\frac{1}{x+1}+1}+1}+1}+1}+1}+1}+1}+1}+1} \]

Przykład powyżej ma 10 poziomych kresek - ułamków. Proszę skonstruować 80 - krotny ułamek łańcuchowy i umieścić go w minimalistycznym artykule z zadania A.

Zestaw 9

materiały dodatkowe
A
(2 punkt)

Proszę korzystając z funkcji Import zaimportować obraz kota. Korzystająć z ColorConvert proszę zamienić ten obraz na czarno biały. Następnie korzystając z funkcji ImageData, Flatten oraz Histogram proszę narysować histogram wartości określających kolor w obrazie.

B
(2 punkt)

Morzystając z Image, Map oraz obrazka z zadania A proszę wyzerować kolor pikseli obrazka jeżeli wartość koloru jest poniżej wybranego (na podstawie histogramu) koloru.

C
(2 punkt)

Korzystając z Sort proszę posortować wartości koloru (właściwie wartości szarości) z obrazu kota od największej do najmniejszej.

D
(4 punkt)

Proszę zaimportować obraz na którym znajduje się kartka papieru z tekstem. Korzystając z ListConvolve, StandardDeviation proszę spróbować usunąć tło tekstu.

Zestaw 10

A
(4 punkty)

Zajmiemy się obiektami typu

cn[x , y]

gdzie \(x , y\) są liczbami rzeczywistymi. Dla wyrażeń tego typu zdefiniowane są operacje

plus[cn[x1_ , y1_]][cn[x2_ , y2_]] := cn[x1 + x2 , y1 + y2]
times[cn[x1_ , y1_]][cn[x2_ , y2_]] := cn[x1 x2 - y1 y2 , x1 y2 + y1 x2]
re[cn[x_ , y_]] := x

oraz

im[cn[x_ , y_]] := y

które nazywamy dodawaniem, mnożeniem, braniem części rzeczywistej oraz braniem części urojonej.

Łatwo się domyślić, że obiekty tego typu mogą reprezentować liczby zespolone. Proszę to sprawdzić i zdefiniować funkcję

power

która dla liczby całkowitej \(n\) oraz obiektu typu jak wyżej \(z\)

power[n][z]

zwraca potęgę \(z^{n}\). Wskazówka: można skorzystać z funkcji

Nest

ale przypadek podnoszenia do potęgi \(0\) trzeba rozważać osobno.

Wiedząc, że \[ Re(e^{i \phi}) = cos(\phi) \] oraz \[ Im(e^{i \phi}) = sin(\phi) \] proszę policzyć \(cos(1)\) oraz \(sin(1)\) z wykorzystaniem rozwinięcia eksponenty w szereg \[ e^{z} = exp(z) = \sum_{k = 0}^{\infty} \frac{z^{n}}{n!} \] Proszę szereg obciąć po \(100\) wyrazach i skorzystać z własnej implementacji podnoszenia do potęgi. Wynik proszę porównać z

N[Cos[1]]

oraz

N[Sin[1]]
B
(3 punkt)

Proszę wykorzystać wzorzec:

f[c_][z_] := ...

aby zaimplementować funkcję \[ f_{c}(z) = z^{2} + c \]

Następnie, korzystając z wzorca:

k[n_][c_] := ...

funkcji:

Nest

oraz implementacji funkcji \(f\) proszę zaimplementować funkcję \(k_{n}(c)\) która dla danej liczby zespolonej \(c\) oraz początkowej liczby zespolonej \(z_{0} = 0\) wielokrotnie aplikuje funkcję \(f\):

\[k_{1}(c) = f_{c}(z_{0})\] \[k_{2}(c) = f_{c}(f_{c}(z_{0}))\] \[k_{3}(c) = f_{c}(f_{c}(f_{c}(z_{0})))\] \[\ldots\]

Wykorzystując

RegionPlot
Abs

proszę narysować funkcję \(1 / |k_{5}(x + i y)|\) gdzie \(-2 < x < 1\) oraz \(-1.5 < y < 1.5\). Co otrzymujemy? Czy można \(1/||\) zastąpić inną funkcją?

C
(2 punkt)

Proszę, korzystając z rozwiązania zadania B, stworzyć plik GIF z animacją zbioru Mandelbrota. Można w tym celu stworzyć tabelkę z rysunkami utworzonymi z wykorzystaniem RegionPlot. Każdy rysunek w tabelce może mieć, na przykład, inną liczbę iteracji. Tabelkę można wyeksportować do pliku GIF wykorzysując Export. Proszę spróbować pozmieniać tempo animacji w pliku.