\documentclass[finnish,12pt,twocolumn]{article}
\usepackage[finnish]{babel}
\usepackage[latin1]{inputenc}  % ISO Latin 1 -skandit
\usepackage[T1]{fontenc}
\usepackage[dvips]{epsfig}
\usepackage{makeidx,theorem,float}
%\usepackage{amssymb,multicol}
%\usepackage{amstex,amssymb,multicol}
%\usepackage{amsmath}
\usepackage{boxedminipage}
%\usepackage{/home/apiola/tex/skk}
\usepackage{/home/apiola/tex/v2harj}
\usepackage{makeidx,theorem,float}
%\usepackage{/home/apiola/tex/matht}
\include{/home/apiola/tex/defs}

\begin{document}

%\vspace{0.2cm}
%\begin{verbatim}
%\end{verbatim}

\harjoitus{3}{6}{7 -- 9.2.}


$\N$

\subsubsection*{Alkuviikko (AV), ke 7.2.}


\begin{enumerate}

\item

Muodosta seuraaviin datoihin liittyvät interpolaatiopolynomit:
\begin{verbatim}
  (a)  x  7    1    2       (b)   x  3    7    1   2
       y  146  2    1             y  10  146   2   1

  (c) x  3     7    1    2
      y  12   146   2    1 
\end{verbatim}
Laske (a)-kohta Lagrangen menetelmällä sekä (b) ja (c)-kohdat
Newtonin menetelmällä. Huomaa, että aloitettuasi Lagrangella, voit
aivan hyvin jatkaa Newtonilla (vaikka missään kirjassa ei koskaan näin
menetellä, hm ...). 
Ovatko kaikkien polynomien asteluvut sellaisia, kuin odotit?

Huomaa myös: Newtonilla on menetelmiä vähän joka
alueella, tällä ei ole mitään tekemistä yhtälön ratkaisumenetelmän kanssa.)

\item
Olkoot $L_0,L_1,...,L_n$ (erillisiin) pisteisiin $x_0,x_1,...,x_n$
liittyvät {\it Lagrangen kertojapolynomit}.
Osoita, että
$$\sum_{i=0}^n L_i(x)=1 \ \ \forall x .$$ 

Vihje: Mieti polynomin asteluvun ja nollakohtien lukumäärän välistä
suhdetta.


\item
Seuraavassa on taulukoitu funktion $f(x)=\log_{10}(\tan x)$ arvoja:
\begin{verbatim}
      x     1.00   1.05    1.10    1.15
     f(x)   0.1924 0.2414  0.2933  0.3492
\end{verbatim}
Laske tämän taulukon avulla likiarvo $f(1.09)$:lle ja esitä virheelle 
yläraja-arvio interpolaatiovirhekaavaa käyttäen. Vertaa todelliseen
virheeseen.

\item
Annettuna on seuraava data:
\begin{verbatim}
xd:=[seq(1.0+k*0.1,k=0..4)];
yd:= [1.684370, 1.949477, 2.199796, 2.439189, 2.670324]
\end{verbatim}
Rakenna tähän liittyvä vapaa kuutiollinen splini.

Y-arvot ovat itse asiassa funktion \\
$f(x)=\ln ({e^{2\,x}}-2)$ arvoja {\tt xd}-pisteissä. Ne on muuten saatu aikaan
näin: \verb_yd:=map(x->ln(exp(2*x)-2),xd);  _

Approksimoi arvoja $f(1.15)$ ja $f'(1.15)$ splinin ja sen derivaatan avulla
ja vertaa.

Laske vielä ihan huviksesi ``lukitun'' (``clamped'') splinin tapaus
reunaehdoilla $f'(1.0)=2.742245$ ja $f'(1.4)=2.276919$ ja samat asiat
sen avulla.
%(Jos lasket käsin, niin siirrä ihmeessä tämä loppuviikoksi.)

Vihje: Splinin laskemiseksi kannattaa ottaa {\tt ../L/interpolaatio.mws}-
työarkki ja modifioida siinä olevaa ``nautiskeluesimerkkiä''.
Tietysti voit laskea käsinkin, mutta nautintoelämys voi jäädä vaisummaksi.

Kaikissa splinitehtävissä voit myös kokeilla valmista {\tt spline}-funktiota,
mutta tässä ainakin vain tarkistukseksi. 


\item
Muodosta vapaa kuutiollinen splini, joka approksimoi funktiota 
$f(x)=\cos \pi x$, käyttäen solmuja \verb_ xd:=[0, 0.25, 0.5, 0.75, 1.0]_.
Integroi splini ja vertaa arvoon $\int_0^1 \cos \pi x (= 0)$. Vertaa
edelleen splinin derivaatta-arvoja vastaaviin oikeisiin: $f'(0.5), f''(0.5)$.

\end{enumerate}

\subsubsection*{Torstai 8.2}

\begin{enumerate}


\item
Muodosta interpolaatiopolynomi pisteistölle, joka saadaan laskemalla
funktion $\cos (1+x^2)$ arvot tasavälisessä x-pisteistössä, jossa
on 7 pistettä välillä $[0,3]$.% ({\tt xdata=linspace(0,3,7)})
Piirrä samaan kuvaan funktio, datapisteet ja interpolaatiopolynomi.

Arvioi Lagrangen interpolaatiokaavan virhetermin avulla interpolaatiovirheen
yläraja yo. välillä ja vertaa todelliseen.

\item
Annettu data on näyte lentävän ankkalinnun selkäprofiilista. Näytteitä on
otettu tiheämmin alueella, jossa profiili muuttuu voimakkaammin, kuten 
kuvasta näkyy.
\begin{verbatim}
xda:=0.9,1.3,1.9,2.1,2.6,3.0,3.9,4.4,4.7,5.0,6.0,7.0:
xdb:=8.0,9.2,10.5,11.3,12.0,12.6,13.0,13.3,13.6:
yda:=1.3,1.5,1.85,2.1,2.6,2.7,2.4,2.15,2.05,2.1,2.25:
ydb:=2.3,2.25,1.95,1.4,0.9,0.7,0.6,0.5,0.4,0.25:
xd:=xda,xdb: yd:=yda,ydb:
\end{verbatim}
Muodosta (a) interpolaatiopolynomi ja (b) (vapaa) kuutiollinen splini
dataan liittyen.
Jos et arvaa, kumpi antaa paremman kuvan, olet tosi huono arvaamaan.
Laske ja piirrä joka tapauksessa. Mikäli Maple osoittatuu liian hitaaksi,
annetaan ohjeet Matlab-funktioden käyttöön, katsotaan!


\begin{figure}
  \begin{center}
    \leavevmode
     \epsfig{file=hoo.eps, height=5cm, width=7cm}
     \caption{Ankkalintu lennossa}
    \label{fig:newton1-2}
  \end{center}
\end{figure}


\item
Ohjetiedostossa ../H/ohjeita3.html on annettu USA:n väestölaskentadataa 
vuosina $1940$ -- $1990$. Muodosta interpolaatiopolynomi ja laske sen avulla
arviot väkiluvulle vuosina $1930, 1965, 2000, 2010$. 
Havainnollista kuvilla, joissa datapisteet ja interpolaatiopolynomi.
Tiedetään, että vuoden 1930 lukema on $123 203 000$. Mitä arvelet
muiden arvojen tarkkuudesta? (Etsi jostain (Alta Vista) Census 2000-
arvo ja vertaa.)

Tee sama splini-sovituksella (ota vapaat reunaehdot). 



\item %[Pieni tutkielma, sopii 2:lle]
Muistammehan {\it Rungen ilmiön}. Selvittelepä syitä katsomalla
interpolaatiovirheen kaavaa. Tarkoituksena tässä ei ole niinkään
tutkia, miksi juuri Rungen funktio on ongelmallinen, vaan mitä
tapahtuu sen virhekaavan tulotermin takia.

Valitse jokin väli $[a,b]$, jota voit vaihdellakin. (Esim $[-1,1]$ tai
$[-5,5]$. )

(a) Tutki tulotermiä $x$:n funktiona eri $n$:n arvoilla 
kun väli jaetaan tasavälisesti $n$:ään osaan. Missä välin osassa termi
on suurimmillaan ja missä taas pienimmillään? Entä välin ulkopuolella
(extrapolaatio)?

(b) Tee sama, kun käytetään {\em Tsebysev-pisteitä}  \\
$x_k=\frac{a+b}{2} + \frac{a-b}{2} \cos \frac{2k+1}{2n+2}\pi,\ \ i=0,\ldots,n$

Vertaa (a)- ja (b)-kohtaa keskenään.




\item
{\bf Käänteinen interpolaatio} (KRE s. 859, ``Inverse interpolation''.
 Oletetaan, että derivoituvalla funktiolla $f$ on yksi 0-kohta välillä $[a,b]$ ja $f'(x)\ne 0$ 
koko välillä. Funktion nollakohta $s=f^{-1}(0)$.
Eräs idea on approksimoida käänteisfunktiota interpoloimalla.
Tätä varten valitaan pisteet $x_1, \ldots x_n$
väliltä $[a,b]$, lasketaan $y_k=f(x_k), k=1 \ldots n$ ja muodostetaan
interpolaatiopolynomi $p(y)$ niin, että vaihdetaan x- ja y-pisteiden roolit.
Nollakohdan approksimaatio on nyt siis $p(0)$. 
Tietysti käänteisfunktion arvoja voidaan yhtä hyvin approksimoida muissakin
pisteissä.

%Laske tähän perustuen approksimaatio $\arcsin 0.25$:lle interpoloimalla
Laske tähän perustuen approksimaatio $f(x)=e^{-x}-x$:n 0-kohdalle välillä 
$[0,1]$ 
tähän tapaan: Laske taulukko $[x_k,f(x_k)], k=0\ldots n$ (voit ottaa n:n 
vaihdeltavaksi parametriksi). 

Muodosta interpolaatiopolynomi vaihtamalla x:n ja y:n roolit. Sittenpä vaan
lasket sen arvon $0$:ssa. 

Tästä voisi kehitellä iteratiivisen algoritmin. Itse asiassa käänteistä
interpolaatiota käytetään monissa yhtälönratkaisukoodeissa osana koko
ratkaisualgoritmia.


\item
Tasok\"ayr\"a, jolta tunnetaan vain diskreetti pistejoukko, voidaan 
yritt\"a\"a
rekonstruoida splinisovituksella. T\"at\"a varten esitet\"a\"an pisteet
parametrimuodossa. %valitsemalla 
%$$t_i=\sum_{j=1}^{i-1}d_j,$$
Yksinkertaisin tapa on
parametrisoida ne kokonaisluvuilla $t=1,2,...,n$, mikä on ihan toimiva,
kunhan datapisteet sijoitetaan siten, että niiden välisten osakaarien pituudet
ovat samaa suuruusluokkaa. (Jos halutaan muuta, niin voidaanhan se ilmaista
epätasavälisillä parametrinumeroilla.)

%toinen (parempi) tapa
%on käyttää
%likimääräistä kaarenpituutta parameterina tyyliin
%$$t_i=\sum_{j=1}^{i-1}d_j,$$ missä $d_j$ on peräkkäisiä pisteitä yhdistävän
%janan pituus. 
Sitten vain
konstruoidaan 
koordinaattifunktioita $x(t)$ ja $y(t)$ interpoloivat splinit.

Piirr\"a ruutupaperille jokin kirjain, numero tms. hauska häkkyrä
ja valitse siit\"a n. 8 pistett\"a.
Interpoloi  splineillä kumpaakin koordinaattifunktiota ja piirrä.

Lähtökuviosi tulisi mieluummin olla jotensakin sileä, kirjaimia voit tyylitellä,
saat panna kaiken taiteellisen luovuutesi peliin. Mieti myös reunaehtoja. 
(Tietysti voit kokeilla sitäkin, mitä sileä
approksimaatio tekee kulmikkaalle) 

Sopivia kirjaimia tai numeroita ovat esim.

${\cal C, E, G , S,O,P}$ 
$ \alpha, \beta, \gamma, \varphi, \xi, \zeta, 2, 6, 8, 9$ .


Sellaista ei hyväksytä, joka voidaan esittää muodossa $y=f(x)$.
Joissakin tapauksissa voi olla tarpeen tehdä parissa osassa, mutta
osat tulee tehdä parametrikäyrinä.


%(Kysymys : Saako S-kirjaimen sijoittaa makuuasentoon?
%Vastaus : Voi hyvät ihmiset. {\bf Ei, ei, ei!})

Maple-ohje parametrimuotoiseen piirtoon:

\verb_plot([x(t),y(t),t=a..b]); _

Siis ainoa ero kahden kuvaajan piirtoon verrattuna on piirtorajojen
\verb_ t=a..b_ tuominen
listasulkujen (hakasulut) sisään. Kokeile ja vertaa varmuuden vuoksi:
\begin{verbatim}
  plot([cos(t),sin(t),t=0..2*Pi]);
  plot([cos(t),sin(t)],t=0..2*Pi);
  complexplot(exp(I*t),t=0..2*Pi);   # Älä tätäkään unohda!
\end{verbatim}



\end{enumerate}
\end{document}






