\begin{Tehtava}
\begin{tehtava}
mlP015.tex \\
Kun Newtonin menetelm\"a\"a  sovelletaan yht\"al\"o\"on $x^2-a=0$,
saadaan 
iteraatiojono
\[
x_0=1, x_{n+1} = \frac{1}{2}(x_n+\frac{a}{x_n}),
\]
joka 
suppenee kohti lukua $\sqrt{a}$. Kirjoita MATLAB-skripti, jolla voit tarkastella t\"at\"a suppenemista, kun $a=5$. \\
Anna tuloksena taulukko T, jossa on sarakkeet (vain numeeriset, ei otsikoita):
%\begin{verbatim}
%         0  1  virhe(
%\end{verbatim}
\[
\begin{array}{ccc} 
n  & x(n) &  \text{virhe} \\
0 & 1 & \sqrt{a}-1\\
1  & x(1) & \sqrt{a}-x(1)\\
\vdots & \vdots & \vdots \\
N  & x(N) & \sqrt{a}-x(N)
\end{array}
\]

\end{tehtava}
\begin{vihje}
Suppenemisen tutkimisessa voidaan k\"aytt\"a\"a \texttt{for} -luuppia. 
Se toimii syntaksilla 
\begin{verbatim}
for k = 1:N-1
    x(k+1)=...
    virhe(k+1)=...
end
\end{verbatim}

Oikean lopetusehdon muodostamiseen \texttt{while}-rakenne on parempi.
Voitaisiin toteuttaa t\"ah\"an tapaan:
\begin{verbatim}
a=...;
tol=10^(-6);
k=1;
suhtero=inf; % Ovela tapa aloitukseen.
x(1)=2;

while(suhtero>tol)
    x(k+1)=(x(k)+a./x(k))/2;
    k=k+1;
    suhtero=abs(x(k)-x(k-1))/abs(x(k-1));
end
\end{verbatim}

Taulukon voit rakentaa vaikka liitt\"am\"all\"a 3 pystyvektoria vierekk\"ain tai miksei suoraan for-luupissa. Edellinen tapa on ehk\"a selke\"ampi.
Kannattaa alustaa (pysty)vektorit \verb_ x=ones(N,1); virhe=zeros(N,1);_
(Matlab ei sit\"a vaadi, mutta tehokkaampaa ja selke\"amp\"a\"a.) 
Numerointivektoria ei suotta ajeta luupissa, vaan ... 

Tulostustarkkuuden s\"a\"at\"o: \verb_format long_ (ei vaikuta laskentatarkkuuteen).

\textbf{Huom: Indeksointi alkaa 1:st\"a}
\end{vihje}

\begin{ratk}
  http://math.aalto.fi/opetus/Mattie/MattieT/matlabteht/mlPerusteet/itersqrtscript.m
\\
Funktioksi kirjoitettu, lis\"atty valinnaisten argumenttien k\"asittely\"a:\\
http://math.aalto.fi/opetus/Mattie/MattieT/matlabteht/mlPerusteet/itersqrt.m
\end{ratk}

\textbf{Avainsanat:} iteraatio, for, while, lopetusehto, Newtonin menetelm\"a 
neli\"ojuuren laskentaan.
\end{Tehtava}
