You are on page 1of 8

Dariusz Skibicki

Matlab
dla zaawansowanych
wersja 1.0, 2010-09-29

1. Obliczanie wartości stałych matematycznych (Stale.m, Oblicz_pi.m)

1. Wykorzystując iteracje, za pomocą pętli for oblicz stałą e.

2. Wykorzystując wektoryzację obliczeń, za pomocą funkcji sum() oblicz stałą e.

3. Wykorzystując wektoryzację obliczeń, za pomocą funkcji sum() oblicz stałą e.

4. Wykorzystując wektoryzację obliczeń, za pomocą funkcji sum() oblicz stałą e.

5. Wykorzystując wektoryzację obliczeń, za pomocą funkcji sum() oblicz stałą .

6. Wykorzystując wektoryzację obliczeń, za pomocą funkcji prod() oblicz stałą .

7. Zaproponuj funkcję rekurencyjną obliczającą stałą .

- 1/8 -
2. Chaos deterministyczny (Chaos.m)

W jednym oknie dialogowym wykonaj dwa wykresy wg zależności:

x i+1=k x 2i −1

Pierwszy wykres dla k =1.1, drugi dla k =1.6. W obu przypadkach oblicz 200 pierwszych wartości,
rozpoczynając od x 1=0.54321. Wykorzystaj funkcję subplot().

3. Rysunek paproci (Paproc.m)

Wykonaj rysunek liścia paproci, wykorzystując cztery poniższe zależności iteracyjne:

f1
x n+1 = 0
y n+ 1=0.16 y n.
f2
x n+1 = 0.2 x n  - 0.26  y n
y n+ 1=0.23 x n+ 0.22 y n +1.6
f3
x n+1 = -0.15 x n  + 0.28  y n
y n+ 1=0.26 x n+ 0.24 y n +0.44
f4
- 2/8 -
x n+1 = 0.85 x n  + 0.04  y n
y n+ 1=−0.04 x n +0.85 y n +1.6

Zalezność f 1 zastosuj 1% razy, f 2 i f 3 po 7%, a zalezność f 4 85% razy. Do losowania funkcji


wykorzystaj funckję rand().

4. Transformacje geometryczne (Transformacje.m)

1. Macierz przesunięcia ma postać:

1 0 0

[ ]
T (t x ,t y )= 0 1 0
tx t y 1

Macierz skalowania ma postać:

sx 0 0

[ ]
S (s x , s y )= 0 s y 0
0 0 1

Macierz obrotu ma postać:

cosϕ sin ϕ 0
[
R(ϕ )= −sin ϕ cos ϕ 0
0 0 1 ]
- 3/8 -
Macierz transformacji jest iloczynem powyższych macierzy i ma postać:

M =T⋅S⋅R
W celu wykonania transformacji należy przemnożyć współrzędne figury płaskiej przez macierz M.

Zbuduj macierz transformacji i dokonaj następującego przekształceń:


 przemieszczenia Tx=4 , Ty=3,
 skalowania Sx=1.5 , Sy=1.5 ,
 obrotu φ=25 °,
obrazu litery K o zdefiniowanej za pomocą współrzędnych:
x=[1 2 23 4 2.8 4 3 2 21 1];
y=[11 3 11 3.5 6 6 4 6 6 1] ;
Do narysowania litery K zastosuj komendę fill().

2. Wykonaj obrót o 120° rysunku paproci z zadania 4.

- 4/8 -
5. Szyfrowanie (Szyfr.m)

W celu zaszyfrowania tekstu należy najpierw zamienić go komendą uint16() na ciąg liczb. Następnie
do liczb należy bitowo dodać klucz, również w postaci liczby, stosując komendę bitxor(). Aby
odkodować zaszyfrowany tekst należy ponownie dodać komendą bitxor() ten sam klucz.

Zaszyfruj tekst „To jest mój pin kod: 1234.”, stosując klucz w postaci liczby 23.

tekst_oryginalny = To jest mój pin kod: 1234.

tekst_zamieniony_na_cyfry =

Columns 1 through 12

84 111 32 106 101 115 116 32 109 243 106 32

Columns 13 through 24

112 105 110 32 107 111 100 58 32 49 50 51

Columns 25 through 26

52 46

tekst_zakodowany = Cx7}rdc7zä}7g~y7|xs-7&%$#9

tekst_odkodowany = To jest mój pin kod: 1234.

- 5/8 -
6. Wykrywanie krawędzi obrazu (Obraz.m, Obraz.gif)

W celu odnalezienia krawędzi czarno-białego obrazu należy wykryć kolejno krawędzie w kierunku x i
w kierunku y a następnie zsumować oba obrazy. Wykrycie krawędzi np. w kierunku x polega na
przesunięciu obrazu w tym kierunku o kilka pikseli a następnie dodanie do obrazu oryginalnego
obrazu przesuniętego wykonując operację ~xor().

Do wczytania obrazy do pamięci programu należy posłużyć się komendą imread() a w celu
wyświetlenia go w oknie dialogowym imagesc(). Do sumowania obrazów krawędzi x i y można
posłużyć się komendą and(). Do narysowania wielu obrazów w jednym oknie dialogowym
wykorzystujemy komendę subplot().

7. Automat komórkowy i gra Życie (Obraz.m, Obraz.gif)

Gra toczy się na nieskończonej planszy podzielonej na kwadratowe komórki. Każda komórka ma
ośmiu sąsiadów, czyli komórki przylegające do niej bokami i rogami. Każda komórka może znajdować
się w jednym z dwóch stanów: może być albo "żywa" albo "martwa". Stany komórek zmieniają się w
kolejnych cyklach. Stan wszystkich komórek w jednym cyklu jest używany do obliczenia stanu
wszystkich komórek w następnym cyklu. Po obliczeniu wszystkie komórki zmieniają swój stan
dokładnie w tym samym momencie. Stan początkowy może zostać dowolnie skonfigurowany,
wylosowany. Od stanu początkowego zależy dalsza ewolucja całego układu.

- 6/8 -
Zdefiniowano kilka wzorców reguł generowania, najbardziej rozpowszechnione są reguły wymyślone
przez Conwaya. Do nich też odnosi się podział struktur, przedstawiony w dalszej części artykułu.

Reguły gry według Conwaya

 Martwa komórka, która ma dokładnie 3 żywych sąsiadów, staje się ożywa w następnym
cyklu,
 Żywa komórka z 2 albo 3 żywymi sąsiadami pozostaje nadal żywa,
 Żywa komórka z mniej niż 2 sąsiadami umiera z "samotności" ,
 Żywa komórka z większą niż 3 sąsiadami umiera z "zatłoczenia".

8. Fraktale (Mandelbrot.m)

Narysuj obraz zbioru Mandelbrota wg następującego algorytmu. Dla każdego punktu o


współrzędnych C x = ⟨−1 ;1 ⟩ i C y =⟨ −1.4 ; 0.5 ⟩ obrazu wyliczaj formuły, począwszy od x i=0 , y i=0 :

x i+1=x i2− y i2 +C x

y i+1 =2 x i y i+C y

Jeśli w liczbie iteracji mniejszej niż 100 spełniony jest warunek:

x i2+ yi2 >2

wówczas punktowi o współrzędnych C x i C y przypisz kolor równy liczbie iteracji. W przeciwnym


wypadku przypisz dowolny stały kolor.

Do stworzenia obrazu wykorzystaj funkcję imagesc().

Zmieniając zakres zmiennych C x ,C y wykonuj kolejne powiększenia.

- 7/8 -
- 8/8 -

You might also like