\begin{Tehtava}
\begin{tehtava}
%Luentoteht. \\
mlK008.tex \\
Alla on versio kuuluisan matemaatikon \textit{Arnoldin} ns. kissaa, jonka
toteutamme Matlabilla varsin yksinkertaisena tyylitelmänä.
Harjoituksen ajatuksena on demonstroida kompleksiaritmetiikan mahdollisuuksia
kiertokuvauksien käsittelyssä. Samalla saamme rutiinia niin Matlabissa kuin
yleensäkin kompleksiluvuilla laskemisessa.

Käsittelemme tässä kissaa tavallisuudesta poiketen kompleksilukuvektorina.

Tehtävässä ei ole jätetty juurikaan itse keksittävää. 
Niinpä jos aika on tiukalla, tämä tehtävä sopii oikein hyvin omatoimisesti
läpikäytäväksi vaikka kotona. 

Selvitä itsellesi juurta
jaksain, mitä kussakin vaiheessa tehdään. Kissa ja sen pyöritys on
pelkkää kompleksiaritmetiikkaa.

Komennot on annettu ``ideointiyyliin'', siksi koodia on niin paljon.

Suorita ensin nämä komennot: (Huomaa puolipisteen käyttö, 
jos dataa on ``vähänkin paljon''.)

\begin{verbatim}
clf              % clear graphics
t=0:pi/100:2*pi; % tai esim. t=linspace(0,2*pi); 
paa=.1*exp(i*t);
plot(paa)
axis equal
hold on
silmat=[-0.05+i*.055, 0.05+i*.055]
plot(silmat,'+')
nena=.02*i+.003*exp(i*t);% t-vektori muodostettiin yllä.
plot(nena,'r')
%nena=.02*i
%plot(nena,'o')  % Tämä olisi ``laiskan miehen nenä''
% Suuksi sopiva ympyrän kaari välillä (-2*pi/3,-pi/3)
phi=linspace(-2*pi/3,-pi/3);
suu=0.05*exp(i*phi);
plot(suu,'.')
korvat=[.1*exp(i*pi/6),.1*exp(i*5*pi/6)]
plot(korvat,'o') % ``Laiskan miehen korvat''
\end{verbatim}
Tässä on peruskissa.

Nyt ryhdymme pyörittelemään kissaparkaa.
Päätä ei tarvitse pyörittää, ympyrä ei pyöritettäessä miksikään muutu.
Riittää, kun pyöritämme suuta, nenää, silmiä ja korvia.

Kootaan ensin kissan osat yhteen vektoriin ja tehdään äskeinen uudestaan
kissavektorilla.

\begin{verbatim}
figure(1)   % Tätä tarvitaan vain palattaessa takaisin kuvasta 2.
% Ajatellaan, että figure(1) on z-taso ja figure(2) w-taso.
clf              % Grafiikan putsaus     
t=0:pi/100:2*pi; % Syytä tehdä uudestaan, vanha t voisi olla jo ihan muuta
paa=.1*exp(i*t);    % vaikkei näillä komennoilla satukaan.
plot(paa)
axis equal
hold on
zkissa=[silmat,nena,korvat,suu];
plot(zkissa,'or')  % Pelkät pisteet merkillä 'o' värillä 'r'
\end{verbatim}

Avataan uusi grafiikkaikkuna ja piirretään siihen kierrettyjä kissoja.

\begin{verbatim}
figure(2)  % w-taso
clf
wkissa=exp(i*pi/4)*zkissa
paa=.1*exp(i*t);
plot(paa)
axis equal
hold on
plot(wkissa,'or')
shg     % show graphics
\end{verbatim}
Nyt voit jatkaa kissaleikkiä alla olevaan tyyliin tai jotenkin muuten.
Helpointa ja opettavaisinta on kirjoittaa Matlabin editorilla alla
olevat rivit (ja mahdollisesti myös zkissarivit) omien mieltymystesi
mukaan modifioiden tiedostoon {\tt kissa.m}.
Kun tiedosto on polun varrella, voit sanoa istunnossasi {\tt kissa},
editoida {\tt kissa.m}:ää ja taas komentaa kissaa.


\begin{verbatim}
clf
alpha=pi/4;  % Kiertokulma, helppo muutella.
wkissa=exp(i*pi/4)*wkissa
paa=.1*exp(i*t);
plot(paa)
axis equal
hold on
plot(wkissa,'or')
shg
\end{verbatim}


Seuraavaksi jo sormet syyhyävät kissan käsittelyyn matriisina ja 
kiertomatriisilla kerrottuna (vrt. [D]-teht. 5).
Maltamme kuitenkin mielemme ja jätämme seuraavaan kertaan.

Palannemme kissaan muutenkin yleisempien lineaarikuvausten yhteydessä, 
tällöin saatamme kaltoin kohdella sitä paljon enemmän, anteeksi
kissa!





%\textbf{Avainsanat}: mlPerusteet, Matlab perusteet, fliplr,flipud, kaksoispiste (:), 
% k\"a\"anteinen j\"arjestys, kaanteinen jarjestys, matriisin jonoutus, ``merge'', limitys

\end{tehtava}
\end{Tehtava}

