%% Omia m��rityksi�:

\newcommand{\R}{{\mathbb R}}
\def\maple{{\sc Maple}}
\def\Maple{{\sc Maple}}
\def\m{{\sc Maple}}
\def\maplea{{\sc Maple}a}
\def\matl{{\sc Matlab}}
\def\matlab{{\sc Matlab}}
\def\mlb{{\sc Matlab}}
\def\oct{{\sc Octave}}
\def\octave{{\sc Octave}}
\def\scilab{{\sc Scilab}}
\def\emacs{{\sc Emacs}}
\def\notepad{{\sc Notepad}}
\def\wordpad {{\sc Wordpad}}
 
\renewcommand{\vec}[1]{{\boldsymbol{#1}}}
\newcommand{\mat}[1]{{\boldsymbol{#1}}}
\def\a{\vec{a}} 
\def\b{\vec{b}} 
\def\c{\vec{c}} 
\def\bc{\vec{c}} 
\def\e{\vec{e}} 
\def\f{\vec{f}}
\def\g{\vec{g}} 
\def\h{\vec{h}} 
\def\l{\vec{l}}
\def\n{\vec{n}}
\def\p{\vec{p}} 
\def\q{\vec{q}} 
\def\r{\vec{r}}
\def\s{\vec{s}}
\def\t{\vec{t}}
\def\u{\vec{u}} 
\def\U{\vec{U}} 
\def\v{\vec{v}}
\def\V{\vec{V}} 
\def\w{\vec{w}} 
\def\x{\vec{x}}
\def\y{\vec{y}} 
\def\z{\vec{z}}
\def\0{\mathbf{0}}



\includegraphics*{nauhakone.eps}
%\artikkeli{Vektoreita ja matriiseja }
%\artikkeli{Vektorit, matriisit, H�ndel ja Markov }
\artikkeli{Vektorit, matriisit, H�ndel ja vaalit }

\kirjoittanut{\textbf{\emph{Heikki Apiola}}\\
Dosentti\\
Matematiikan laitos, Teknillinen korkeakoulu}
 
\vspace{0.2cm}
 
\begin{multicols}{2}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\newcommand{\R}{\mathbb{R}}
%\newcommand{\bma}{\begin{bmatrix} }
%\newcommand{\ema}{\end{bmatrix} }

%\newtheorem{lause}{Lause}
%\newtheorem{seur}[lause]{Seuraus}
%\newtheorem{maarit}{M\"a\"aritelm\"a}
%\newtheorem{esim}{Esimerkki} 
%\newtheorem{huom}{Huomautus}
%\newtheorem{teht}{Teht\"av\"a}
%\newtheorem{intteht}{Interpolaatioteht\"av\"a}


%\subsubsection*{Johdanto, taustaa}
\subsection*{Lineaarialgebran maistiaiset}

\emph{Lineaarialgebra} on matematiikan ala, joka on sek� teorian ett�
sovellusten kannalta hyvin keskeinen. Se yleist�� havainnollisen 
vektorik�sitteen mit� moninaisimpiin ja yll�tt�vimpiin tilanteisiin.
\\
Matriisit ovat lukutaulukoita, joille m��ritell��n laskutoimitukset.
Taulukkoon koottua tietoa k�sitell��n yhten� objektina samankaltaisin 
laskus��nn�in kuin lukuja. Kun matriisia sovelletaan vektoriin, syntyy
liikett�, dynamiikkaa.\\
Lineaarialgebran merkitys matematiikan sovelluksille on kasvanut k�si 
k�dess� tietotekniikan kehityksen kanssa. Niinp� alan ohjelmisto on
varsin kyps�ss� ja kattavassa tilassa, toki kaiken aikaa kehittyen.
\\
"Lineaarialgebran kielt�"\/ puhuvia laadukkaita ohjelmistoja on saatavilla.
Kirjoituksessa esittelemme esimerkkien valossa vapaasti saatavissa olevaa
ohjelmaa \scilab, joka noudattaa varsin uskollisesti tunnetun ja maailmalla
hyvin suositun \matlab-ohjelman syntaksia. 
%Lukijaa innostetaan hakemaan
%ohjelma itselleen ja kokeilemaan sen k�ytt��. Samalla tulee opituksi
%k�yt�nn�n matemaattisessa ty�ss� t�rke�n \matlab-ohjelman alkuaskeleet.

Kirjoituksessa pyrimme valottamaan mm. vektorik�sitteen moninaisia ja
kenties yll�tt�vi� ilmentymi� havainnollisista tason suuntanuolista
aina digitaalisiin musiikkivektoreihin. Matriisien alalla korostamme
t�ss� dynamiikkaa ja prosessia aina eduskuntavaaleihin saakka.
\\
Kyseess� ei ole yritys opettaa varsinaista lineaarialgebran kielt� yhden
kirjoituksen puitteissa, vaan pikemminkin antaa maistiaisia ja ruokahalua 
sek� n�ytt�� kenties yll�tt�vi�kin n�iden k�sitteiden k�ytt�alueita ja -tapoja.



\subsection*{Geometriset ja fysiikan vektorit}


\emph{Geometriset vektorit}
tasossa ja avaruudessa lienev�t
koulumatematiikasta ja fysiikasta tuttuja olioita . Tyypillinen fysiikan 
ensituttavuus on voima, jolla
on suuruus ja suunta. T�llaista suuretta sanotaan \emph{vektorisuureeksi}. Sit�
voidaan geometrisesti kuvata voiman suuntaa osoittavalla nuolella, jonka 
pituus kuvaa voiman suuruutta.
\begin{center}
\includegraphics[width=4cm]{apiola/kuva1a.eps} \\
\textsc{Kuva 1.} Vektorisumma $\u + \v$ 
\end{center}

%\includegraphics[width=6cm]{apiola/kuva1.eps} 

Vektorien $\u$ ja $\v$ summa $\u + \v$ m��ritell��n kuvan osoittamalla 
tavalla. On syyt� panna merkille, ett� vektorin m��r�� suunta
ja pituus, ts. sanoen kaikki \textbf{samansuuntaiset ja yht� pitk�t} 
suuntajanat alkupisteest� riippumatta 
\textbf{edustavat samaa vektoria}. Kuvassa se ilmenee kahtena $\u:$lla 
merkittyn� suuntajanana.
 
Tason vektoreita voidaan toisaalta k�sitell� puhtaasti algebrallisesti lukupareina $\p=(x,y).$ Geometrisena taustana on t�ll�in tason pisteen koordinaattiesitys. Yhteys edelliseen nuoliajatukseen saadaan piirt�m�ll� vektorinuoli,
jonka alkupiste asetetaan koordinaatiston origoon $O$. Pisteiden $\p_1=(x_1,y_1)$ 
ja $\p_2 = (x_2,y_2)$ summa m��ritell��n luontevasti: 
$\p_1 + \p_2 = (x_1+x_2,y_1 + y_2), $ ts. lasketaan vastinkoordinaatit
yhteen. Geometrisesti tulos saadaan laskemalla
vektorien $\v=\overline{0\,\p_1}$ ja $\u=\overline{\p_1\,\p_2}$ summavektori,
jonka k�rjen koordinaatit antavat juuri edell� m��ritellyn 
summapisteen $\p_1 + \p_2 .$

Vektoreille m��ritell��n my�s toinen laskutoimitus, luvulla eli 
\emph{skalaarilla} \footnote{Skalaari, "scalar"\/ -- sellainen, jolla skaalataan} kertominen. 



Vektorin $\v$ kertominen skalaarilla $c$ tarkoittaa geometrisessa mallissa 
vektorin pituuden kertomista $|c|:$lla
ja lis�ksi suunnan vaihtoa, jos $c<0.$ Algebrallisessa mallissa vektorin komponentit kerrotaan $c:$ll�, ts. jos $\v = (x,y),$ niin

$$c\,\v = (c\,x , c\, y).$$


Edell� oleva yleistyy suoraan $3-$ulotteiseen avaruuteen, algebrallisessa
vektorimallissa otetaan mukaan kolmas koordinaatti: $\v=(x,y,z),$  
geometrisessa suuntajanat leijailevat avaruudessa.

J�rjestettyjen lukuparien joukkoa kutsutaan (vektori)tasoksi ja merkit��n symbolilla $\R^2.$ Vastaavasti lukukolmikoiden joukkoa kutsutaan ($3-$ulotteiseksi)
vektoriavaruudeksi ja k�ytet��n merkint�� $\R^3.$

Geometriaan viittaavassa puheessamme nimit�mme samaa oliota vuoroin
"pisteeksi"\/ ja vuoroin "vektoriksi". J�lkim�isess� tapauksessa meill� on 
takaraivossamme ajatus origosta pisteeseen piirretyst� paikkavektorista. 
Esimerkiksi laskiessamme "pisteit�"\/ yhteen, laskemme geometrisesti ajatellen
yhteen vastaavia paikkavektoreita.

\subsection*{Lis�� ulottuvuuksia}

Algebrallisen vektorimallin etu on, ett� se voidaan suoraan yleist�� mielivaltaisen korkeaan dimensioon $n$ yksinkertaisesti kutsumalla 
\textbf{vektoreiksi} lukujonoja $\u = \left( x_1,x_2,\ldots, x_n \right)$  
ja m��rittelem�ll� laskutoimitukset  \emph{vektoreille} 
$\u = (x_1,x_2,\ldots, x_n) $ ja 
$\v=(y_1,y_2,\ldots, y_n)$ sek�  skalaarille $c$ asettamalla:

$$
\begin{cases}
\u+\v = (x_1 + y_1, x_2+y_2, \ldots, x_n+y_n)\\
c\,\u = (c\,x_1, c\,x_2,\ldots, c\,x_n)
\end{cases}
$$

Vektorien \emph{v�hennyslasku} suoritetaan v�hent�m�ll� toisistaan vastinkoordinaatit, \emph{nollavektori} on vektori \\ 
$$\0 = \left(0,0,\ldots,0\right).$$

Vektorien yleiset laskus��nn�t ovat aivan samat kuin vastaavat reaalilukujen
laskus��nn�t, jos ajattelemme skaarilla kertomista tulona.
N�it� s��nt�j� ovat liit�nt�- vaihdanta- ja osittelulait. Kaikki palautuvat
suoraan koordinaateilla suoritettaviin lukujen vastaaviin s��nt�ihin.

Toinen yleistysmahdollisuus on sallia kompleksiset komponentit ja skalaarit.
Pit�ydymme t�ss� kirjoituksessa "turvallisuussyist�"\/ reaalisissa 
vektorik�sitteiss�, vaikka lopussa mainitussa ominaisarvoteoriassa 
kompleksisilta ei voida v�ltty�.

%Skalaarit voisivat yleisess� vektorimallissa olla my�s kompleksilukuja, mutta 
%k�sittelemmme t�ss� kirjoituksessa "turvallisuussyist�"\/ vain reaalisia skalaareja. 

\subsection*{Sis�tulo, pituus, kulma}

Geometrisessa vektorimallissa vektorin $\u$ pituus on tunnettu perusk�site, 
jota merkitt�k��n $||\u ||.$
Jos $\u = \left(x,y \right),$ niin \emph{Pythagoraan lauseen} mukaan
$||\u|| = \sqrt{x^2+y^2}.$ Jos kyseess� on $3-$ulotteisen avaruuden vektori
$\u = \left(x,y,z \right),$ niin $||\u|| = \sqrt{x^2+y^2+z^2}.$

T�ss� on selv� malli yleiseen tilanteeseen, m��ritell��n siis vektorin
$\u =  \left(x_1,x_2,\ldots,x_n \right)\in \R^n $ pituus eli \emph{normi}
kaavalla $$||\u|| = \sqrt{x_1^2+x_2^2+\ldots + x_n^2}.$$

M��ritell��n nyt suoraan yleisess� tilanteessa vektorien $\u$ ja $\v$
\emph{sis�tulo} (skalaaritulo, pistetulo) kaavalla

$$\u \cdot \v = x_1\,y_1 + x_2\,y_2 + \ldots + x_n\, y_n.$$

Geometrisessa vektorimallissa sis�tulo voidaan m��ritell� kordinaattivapaasti kaavalla \\
$\u\,\cdot \v = ||u||\,||\v||\,\cos \gamma,$ miss� $\gamma$ on vektorien
$\u$ ja $\v$ v�linen kulma. M��ritelmien yht�pit�vyys voidaan osoittaa
esimerkiksi \emph{kosinilauseella}.

%Se toimii niin tasossa
%kuin avaruudessakin. Toinen mahdollisuus (ainakin tasossa) olisi k�ytt��
%kosinin v�hennyslaskukaavaa
%$$\cos(\beta-\alpha)=\cos\,\beta\,\cos\,\alpha + \sin\,\beta\,\sin\,\alpha$$
%ja sopivaa tason kiertoa.

Yleisess� $n-$ulotteisessa vektorimallissa ei luonnostaan ole k�sitett�
"vektorien v�linen kulma". Nyt voimme halutessamme m��ritell�
tuon kulman yll� olevalla sis�tulokaavalla. Yleisen vektorikulman t�rkein
merkitys liittyy \emph{kohtisuoruuden} eli \emph{ortogonaalisuuden} k�sitteen 
yleistykseen, ehtona on  
$\u\ \cdot \v = 0$

Olemme irrottaneet vektoriopin geometrisesta taustastaan ja antaneet t�sm�llisen sis�ll�n $n-$ulotteisen avaruuden vektoreille. T�m� on pohjana 
alkujohdannossa kuvatulle t�rke�lle
matematiikan alalle, \emph{lineaarialgebralle}.
%Kyseess� on sek� teorian ett� sovellusten kannalta hyvin keskeinen 
%matematiikan ala, jonka pient� nurkkaa t�ss� kirjoituksessa yrit�mme valaista.
Erityisen vieh�tt�v�� lineaarialgebrassa on, ett� pohjana on koko ajan geometrinen intuitio 2- ja 3-ulotteisten geometristen vektorien parissa, joka auttaa
koko perusteorian ymm�rt�misess� ja todistusten ideoinnissa olennaisella
tavalla. Se toimii yleisen teorian "mallikuvana"\/ kaiken aikaa.

\subsection*{Vektorilaskentaa tietokoneella}

Sovelluksissa suoritamme vektorilaskentaa usein hyvin moniulotteisilla
vektoreilla. Laskut muodostuvat pitkiksi ja tuloksen j�lkik�sittely saattaa 
sis�lt�� vaikkapa vektorin muuntamisen kuvaksi tai ��neksi. 

Ohjelmat, joiden perustietorakenteisiin kuuluvat vektorit, ja laskuoperaatiot
kattavat vektorialgebran, ovat korvaamattomia ty�v�lineit�.

Olen aiemmin esitellyt symbolilaskentaohjelmistoa \maple\/ \\
\verb_http://solmu.math.helsinki.fi/1999/5/apiola/_
 ja numeerista
vektori/matriisiohjelmistoa \matlab.\\
\verb_solmu.math.helsinki.fi/2004/3/apiola.pdf_ \\
 Ongelmana lukijoille on ohjelmien
maksullisuus. Esittelen t�ll� kertaa vapaasti saatavaa ohjelmaa \\
\scilab,
joka on perusperiaatteiltaan aivan samanlainen kuin \matlab.
Ohjelmassa on avoimesti pyritty varsin pitk�lle menev��n
yhteensopivuuteen \matlab'n kanssa. 
(Toinen vastaava vapaasti saatava ohjelmisto on \octave.)

%valitsin \scilab:n t�h�n kirjoitukseen etup��ss� siksi, ett� 
%siin� on mukavampi k�ytt�liitym�. Lukija voi ladata itselleen kumman haluaa,
%kirjoituksen esimerkit olen testannut \scilab:lla %(ja \matlab:lla).

%Saksankielinen \scilab-opas:\\
%\verb_ http://www.scilab.org/publications/JARAUSCH/PinconD.pdf_
Ohjelman voit ladata itsellesi osoitteesta\\
\verb_http://www.scilab.org/_ . K�ytt�ohjeita on ranskan, saksan
ja englanninkin kielell� saatavissa:\\  
\verb_http://www.scilab.org/publications/_

%\verb+http://www.scilab.org/publications/index_publications.php?page=books.html+



\subsubsection*{Lyhyt Scilab/Matlab-k�ytt�ohje}

\scilab-ohjelman opiskelun voit aloittaa jostakin \matlab-oppaasta,
suomenkielinen \matlab-k�ytt�ohje on viitteiss�.

Kun \scilab\/ k�ynnistet��n, avautuu komentoikkuna. T�h�n voidaan kirjoittaa
ohjelman tuntemia komentoja, jotka ohjelma tulkitsee ja toteuttaa samantien
(tai antaa virheilmoituksen).
Tarkoituksena on antaa pieni� maistiaisia ohjelman k�yt�st� senverran, ett�
esitt�m�mme esimerkit voidaan suorittaa ja ymm�rt��. Tarkoitus on innostaa
lukijaa omiin kokeiluihin ohjelmien avustus- ja dokumentointij�rjestelmien ja
 viitteiss� mainittujen l�hteiden avulla.
Voit aloittaa kirjoittamalla jotain t�m�ntyylist� \scilab- (tai \matlab-) 
komenoikkunaan:
\begin{verbatim}
// Ensimm�inen Scilab/Matlab-istunto 
// Scilab-kommentti: //  Matlab-kommentti: %
u=[1 2 3 4]    // Luodaan vektori u  
v=[-2 2 -1 5 ]  // samoin toinen vektori v
w=-u+2*v // Lineaarikombinaatio sijoitetaan
        // muuttujaan w
u.*v   // Kerrotaan vektorin vastinkomponentit
u*v'   // u:n ja v:n sis�tulo.
\end{verbatim}


%\begin{itemize}
%\item[]
\textbf{Selityksi�:}

1. Lineaarikombinaatio tarkoittaa muotoa \\
$c_1\, \v_1 + \c_2\,\v_2 + \ldots + c_k\,\v_k$ olevaa summaa.

2.
Viimeist� edellinen rivi: \texttt{u.*v} on pisteitt�in eli vastinalkioittain
tapahtuva kertolasku. Se ei siis ole varsinainen vektorilaskutoimitus, mutta
monessa yhteydess�, erityisesti vektorilausekkeissa tuiki tarpeellinen.

%\item[]
3.
Viimeinen rivi on erikoistapaus matriisikertolaskusta, siit� enemm�n
tuonnempana.
%\end{itemize}

\textbf{Ohjelman k�yt�n k�yt�nn�n vihjeit�}

%Jos kirjoitat suoraan komentoikkunaan, on varsin turha kirjoitella 
%kommentteja,
%tulkki ei niist� piittaa. 
Yll� olevia ja muutamia vastaavia kirjoitettuasi 
ei kannata jatkaa ty�skentely� suoraan komentoikkunassa, koska ty�si h�vi��
taivaan tuuliin. Ainoa, mit� siin� voit tehd�, on selata komentopuskuria
nuoli-yl�s-n�pp�imell� ja editoida komentorivi�.

Sensijaan kannattaa avata otsikkopalkista \texttt{Editor} ja kirjoittaa
komentoja kommentteineen editori-ikkunaan. \scilab\/ tarjoaa varsin k�tev�n
toimintatavan: Maalataan halutut komentorivit ja painetan \texttt{CTR-Y}
tai valitaan otsikkorivilt� \texttt{Execute}. Kyseiset rivit siirtyv�t v�litt�m�sti tulkille suoritettaviksi. 
%T�m� on jopa hiukan vaivattomampaa kuin \matl:iin verrattuna. 
\\
Toinen mahdollisuus on k�ytt�� omaa mielieditoria, kuten \emacs,
\notepad, \wordpad, ym. ja leikata/liimata editorista komentoja 
\scilab-komentoikkunaan. T�m� vaatii yhden n�pp�inpainalluksen enemm�n,
mutta on ehk� tutumpana turvallisempaa.

%Varoitus: Kun olet maalannut rivit ja painat {\sc enter}:i� editorissa,
%rivit pyyhkiytyv�t pois. Liimaus-operaatio, esim. \texttt{CTR-V} pelastaa
%tilanteen. 
%Kun siirryt editorista komentoikkunaan, klikkaa hiirell� tuohon ikkunaan
%ja paina vasta sitten {\sc enter}.
%Kannattaa t�ss� (niinkuin muissakin editoreissa) tallettaa ty� tihein v�lein 




 


\subsection*{Kuvia ja musiikkia vektoreilla}

Siirryt��n nyt katsomaan vektorik�sitteen erilaisia ilmenemismuotoja. 
N�hd��n, ett� yleistys uusiin ulottuvuuksiin ei ole
pelkk�� matemaatikkojen harjoittamaa esteettist�, maailmalle vierasta
abstrahointih�pin��, vaan se avaa niin silmi� kuin korviakin n�kem��n
ja kuulemaan uusilla tavoilla. Viimemainitusta olkoon esimerkkin� 
digitaalinen ��nenen k�sittely, josta itse kukin voi nauttia {\sc cd}-levyj�
ja ��nitiedostoja kuunnellessaan. Ensinmainitusta voitaisiin vastaavasti
ottaa digitaalinen kuvank�sittely, mutta asiaa harkittuani valitsin
t�ll� kertaa ��nen. Toki kuviakin sent��n katsellaan funktioiden kuvaajien 
muodossa.


%---------- T�h�n pari lent�v�� lausetta -------------
%Analyyttinen geometria, fysiikka, ajasta riippuvat systeemit...
%Matriisilaskennan yhteydess�... jotakin ...

%Tietokonegrafiikka, ��nen ja kuvank�sittely
%-------------------------------------------------------

%Esitell��n matemaattista ohjemistoa...

%Ajatellaanpa monikumion piir�mist� koordinaatistoon. T�ll�in piiret��n k�rkipisteet $\left(x_i,y_i\righ)$ ja niit� yhdist�v�t janat. 
%\matlab/\scilab:ssa annetaan \texttt{plot}-komennolle argumentiksi
%$x-$vektori ja $y-$vektori. 
%Jos haluttaisiin piirt�� neli�, jonka m��r��v�t pisteet $(0,0),(1,0),(1,1),
%(0,1),$ muodostettaisiin vektorit $x$ ja $y,$ tyyliin:

%\begin{verbatim}
%x=[0 1 1 0 0];
%y=[0 0 1 1 0];
%plot(x,y)
%\end{verbatim}


%s��nn�llinen n-kulmio, voi

Funktion $f$ kuvaajan piirto k�sipelill� tapahtuisi yksinkertaisimmillaan 
niin, 
ett� laskettaisiin tasav�lisess� pisteist�ss� $x_1, x_2,\ldots, x_n$
funktion arvot $y_i = f(x_i), i=1,\ldots,n,$ py�r�ytelt�isiin kyn�ll�
pisteet koordinaatistoon ja yhdistett�siin per�kk�iset pisteet jananp�tkill�.

Juuri n�in tekee \texttt{plot-}funktio \matl/\scilab:ssa.
Peruskutsu on \texttt{plot(x,y),} miss� $x$ ja $y$ ovat samanpituisia
vektoreita. Ohjelmissamme on funktio \texttt{linspace}, jolla saadaan
aikaan tasav�linen $x-$pisteist�.
Seuraavassa esimerkiss� muodostetaan $x-$vektori jakamalla v�li 
$\left[-\pi,\pi\right]$ $15:$een osaan, ja sitten $y-$vektori laskemalla
$\sin-$funkion arvot $x-$pisteiss�. 
Kaikki matemaattiset funktiot n�iss� vektoriohjelmissa toimivat niin, 
ett� sovellettaessa funktiota
($x-$)vektoriin, tuloksena saadaan ($y-$)vektori, joka koostuu vastaavista
funktion arvoista. T�m� tekee k�yt�n hyvin vaivattomaksi.\\
\textbf{Pari pient�, hy�dyllist� yksityiskohtaa:}\\
1. Puolipiste (;) komennon per�ss� est�� tulostuksen ruudulle. \\
2.
Kummassakin ohjelmassa on erikoissymboleja
joillekin vakioille, $\pi$ on \matlab:ssa \texttt{pi} ja \scilab:ssa 
\verb_%pi_. \\ 
Toimimme t�h�n tapaan:
\begin{verbatim}
pi=%pi   // Matlab-yhteensopivuuden vuoksi
x=linspace(-pi,pi,15); y=sin(x);
[x' y'] // xy-arvojen taulukko
clf()   // Grafiikkaruudun pyyhkiminen 
plot(x,y); // Pisteet ja murtoviiva
plot(x,y,'o') // Pelk�t pisteet
\end{verbatim}
Piirret��n tarkemmin jakamalla v�li $50:$een osaan. Piirret��n samaan
kuvaan punaisella v�rill�. N�hd��n, ett� t�ss� on riitt�v� m��r�
"n�ytteit�"\/ sini-funktiosta ao. v�lill�, jotta silm� n�kee kuvaajan
kauniisti kaartuvana sinik�yr�n�.

\begin{verbatim}
x=linspace(-pi,pi,50); y=sin(x);
plot(x,y,'r') // 'r' viittaa v�riin "red"
\end{verbatim}

\begin{center}
\includegraphics[width=8cm]{apiola/sini.eps} 

\textsc{Sinin kuvaaja}, n�ytteit� 15 ja 50

\end{center}



\subsubsection*{Musiikkia vektoreilla}

Edell� n�imme, miten vektoreilla voidaan saada aikaan silm�nruokaa vaikkapa
sini-funktion kuvaajan ihastelemiseksi. Saataisiinko my�s korvin kuultavaa?
Jatkakaamme sini-funktion parissa.

Peruss�velen� tarkastelkaamme yksiviivaista a-s�velt�. Kyseess� on siniaalto,
jonka v�r�htelytaajuus on $440$ Hz, ts. $440$ v�r�hdyst� sekunissa.
V�r�htelyn kulmataajuus on t�ll�in $2\,\pi\,440$ radiaania sekunnissa ja sit�
esitt�� siniaalto 
$y(t)=\sin(2\,\pi\,440\,t).$

Kun t�llaista siniaaltoa digitoidaan, t�ytyy n�yttenottotaajuuden olla 
mielell��n selv�sti enemm�n kuin $2\cdot 440.$
Otetaan varman p��lle: $10\,  000.$ Seuraavassa istunnossa jaetaan ensin
$1$ sekunnin aikav�li $(0,1)$ $10\, 000:$een osaan, piirret��n $100$ ensimm�ist� kuvaajan pistett� vastaten $1/100$ sekunnin aikaa ja sitten kuunnellaan.
Funktio \verb_sound_ on samaa korvalle kuin \verb_plot_ on silm�lle.
\begin{verbatim}
a1=2*%pi*440;  // Scilab
t=linspace(0,1,10000);y2=sin(a1*2*%pi*t);
clf();plot(t(1:100),y2(1:100))
sound(y2,10000);
\end{verbatim}
Koska lukija ei lehden sivulta saa ��nt� kuuluviin, niin j�tett�k��n
kuvakin tulostamatta. %("Miehen logiikkaa"?)


%Kuunnellaanpa: \verb_ sound(y2,10000);_
%\begin{verbatim}
%\end{verbatim}

%Lyhyesti sanoen: Ohjelmissamme oleva \texttt{sound-}funktio on samaa 
%korvalle, mit� 
%\texttt{plot} on silm�lle.

\subsubsection*{Sointuja}


Esittelemme muutaman perusidean ja ty�kalun
digitaalisen ��nenk�sittelyn alalla.
Muodostetaan yksiviivaisen oktaavin nuottien taajuudet ja sijoitetaan
muuttujiin

\begin{verbatim}
  c=261.6;d=293.7;e=329.6;f=349.2;
  g=392;a=440;h=493.9;   
\end{verbatim}


%\begin{verbatim}
%  p2=2*%pi;
%  c=261.6*p2;d=293.7*p2;e=329.6*p2; 
%  f=349.2*p2;g=392*p2;a=440*p2;h=493.9*p2;   
%\end{verbatim}   

Jospa soittaisimme sekunnin verran intervallia \textit{kvintti}, joka voidaan
toteuttaa vaikkapa viulun d- ja a-kieli� yht�aikaa soittamalla. K�ytet��n
n�ytteenottotaajutta \texttt{nt=8192}.
Intervalli saadaan laskemalla v�r�htelyjen summa, ts. laskemme n�ytevektorit
yhteen. Skaalataan jakamalla $2:$lla, koska \verb_sound_-funktio haluaa
v�r�htelyn arvoalueen ($y-$arvot) v�lille $\left[-1,1\right].$

\begin{verbatim}
nt=8192; pi=%pi; t=linspace(0,1,nt);
kvintti=0.5*sin(2*pi*d*t)+0.5*sin(2*pi*a*t);
sound(kvintti,nt); 
clf();plot(t(1:200),kvintti(1:200))
\end{verbatim}
%sound(sin(d1*t),nt); 
%sound(sin(a1*t),nt);halt();sound(kvintti,nt)

\begin{center}
\includegraphics[width=8cm]{apiola/kvintti.eps} 
\textsc{Kvintti:} Viulun d- ja a-kielet soivat.
\end{center}

Raottaaksemme ovea hiukan signaalink�sittelyn matemaattisten perusty�kalujen
suhteen, otamme esimerkin ns. nopeasta Fourier-muunnoksesta, FFT ("Fast Fourier Transform"). Kyseess� on
v�line, joka on mainittu joissain arvioissa 1900-luvun 
merkitt�vimpiin matemaattisiin algoritmeihin kuuluvaksi.
%ennenkaikkea sovellusten kannalta katsottuna. 
%(Mainittakoon, ett� idea on per�isin jo Gaussilta, mutta keksinn�n merkitys
%ennen tietokoneaikaa ei tullut n�kyviin.) 
Paino on sanalla "nopea", joka on
mahdollistanut reaaliaikaiset digitaalisen signaalink�sittelyn sovellukset.

T�ss� yhteydess� emme selit�, mit� Fourier-muunnos tarkoittaa. Katsomme edellist� esimerkki� jatkaen, mink�laiseen maailmaan tuo munnos meid�t vie.

\matl/\scilab:ssa on funkio \texttt{fft}, jota k�yt�mme "mustana laatikkona".
T�m� muunnos toimii kaikkein tehokkaimmin vektoreille, joiden pituus on jokin
$2:$n potenssi. N�ytteenottotaajuutemme valittiin siit� syyst� luvuksi $8192,$
kun t�m� sattuu olemaan $2^{13}.$
Mainittakoon, ett� {\sc cd}-levyn musiikin n�ytteenottotaajuus on $44\, 100$
n�ytett� sekunnissa. (T�m� ei ole $2:$n potenssi, syy on se, ett� 
$2^{15}=32768$ on liian pieni, jotta korkeimmat yl�-��net eiv�t v��ristyisi
ja $2^{16}=65\,536$ on aivan turhan suuri.)
%T�ll� saadaan kohtuullinen toisto jopa
%kuuloalueen rajoilla, $20 000$ Hz oleville yl�-��nille.
% Lay s. 278 
 
Suoritetaanpa nyt kvintti-vektorillemme Fourier-muunnos \scilab:n 
\texttt{fft}-funktiota k�ytt�en.
\begin{verbatim}
Fkvintti=fft(kvintti);
clf();plot(Fkvintti(1:500))
\end{verbatim}

\begin{center}
\includegraphics[width=8cm]{apiola/fft.eps} 
\textsc{Kvintin Fourier-muunnos} Viulun d- ja a-taajuudet erottuvat.
\end{center}

Kahden siniv�r�htelyn kuva on muunnettu "taajuustasoon". Vaaka-akselilla on
taajuudet ja pystyakseli edustaa kunkin taajuuden tehoon viittaavaa arvoa.
N�hd��n, ett� kvintin taajuuskuvassa kaikki muut taajuudet ovat nolla-tehoisia,
paitsi  $\sim 293$ Hz ja  $\sim 440$ Hz. 

K��nteismuunnoksella p��st��n takaisin. Se on niinik��n suoraan saatavilla
ohjemissamme nimell� \texttt{ifft}. Jos haluaisimme viulun kieli� vaikka
v�h�n viritt��, se tapahtuisi helposti taajuustasossa, sitten palaisimme
k��nteismuunnoksella
aikatasoon soittamaan puhdasta kvintti�.

%\subsubsection*{Stemmaharjoituksia vektorisoittimella}
\subsubsection*{Tuiki tuiki t�ht�nen -- Halleluja}

Tehd��n pieni viihteellinen/taiteellinen sivuhypp�ys, kun meill� nyt on koko nuotisto n�peiss�mme.
Kirjoitetaan vektori \texttt{tuiki}, jossa on laulun nuotit. 
Oletetaan, ett� edell� olevat nuottien taajuusarvot on sijoitettu muuttujiin
$c,d,\ldots $
\begin{verbatim}
tuiki=[c,c,g,g,a,a g f f e e d d];
tuiki=[tuiki c g g f f e e d];//loistat vaan..
\end{verbatim}
%tuiki=[tuiki g g f f e e d c c g];
%tuiki=[tuiki g a a g f f e e d d c];
Yksinkertaisella ohjelmasilmukalla voimme nyt soittaa suositun lastenlaulun.
Komento \texttt{halt()} pys�ytt�� ohjelman siihen saakka, kunnes painetaan 
jotain n�pp�int�. 
%N�in voimme s��dell� rytmi� n�pp�imist�lt� ja melodian
%saamme automaattisesti. Toki voidaan rakentaa oikea rytmikin mukaan ja
%j�tt�� pys�ytykset pois.
\begin{verbatim}
   t=linspace(0,1,8192);
   for k=1:length(tuiki)
     halt()
     y=sin(tuiki(k)*t);sound(y,8192)   
   end;
\end{verbatim}
Jos laulat kuorossa, etk� soita sujuvasti mit��n instrumenttia, voit t�ll�
menetelm�ll� harjoitella helposti omaa stemmaasi, otin sen itse k�ytt��n
n�iden kehittelyjen seurauksena.

Jotta p��sisimme k�siksi hiukan vaativampaan taidenautintoon, mainittakoon, ett� \matlab:ssa on digitoituna Ote \emph{H�ndelin} Messias-oratorioon kuuluvasta Halleluja-kuorosta. Kas n�in:
\begin{verbatim}
 >> load handel
 >> sound(y)  % Halleluja halleluja ...
              % Ei Hard Rock!
\end{verbatim}
Katsotaan hiukan tuota Halleluja-vektoria:
\begin{verbatim}
>> length(y)  % Vektorin pituus
ans =
       73113

>> y(1:5)    % 5 ensimm�ist� komponenttia

ans =
         0
   -0.0062
   -0.0750
   -0.0312
    0.0062  % Ihan totta, pelkist� tylsist� 
            % numeroista koostuva vektori!

>> plot(y) 
\end{verbatim}
\begin{center}
\includegraphics[width=8.5cm]{apiola/handel.eps}\\
%\includegraphics[width=8cm]{apiola/handel2.eps} 
\textsc{H�ndelin Messias: Halleluja-kuoro}
\end{center}

\subsection*{Lineaarisia yht�l�ryhmi�}

Palatkaamme korkealentoisista taidenautintojen sf��reist� takaisin 
maanpinnalle arkiseempaan aherrukseen.\\
Matriisilaskennan ensimm�inen ja t�rke� k�ytt�a�lue on lineaaristen
yht�l�ryhmien teoria ja rat\-kai\-su\-me\-ne\-tel\-m�t.
%T�t� voidaan pit�� lineaarialgebran ``staattisena'' sovellusalueena.
%T�ll�in esimerkiksi haetaan jonkin mekaanisen rakennelman 
%taspainoasemaa.

En t�ll� kertaa paneudu t�h�n aiheeseen muuten kuin 
selitt�m�ll� aivan lyhyesti ratkaisutekniikan p��periaatteet samalla
johdatellen matriiseihin.

%Uutta on teht�v�n muotoilu matriisimuodossa, josta saadaan
%ensi kosketus matriisien maailmaan.

%Johdattelemme nyt lukijaa matriiseihin lineaaristen yht�l�ryhmien
%puitteissa. Kyse on paljolti koulussa opitun ratkaisutekniikan
%kertausjaksosta.

%Koulumatematiikassa k�sitell��n lineaarisia yht�l�ryhmi�, 
Katsotaanpa esimerkki�:

$$
\begin{cases}
\ \ \ \ x_{1}  -  2\,x_{2}  +  x_{3}  \ \ =\ \  0 \\ 
\ \ \ \ \ \ \ \ \ 2\,x_{2}  -  8\,x_{3} \ \ = \ \ 8 \\ 
-4\,x_{1}  +  5\,x_{2}  +  9\,x_{3}=-9 
\end{cases} 
$$

T�llaisia yht�l�ryhmi�h�n ratkaistaan niin, ett� yht�l�it� muokataan
operaatioilla, joissa yht�l�ryhm�n ratkaisujoukko pysyy samana. N�it�
operaatioita ovat yht�l�iden yhteenlasku, 
vakiolla kertominen ja yht�l�iden j�rjestyksen vaihtaminen.

Koulussahan eliminointitekniikkaa harjoitellaan, mutta tiet��kseni
ei esitet� systemaattista tapaa, \emph{Gaussin eliminaatiomenetelm��}.
Siin� 
p��dyt��n aina
"yl�kolmiomuotoon", josta yht�l�ryhm�n ratkaisujen olemassaolo- ja 
lukum��r�kysymykset
voidaan selvitt�� ja samalla saada ratkaisut lasketuksi silloin, kun niit�
on. 

%Menettely� kutsutaan \emph{Gauss'n eliminaatiomenettelyksi}, ja se on
%varmasti ainakin yll� olevan tyyppisess� tapauksessa tuttu koulukurssista.

%K�yd��n se kertauksen vuoksi l�pi ja samalla johdutaan luontevasti\/  
% \emph{matriisin} k�sitteeseen.
%Valaisen/kertaan asiaa yhdell� esimerkill�.

Huomataan, ett� yht�l�ryhm� on annettu, kun kaikki tuntemattomien kertoimet
ja tunnetut oikean puolen luvut on annettu. Niinp� kaikki yht�l�ryhm�� koskeva
informaatio sis�ltyy vasemmanpuoleiseen "matriisiin", eli lukutaulukkoon.
Merkit��n symbolilla ($\sim$) yht�l�ryhmi� edustavien
matriisien ekvivalenssia, eli ratkaisujoukkojen samuutta.

$$\left[ 
\begin{array}{rrrr}
1 & -2 & 1 & 0 \\ 
0 & 2 & -8 & 8 \\ 
-4 & 5 & 9 & -9
\end{array}
\right] \sim 
 \left[ 
\begin{array}{rrrr}
1 & -2 & 1 & 0 \\ 
0 & 2 & -8 & 8 \\ 
0 & -3 & 13 & -9%
\end{array}%
\right] 
 $$

% jossa on yht� monta
%rivi� kuin ryhm�ss� on yht�l�it� ja yksi sarake enemm�n kuin tuntemattomia.
%(Huomaa, ett� yleisess� tapauksessa yht�l�iden ja tuntemattomien lukum��r�n
%ei tarvitse yhty�.)

%Tuntemattomien kertoimet (my�s nollat) kirjoitetaan samoille kohdille kuin ne 
%esiintyv�t yht�l�ryhm�ss� ja viimeiseksi sarakkeeksi otetaan oikean puolen 
%tunnettujen lukujen muodostama "pystyvektori".

Kirjoitusvaivoja voidaan hiukan s��st�� kohdistamalla sallitut 
muokkausoperaatiot ("Gaussin rivioperaatiot") suoraan t�h�n matriisiin ja mik� 
t�rke�mp��, t�ll�in menettelyn muuntaminen tietokoneohjelmaksi k�y 
vaivattomasti.

Tavoitteena on saada nollat p��l�vist�j�n alapuolelle. Ensimm�isess� sarakkeessa on jo yksi $0$, toinen saadaan n�in: \textbf{Kerrotaan $1.$ rivi $4:$ll� ja 
lis�t��n kolmanteen}, vain kolmas rivi muuttuu. N�in p��dyt��n oikeanpuoleiseen
matriisiin. \\
Nyt voidaan 2. rivi (yht�l�) jakaa $2:$lla ja sen j�lkeen kertoa $3:$lla ja lis�t� kolmanteen. 
N�in p��dyt��n matriisiin



\begin{tabular}{ccc}

$\left[
\begin{array}{rrrr}
1 & -2 & 1 & 0 \\ 
0 & 1 & -4 & 4 \\ 
0 & 0 & 1 & 3
\end{array}
\right] $ &$\leftrightarrow$ & $\begin{cases}
             x_1 -2\, x_2 + x_3 = 0\\
             \ \ \ \ \ \ \ x_2 -4\, x_3 = 4\\
             \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x_3 = 3
            \end{cases}  
              $
\end{tabular}

Eliminaatiovaihe on valmis, p��dyimme yl�\-kol\-mio\-muo\-toon. 
Koska $x_3:$n kerroin
$\neq 0$, saamme yksik�sitteisen ratkaisun ratkaisemalla alhaalta yl�sp�in 
edeten kolme erillist� ensimm�isen asteen yht�l��. N�emme, ett� saadaan 
yksik�sitteinen ratkaisu, olipa oikean puolen "pystyvektori"\/ valittu miten 
hyv�ns�.
T�ss� tapauksessa saadaan alimmasta: $x_3=3$, sitten toisesta: $x_2=16$ ja
vihdoin ensimm�isest�: $x_1=29.$

Gaussin eliminaatiomenettely voidaan n�hd� kaksivaiheisena prosessina:
1) Eteenp�in eliminointi ("forward elimination") ja takaisinsijoitus ("backsubstitution"), j�lkimm�inen siin� tapauksessa, ett� $1.$ vaihe lupaa ratkaisuja 
olevan.



%Etenem�ll� alhaalta yl�sp�in, saadaan ratkaisu per�kk�isill� ensimm�isen
%asteen yht�l�n ratkaisuilla. T�t� vaihetta nimitet��n takaisinsijoitukseksi,
%"back substitution".

%Tarkoitukseni ei ole kirjoittaa t�ss� oppikirjaa yht�l�ryhmien teoriasta.

%Lis�� tietoa on lopussa olevissa viitteiss�.

% --- Siirr� n�m� loppuun ----

%Viittaan omiin luentoihini syksylt� 2006 TKK:lla, alkaen sivulta\\

%\verb_kalvoprujutluku1.pdf_
%ja lopussa mainittuihin oppikirjoihin. Googlella on mahdollisuus tehd�
%hyvi� l�yt�j� mm. hakusanoilla \emph{matriisi, matrix, vector, lineaarialgebra,
%linear algebra}.

%T�ss� pari otetta muutenkin hyv�st� matematiikan sivustosta
%\begin{verbatim}
%http://www.math.montana.edu/frankw/ccp/
%multiworld/virtual/Vectors1/learn.htm
%\end{verbatim}

%\begin{verbatim}
%http://www.math.montana.edu/frankw/ccp/
%multiworld/virtual/Vectors2/learn.htm
%\end{verbatim}

\subsection*{Laskentaa matriiseilla}

Matriisilla tarkoitetaan yksinkertaisesti suorakulmion muotoista lukutaulukkoa.
Jos rivej� on $m$ ja sarakkeita $n$ kappaletta, puhutaan $m\times n-$matriisista.

Merkit��n edell� olevassa esimerkiss� \\$A:$lla yht�l�ryhm�n kertoimien
muodostamaa \\ 
$3\times 3-$matriisia, joka siis koostuu edell� olevan matriisin 
$3:$sta ensimm�isest� sarakkeesta.
$$A=\left[ 
\begin{array}{rrr}
1 & -2 & 1  \\ 
0 & 2 & -8  \\ 
-4 & 5 & 9 
\end{array}
\right] $$

Otetaan my�s k�ytt��n vektorit $\x=\left[x_1,x_2,x_3\right]^T$ ja
$\b=\left[0,4,3\right]^T$. Yl�indeksi $^T$ viittaa ns. 
\emph{transposiin}, joka tarkoittaa t�ss�, ett� vektorit ajatellaan
"pystyvektoreiksi", eli kyseess� on oikeastaan $3\times 1-$matriisi.
\footnote{Vektorik�sitteen kannalta on yhdentekev��, kirjoitetaanko
koordinaatit pysty- tai vaakasuoraan (tai vaikka S:n muotoon tms.), kunhan
komponenttien j�rjestys on selv�. Matriisilaskennan kannalta on huomattavaa
laskentateknist�\/ hy�ty� apuk�sitteist� pysty- ja vaakavektori.}

M��rittelemme {\bf matriisi kertaa vektori}- tulon niin, ett� yht�l�ryhm�mme
voidaan kirjoittaa muotoon $A\,\x = \b.$
Siten $A\,\x = $

$$ \left[ \begin {array}{ccc} 1&-2&1\\\noalign{\medskip}0&2&-8
\\\noalign{\medskip}-4&5&9\end {array} \right]  \left[ \begin {array}
{c} x_{{1}}\\\noalign{\medskip}x_{{2}}\\\noalign{\medskip}x_{{3}}
\end {array} \right] = \left[ \begin {array}{c} x_{{1}}-2\,x_{{2}}+x_
{{3}}\\\noalign{\medskip}2\,x_{{2}}-8\,x_{{3}}\\\noalign{\medskip}-4\,
x_{{1}}+5\,x_{{2}}+9\,x_{{3}}\end {array} \right] 
$$

Toisin sanoen: tulo $A\, \x$ on (pysty)vektori, jonka komponentit
saadaan sis�tuloina $\a_1\cdot \x, \a_2\cdot \x, \a_3\cdot \x,$
kun matriisin $A$ vaakavektoreita merkit��n: $\a_1,\a_2,\a_3.$
Matriisin rivin on oltava yht� pitk� kuin kerrottava sarakevektori, ts.
matriisin sarakkeiden lukum��r�n ja kerrottavan vektorin pituuden on
oltava samoja. Tulosvektorin pituus on sama kuin matriisin sarakkeen
pituus ($=$ rivien lukum��r�).
 
T�h�n saakka esitt�m�mme m��ritelm�t n�ytt�v�t antavan meille ainakin
esteettist� nautintoa, yht�l�ryhm�mme saa muodollisesti hyvin yksinkertaisen
asun: $A\,\x = \b.$

Mik��n ei est�isi k�ytt�m�st� analogiaa tavallisen ensimm�isen asteen
yht�l�n ratkaisulle ja merkitsem�st� yht�l�ryhm�n ratkaisua jakolaskuun
viittaavilla tavoilla:

$$ \x = \frac{\b}{A} = A^{-1}\b . $$

Jakolaskumuoto ei ole yleisess� k�yt�ss� matemaattisena merkint�tapana, sensijaan j�lkimm�inen
muoto, jossa ratkaisu esitet��n "k��nteismatriisilla"\/ kertomisena,
on matriisilaskennan arkip�iv��. Mik��n ei toki est� k�ytt�m�st� jakolaskuasymboliikkaa ainakaan tietokoneohjelmassa. N�in onkin tehty mm. \matl/\scilab:ssa:

Esimerkkiyht�l�ryhm�mme ratkaistaisiin n�in:

\begin{verbatim}
-->A=[1 -2 1; 0 2 -8;-4 5 9]
 A  =
    1.  - 2.    1.
    0.    2.  - 8.
  - 4.    5.    9.

-->b=[0;8;-9]
 b  =
    0.
    8.
  - 9.

-->x=A\b // "matriisilla A jako"
 x  =
    29.
    16.
    3.
// Tarkista kertomalla: A*x, antaako b:n ?
\end{verbatim} 
%-->A*x   // Tarkistus, kyll� vaan: A*x=b !
% ans  = 
%    0.
%    8.
%  - 9.
%\end{verbatim} 


Jos kyseess� olisi lukuja ($1\times 1$-matriiseja) koskeva yht�l�,
olisi yht�l�n ratkaisun eli jakolaskun onnistumisen ehtona 
$A\neq 0.$ Yht�l�ryhm�n tapauksessa matriisia $A$ koskeva ehto on
juuri se, johon Gaussin eliminaatiomenettely  johtaa.
Ehto voidaan lausua monessa muodossa, joiden esittelyyn emme t�ss� 
ryhdy. 


%Voitaisiinko yht�l�ryhm�n ratkaisu esitt�� tavallisen ensimm�isen
%asteen yht�l�n tavoin jonkinlaisena jakolaskuna 
%jollain sopivalla matriisia $A$ koskevalla ehdolla (vrt. luvuilla
%pit�� jakajan olla $\neq 0.$)

%Vastaus on kyll�, matriisia koskeva ehto voidaan esitt�� monella yht�pit�v�ll� tavalla, oikea merkint� on $\x = A^{-1}\b,$ miss� $A^{-1}$ tarkoittaa
%ns. k��nteismatriisia.

\textbf{Matriisitulo yleisesti}

Osaamme muodostaa tulon $A\,\b,$ kun $\b$ on vektori, jonka pituus
\footnote{Matriisilaskennassa puhutaan usein vektorin "pituudesta", kun oikeasti tarkoitetaan dimensiota.}
on sama kuin matriisin rivin pituus (ts. sarakkeiden lukum��r�).
Jos vaikka $A$ on $2\times 3-$matriisi ja $\b$ on $\R^3:$n vektori, niin

$$A\,\b = \begin{bmatrix}a_{1 1}& a_{1 2} & a_{1 3}\\
                  a_{2 1}& a_{2 2} & a_{2 3}
           \end{bmatrix}
    \begin{bmatrix}
            b_1 \\
            b_2 \\
            b_3
        \end{bmatrix}
            =
       \begin{bmatrix}
         \a_1 \cdot \b \\
         \a_2 \cdot \b \\
         \a_3 \cdot \b 
        \end{bmatrix},
$$
miss� $\a_i$ tarkoittaa $A-$matriisin rivivektoria numero $i.$

Matriisitulo $A\,B$ voidaan nyt m��ritell� soveltamalla tuloa
$A\,\b$ kuhunkin $B-$matriisin sarakkeseen ja latomalla n�in saadut
sarakevektorit vierekk�in. Matriisin $A$ rivin on oltava samanpituinen kuin
$B:$n sarake. Jos $A$ on $m\times n$ ja $B$ on $n\times p,$ niin $C=A\,B$
on $m\times p.$ Erityisesti neli�matriiseja voidaan aina kertoa kesken��n
ja tuloksena on samankokoinen neli�matriisi.

\textbf{Matriisialgebraa}

Samankokoisille matriiseille voidaan m��ritell� yhteenlasku vastinalkioittain
aivan samoin kuin vektoreilla. Samoin m��ritell��n luvun $c$ ja matriisin tulo
kertomalla kukin matriisin alkio $c:$ll�. Samat laskus��nn�t ovat voimassa.
(Itse asiassa ($m\times n$)-matriiseja voidaan n�it� laskutoimituksia ajatellen
pit�� $m\,n-$ulotteisina vektoreina.)

Kun otamme kertolaskun mukaan, puhumme jatkossa yksinkertaisuuden vuoksi
vain neli�matriiseista, jolloin matriisit ovat aina kertomiskelpoisia.

Kaikki vektorilaskennasta tutut laskus��nn�t p�tev�t, mutta miten toimivat laskus��nn�t, kun mukaan otetaan matriisikertolasku. Osoittautuu, ett� yht� poikkeusta lukuunotamatta kaikki
tutut algebran s��nn�t ovat voimassa. Niinp� liit�nn�isyys ja osittelulait 
p�tev�t.
Siis $A(B\,C)=(A\,B)C$, $A(B+C)=A\,B + A\,C,$ jne. Todistukset seuraavat
matriisitulon m��ritelm�st� suoraviivaisesti, mutta eiv�t ole samalla tavoin 
itsest��nselvyyksi� kuin vektorien laskuominaisuudet.

\textbf{Ent� p�teek� vaihdannaisuus}, eli onko $A\,B = B\,A?$

T�m� voidaan heti osoittaa vastaesimerkill� v��r�ksi. Voit ottaa melkein
mitk� tahansa, vaikkapa $2\times 2-$ matriisit ja kertoa ne kesken��n
molemminp�in. Huomaat, ett� saat eri tulokset. Kokeile vaikka:

$A=\left[ \begin {array}{cc} 1&3\\\noalign{\medskip}-2&5\end {array} \right] 
, \ \ B= \left[ \begin {array}{cc} 1&-1\\\noalign{\medskip}1&-1\end {array}
 \right] 
.$  

$A\,B = \left[ \begin {array}{cc} 4&-4\\\noalign{\medskip}3&-3\end {array} \right]$ ,\quad $B\,A = \left[ \begin {array}{cc} 3&-2\\\noalign{\medskip}3&-2\end {array} \right].$ 

Suorita laskut k�sin! Kokeile my�s \scilab:lla, siin� kertomerkki 
(\texttt{*}) tarkoittaa juuri matriisikertolaskua. kuten edell� jo 
n�imme.

Kenties el�m�si ensimm�isen kerran olet tekemisiss� sellaisen laskentaj�rjestelm�n kanssa, jossa kertolasku ei ole vaihdannainen.

Neli�matriisille $A$ voidaan m��ritell� \textbf{potenssi} aivan kuten luvuille:
$$A^p = \underbrace{A\,A \cdots A}_{p\ \ \text{kertaa}}.$$

\textbf{Teht�v�:} P�teek� neli�matriiseille binomin neli�n kaava? Ellei, niin mihin
muotoon on kirjoitettava:\\ $(A+B)^2 = A^2 + B^2 + \_\_\_\_ $ ?


\subsection*{Dynaamisia systeemej�, Markovin prosesseja}

Monilla sovellusalueilla, kuten ekologiassa, kansantaloudessa,
erilaisissa insin��ritieteiss� mallinnetaan ajan mukana muuttuvaa 
systeemi�. Systeemin tilaa ajanhetkell� $t_k$ kuvatkoon vektori
$\x_k.$ Puhutaan diskreetist� dynaamisesta systeemist�. Yksinkertaisinta
tyyppi� on lineaarinen systeemi, jossa l�hdet��n alkutilasta $\x_0$
ja seuraavaan tilaan p��st��n kertomalla neli�matrisiilla $A.$
T�ll�in $x_1 = A\,\x_0, \x_2 = A\,\x_1, \ldots $, yleisesti:

$$\x_{k+1}= A\, \x_k, k=0,1,2,\ldots $$

Kuten heti n�hd��n, teht�v�lle voidaan kirjoittaa ratkaisukaava: 
$\x_k = A^k \x_0.$  T�ss� yksi syy tarpeeseen oppia keinot, joilla
matriisipotensseja voidaan tehokkaasti laskea. 

Tarkastelemme erityist� tyyppi� olevia matriiseja, ns. 
\emph{stokastisia matriiseja}, joita my�s \emph{Markovin matriiseiksi}
kutsutaan. N�iss� kaikki alkiot ovat ei-negatiivisia ($a_{i j} \geq 0$)
ja sarakesummat ovat $=1.$ T�llaisen matriisin m��r��m�� dynaamista systeemi�
kutsutaan \emph{Markovin prosessiksi}.


\textbf{Eduskuntavaalit}

Aiheen ajankohtaisuuden vuoksi valitsen esimerkin, jossa joudun sotkeutumaan 
puoluepolitiikkaan.
Aineistona k�yt�n {\sc HS:}n sunnuntaina 25.2.07 s. A4 julkaisemia, Suomen Gallupin
ker��mi� puolueiden kannatuslukemia. Lehdess� on julkaistu $9\times 9-$matriisi, jossa riveill� on puolueiden kannatusprosentit.
Matriisin sarakkeet edustavat kannatusmittauksia keskim��rin noin $2:n$ kuukauden
v�lein alkaen helmi-maaliskuusta $2006$. (Sarake 1, Eduskuntavaalien 2003 
tulos, j�tet��n pois.)
Teht�v�n yksinkertaistamiseksi tarkastelen vain kolmen suurimman puolueen
keskin�isi� kannatusosuuksia. Annetusta matriisista valitaan siten $3$ ensimm�ist� rivi� ja kukin sarake jaetaan sarakesummalla. (Voidaan tehd� hyvin
elegantilla matriisilausekkeella \matlab/\scilab:ssa.)

N�in meill� on Gallup-matriisi $G$:

$
\left[ \begin {array}{ccccccc}  0.320& 0.325& 0.325& 0.324& 0.317& 0.314& 0.311\\\noalign{\medskip} 0.313& 0.316& 0.327& 0.331& 0.337&
 0.341& 0.343\\\noalign{\medskip} 0.367& 0.359& 0.348& 0.344& 0.346&
 0.344& 0.346\end {array} \right]. $

Rivit ovat j�rjestyksess� (Kok, Ke, Sd) ja ajat $2/2006 -- 2/2007.$

\textbf{Kysymykset} 1. Voidaanko prosessia kuvata Markovin matriisilla $A$ ? \\
2. Jos voidaan, niin mist� tuo matriisi saadaan?\\
Ohitetaan toistaiseksi n�m� kysymykset ja tempaistaan ns. "hatusta"\/ t�llainen
Markovin matriisi:
$$A=\left[ \begin {array}{ccc}  0.93& 0.02& 0.04\\\noalign{\medskip} 0.03& 0.93& 0.04\\\noalign{\medskip} 0.04& 0.05& 0.92\end {array} \right]$$

Olkoon $\x_0 =\left[k_0,c_0,d_0\right]^T$, k=Kokoomus, c=Keskusta ("center"),
d=Demarit.
Nyt 

$$A\,\x_0 =  \left[ \begin {array}{c}  0.93\,k_{{0}}+ 0.02\,c_{{0}}+ 0.04\,d_{{0}}
\\\noalign{\medskip} 0.03\,k_{{0}}+ 0.93\,c_{{0}}+ 0.04\,d_{{0}}
\\\noalign{\medskip} 0.04\,k_{{0}}+ 0.05\,c_{{0}}+ 0.92\,d_{{0}}
\end {array} \right]=\x_1 =  \left[ \begin {array}{c} k_{{1}}\\\noalign{\medskip}c_{{1}}
\\\noalign{\medskip}d_{{1}}\end {array} \right]$$

Rivi 1 sanoo: $93$\% Kok-kannattajista pysyy, $2$\% Ke-kannattjista ja $4$\%
Sd-kannatajista siirtyy Kok-kannattajaksi. Aivan vastaavasti muut.
Siten $A-$matriisin sarakkeet ilmaisevat sijamuotoa elatiivi (sta/st�)
ja rivit illatiivia (een,uun,hin). Huomaa, ett� sarakesummat ovat $1$
(Jokaisesta siirryt��n jonnekin, mahdollisesti samaan.), mutta
rivisummien ei tarvitse olla 1, voisihan joku puolue ��ritapauksessa vaikka 
romahtaa totaalisesti ja p��ty� $0-$kannatukseen. T�m� n�kyisi matriisissa
ao. puolueen kohdalla nollarivin�.
\\
Matriisimme on varsin "l�vist�j�valtainen", mik� merkitsee voimakasta
puolueuskollisuutta.

N�in jatkaen johdumme Markovin prosessiin  
$$\x_{k+1} = A\, \x_k, k=0,1,2,\ldots$$

Matriisin $A$ "tempaamisesta"\/ todettakoon, ett� siin� on otettu huomioon
l�vist�j�valtaisuus ja lis�ksi tehty kokeiluja ja s��t�j� aineistoon 
nojautuen. Matriisia ei voida ratkaista aineiston perusteella saatavissa
olevasta $9\times 9$- yht�l�ryhm�st�, t�m� ei yleens� tuottaisi Markovin 
matriisia.


Vektoria $\x_0$ voimme kutsua todenn�k�isyysvektoriksi: alkiot ovat ei-negatiivisia ja niiden summa $= 1$. 

Todetaanpa t�rke� perusominaisuus yleiselle $(n\times n)$ Markovin matriisille:
Jos $\x_0$ on todenn�k�isyysvektori, niin samoin ovat 
$\x_1,\x_2,\ldots$. \\ \textbf{Perustelu}:\\
1. Koska kukin $a_{i j}\geq 0,$ ja kukin $x_i \geq 0,$ lasketaan matriisi kertaa vektori-tulossa ei-negatiivisia termej� yhteen ja tulos $\geq 0.$ \\
2. Vektorin $\v$ alkioiden summa on sama kuin sis�tulo (eli matriisitulo)
$\left[1,1,\ldots, 1\right]\v$ (Ajatellaan $\v$ pystyvektorina, kuten yleens�kin.) Markovin matriisin sarakesummat = 1, joten 
$\left[1,1,\ldots, 1\right] A = \left[1,1,\ldots, 1\right], $ ja niinp� $\x_1:$n
alkioiden summa = $\left[1,1,\ldots, 1\right] (A\,\x_0) = 
(\left[1,1,\ldots, 1\right] A)\,\x_0 = \left[1,1,\ldots, 1\right]\x_0 = 1$.\\
T�ss� k�ytimme matriisitulon liit�nn�isyytt�. 

Mit�p� tapahtuu kelpo puolueillemme, saavatko selv�� toisistaan?

L�hdet��n iteroimaan helmikuusta $2006$, ts. valitaan $\x_0=$ G-matriisin ensimm�inen sarake:
Iteroidaan ihan vaan k�sin kirjoitellen ohjelmallemme:

\begin{verbatim}
--> A=[.93 .02 .04;.03 .93 .04;.04 .05 .92];
--> x0=G(:,1)  // G:n 1. sarake
--> x1=A*x0; x2=A*x1; x3=A*x2; x4=A*x3;
--> x5=A*x4;x6=A*x5;x7=A*x6;
--> [x0 x2 x4 x7]

    '2/06'   '6/06   '10/06'  '2/07'
   0.320    0.317    0.315    0.312  'Kok'
   0.313    0.317    0.321    0.325  'Kepu'
   0.367    0.365    0.364    0.363  'Sdp'
\end{verbatim}

Kun verrataan viimeist� saraketta yll� annetun $G-$matriisin viimeiseen sarakkeeseen, n�hd��n, ett� Kokoomus on varsin tarkkaan kohdallaan, Kepu:n ja Sdp:n
v�lill� mallinnuksemme on hiukan liikaa kallellaan j�lkimm�iseen p�in, tosin
ajan kuluessa tuo n�ytt�isi hitaasti korjaantuvan. No, koska matrisiimme n�inkin hyvin ennustaa "oikeita"\/ ennusteita, jatkamme eteenp�in mallia (A-matriisia) muuttamatta.

Miten sitten k�y vaaleissa? T�ll� mallilla ja aineistolla on turha toivoa saatavan mit��n parempaa kuin $G-$matriisin viimeinen sarake.
Joudun t�ss� suhteessa tuottamaan lukijalle pettymyksen, nuo mainiot 
matriisitkaan eiv�t auta meit� ennustamaan tulosta.
Sensijaan voidaan kysy�, mit� tapahtuu pitk�ll� aikav�lill�.\\
Jatketaanpa iterointia, itse asiassa se on hyvin helppoa, koska 
$\x_n = A^n \x_0$ ja matriisipotenssi ohjelmissamme on \verb_A^n_

\begin{verbatim}
-->[x0 (A^50)*x0 (A^70)*x0 (A^80)*x0]
 ans  =
    0.3201    0.3027    0.3025    0.3025
    0.3129    0.3360    0.3361    0.3361
    0.367     0.3613    0.3613    0.3613
\end{verbatim}
Huomataan, ett� viimeist��n $70:$n aikajakson j�lkeen, eli n. $10$ vuoden 
kuluttua prosessi on p��tynyt kiintopisteeseen, josta se ei en�� etene.
Ent� mit� vaikuttaa alkujakauma.
Kokeillaan vaikka %$\x_0=[0.6, 0.3, 0.1]^T.$
\verb_x0=[.6 .3 .1]';_
\begin{verbatim}
-->[x0 (A^10)*x0 (A^30)*x0 (A^50)*x0 (A^80)*x0]
 ans =
    0.6    0.3989    0.3133    0.3038    0.3026
    0.3    0.3143    0.3318    0.3355    0.3361
    0.1    0.2868    0.3549    0.3607    0.3613
\end{verbatim}
\begin{verbatim}
->[x0 (A^10)*x0 (A^30)*x0 (A^50)*x0 (A^100)*x0]
 ans =
  0.6    0.3989    0.3133    0.3038    0.3025
  0.3    0.3143    0.3318    0.3355    0.3361
  0.1    0.2868    0.3549    0.3607    0.3613
\end{verbatim}

Huomataan, ett� aivan "vinossa olevasta"\/ alkujakaumasta p��dyt��n rajalla
\textbf{samaan tasapainojakaumaan}.
Toden totta, Markovin prosessi johtaa (tietyin yleisin lis�ehdoin)
\textbf{samaan kiintopisteeseen}, olipa \textbf{alkujakauma mik� tahansa}.
Mutta miksi? Perustelu voidaan esitt�� hyvin tyylipuhtaasti ominaisarvoteorian
sovelluksena. Sen esittely on pakko j�tt�� johonkin my�hemp��n yhteyteen.
Aihetta voit opiskella alla mainituista l�hteist� sek�
Googlella hakusanoilla
\emph{ominaisarvot, eigenvalues, eigenvectors}.
Kerromme kuitenkin tuloksen: Rajajakauma on suurinta ominaisarvoa ($1$) 
vastaava ominaisvektori todenn�k�isyysvektoriksi normeerattuna.
Annan lopuksi vaihteeksi aidon \matlab-ajon, jossa on t�t� matriisiamme
koskevat ominaisarvo/-vektoriloitsut, jotka paljastavat taikuuden:
\begin{verbatim}
>>  A=[.93 .02 .04;.03 .93 .04;.04 .05 .92];
>> [V,D]=eig(A); 
>> lambda1=D(1,1);v1=V(:,1);
>> lambda1
lambda1 =
    1.0000
>> v1/sum(v1) % ominaisvektorin normeeraus.
    0.3025
    0.3361
    0.3613     
\end{verbatim}


\subsubsection*{Viitteet}

\begin{tehtratk}

\item[1.] David C. Lay
\emph{Linear Algebra and its applications}, $3^{rd}$ ed., Addison Wesley, 2003.

\item[2.] Gilbert Strang
\emph{Introduction to Linear Algebra}, $3^{rd}$ ed., Wellesley-Cambridge Press, 2003.\\
Luentovideot MIT:n sivulla:\\
\verb_http://ocw.mit.edu/OcwWeb/Mathematics/_ \\
\verb_18-06Spring-2005/VideoLectures/index.htm_

%\verb_http://web.mit.edu/18.06/www/Video/video-fall-99.html_

\item[3.] Wikipedia: Historiaa ja yleiskatsaus runsaine viitteineen\\
\verb+http://en.wikipedia.org/wiki/Linear_algebra+

\item[4.] Heikki Apiola\\
\emph{Luentoja TKK:lla syksyll� 2006}\\
\verb_http://math.tkk.fi/opetus/kp3-ii/06/L/_ \\

\item[5.]Matlab/Scilab-kotisivut\\
\verb_http://www.mathworks.com/_\\
\verb_http://www.scilab.org/_

\item[5.] Heikki Apiola--Marko Laine\\
\emph{Lyhyt Matlab-opas}\\
\verb_http://math.tkk.fi/~apiola/matlab/opas/lyhyt/_

\item[6.] Google-hakusanoja: \\
\emph{matriisi, matrix, vector, lineaarialgebra,
linear algebra}.

\emph{}

\end{tehtratk}

%\end{thebibliography}




\end{multicols}
%\end{document}
