mlBas013a  [Vrt. mlBas013, ota tarvittaessa ensin. ] 

Kun \emph{Newtonin menetelmää}  sovelletaan yhtälöön $x^2-a=0$,
saadaan 
iteraatiojono
\[
x_0=a, x_{n+1} = \frac{1}{2}(x_n+\frac{a}{x_n}),
\]
joka 
suppenee kohti lukua $\sqrt{a}$.
Alkuarvona käytetään tässä siis lukua $a$.  

Kirjoita funktio \emph{newtsqrt}, joka palauttaa Newtonin menetelmällä lasketun likiarvon 
syötteenä annetulle luvulle $a$. Käytä \texttt{while}-rakennetta ja lopetusehtoa, joka vertaa uutta 
iteraatiojonon arvoa edelliseen. (Ei siis vertailua Matlabilla laskettuun lukuun $\sqrt{a}$, jota 
toki kannattaa käyttää tarkistukseen.)


\textbf{Vihje}\\

\begin{verbatim}
 function x=newtsqrt(a)
 % Lasketaan neliöjuuri a Newtonin menetelmällä.
 % Lopetusehto: Peräkk. termien suhteellinen ero <= 10*eps.
 x=a;
 xuusi=...; % Hiukan epäelegantisti tehdään yksi erillinen iteraatio.
            % Elegantimpi tapa neuvottu alla:
 tol=10*eps; % Toleranssi hiukan (dekaadin) päälle kone-epsilonin
 while abs(xuusi-x) >=x*tol 
   x=xuusi;
   xuusi=...;
 end;
 end
\end{verbatim}

\begin{verbatim}
x=-Inf;   % Elegentti alustus, jolloin ei tarvita erillistä ekaa kierrosta.
xuusi=a;
\end{verbatim}

Ohjelmankehityksessä kannattaa sijoittaa aluksi kommentiksi otsikkorivi ja sopivat muut rivit 
ja ajaa kommentoimattomia komentoja skriptinä. Voit jakaa \%\%-merkeillä osa-alueisiin.
(Tämä siltä varalta, ettet ensikirjoittamalla saisi funktiotasi virheettömäksi.) Toki debuggeri 
on myös käytössä, mutta skriptikehittely lienee useimmille mieluisampaa.

\textbf{Vaativuus} 1+ \\
\textbf{Tehtävän Latex-koodi:}\\
\href{../mlteht/mlBasic/mlBas013a.tex}{../mlteht/mlBasic/mlBas013a.tex}


\textbf{Ratkaisu:}  \\
%\href{../mlteht/mlBasic/ratkaisut/mlBas013aR.pdf}{../mlteht/mlBasic/ratkaisut/mlBas013aR.pdf} pdf-muodossa}\\

\href{../mlteht/mlBasic/ratkaisut/mlBas013aR.m} {../mlteht/mlBasic/ratkaisut/mlBas013aR.m} (m-tiedosto)\\
\href{../mlteht/mlBasic/ratkaisut/newtsqrt.m} {../mlteht/mlBasic/ratkaisut/newtsqrt.m} (m-tiedosto, sama koodi kuin edellä, luonnollinen nimi ja sopivin help-tekstein täydennettynä) \\
     
\textbf{Avainsanat:}Matlabperusteet,mlBasic,iteraatio, iteration, while-rakenne, Newtonin menetelma neliojuuren laskentaan \\
\textbf{Matlabfunktioita:} while, sqrt \\\\



\hrule




