


\end{document}



\section{Alcune frasi celebri}

In {\cite{UNIPO}}, oltre a varie curiosit\mya su $\pi$ si cita un curioso aneddoto riguardante il noto matematico J. H. Conway:


``{\sl{Un giorno decisi di imparare a memoria le prime mille cifre del pi greco}} - ricorda Conway - {\sl{stimolato da mia moglie Larissa, una matematica di origine russa, che aveva bisogno del valore di pi e non ricordava che 3,14. Le insegnai le prime cento cifre che ricordavo gi\mya a memoria. Ma questo a lei non bastava e, visto che anch'io non sapevo andare oltre, decidemmo insieme di programmare lo studio di cento nuove cifre ogni giorno, per arrivare almeno a mille, da imparare nei momenti in cui eravamo insieme, al di fuori del nostro lavoro}}''.


``{\sl{E' stato divertente}} - continua Conway - {\sl{perch\mye ogni domenica facevamo una passeggiata fino a Grantchester, una graziosa, piccola cittadina vicino a Cambridge e lungo il percorso recitavamo a turno i gruppi successivi di 20 cifre del pi, come fossero piccole poesie. Venti cifre io e venti cifre mia moglie e cos\myi di seguito, alternandoci nella recita: in questo modo siamo arrivati a memorizzare le mille cifre del pi greco}}''.


Pure la morte di Archimede \mye coperta dalla leggenda {\cite{WIKAR}}:

{\sl{Ad un tratto entr\myo nella stanza un soldato e gli ordin\myo di andare con lui da Marcello. Archimede rispose che sarebbe andato dopo aver risolto il problema e messa in ordine la dimostrazione. Il soldato si adir\myo, sguain\myo la spada e lo uccise}}.

\noindent
Frasi celebri attribuite ad Archimede 
{\smsp}
\begin{itemize}
\item {\sl{Noli turbare circulos meos}} cio\mye {\sl{Non turbare i miei cerchi}}.
{\smsp}
\item le sue ultime parole pare furono {\sl{Soldato, stia lontano dal mio disegno}}.
\end{itemize}




\subsection{Implementazione in Matlab di una certa equazione di secondo grado}
Dato il polinomio di secondo grado $x^2 + 2\,p x -q$, con 
${\sqrt{p^2+q}}\geq 0$ calcoliamo la 
radice 
\begin{equation}\label{quadeq}
y=-p+{\sqrt{p^2+q}}.
\end{equation}
mediante due algoritmi (uno stabile e uno instabile)
\begin{equation}\label{quadeq2R}
y=-p \pm {\sqrt{p^2+q}}.
\end{equation}
e
\begin{equation}\label{quadeqrR}
y=-p+{\sqrt{p^2+q}}={\frac{(-p+{\sqrt{p^2+q}})(p+{\sqrt{p^2+q}})}{(p+{\sqrt{p^2+q}})}}={\frac{q} {(p+{\sqrt{p^2+q}})} }.
\end{equation}

Scriviamo un programma {\tt{radicesecgrado.m}} in Matlab che illustri i due algoritmi.
{\vspace{0.25cm}}
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

% p=4.999999999995 \cdot 10^(+4); q=10^(-2); sol=10^(-7);
p=1000; q=0.018000000081; sol=0.9*10^(-5);

% ALGORITMO 1
s=p^2;
t=s+q;
if t >=0
   u=sqrt(t);
else
   fprintf('\n \t [RADICI COMPLESSE]');
end
s1=-p+u;

% ALGORITMO 2
s=p^2;
t=s+q;
if t >=0
   u=sqrt(t);
else
   fprintf('\n \t [RADICI COMPLESSE]');
end
v=p+u;
t1=q/v;

fprintf('\n \t [ALG.1] [1]: %10.19f',s1);
fprintf('\n \t [ALG.2] [1]: %10.19f',t1);
if length(sol) > 0 & (sol ~= 0)
    relerrs1=abs(s1-sol)/abs(sol);
    relerrt1=abs(t1-sol)/abs(sol);
    fprintf('\n \t [REL.ERR.][ALG.1]: %2.2e',relerrs1);
    fprintf('\n \t [REL.ERR.][ALG.2]: %2.2e',relerrt1);
end

\end{Verbatim} 
\noindent
Digitiamo quindi da shell Matlab/Octave il comando {\tt{radicesecgrado}} e otteniamo 
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

>> radicesecgrado

 	 [ALG.1] [1]: 0.0000089999999772772
 	 [ALG.2] [1]: 0.0000090000000000000
 	 [REL.ERR.][ALG.1]: 2.52e-009
 	 [REL.ERR.][ALG.2]: 0.00e+000

\end{Verbatim}
\noindent
Come previsto, il secondo algoritmo si comporta notevolmente meglio del primo, che compie un errore relativo dell'ordine di circa $10^{-9}$. 

{\vspace{0.25cm}}

\noindent
{\bf{Esercizio veloce}}. Testare il codice {\tt{radicesecgrado.m}} per l'esempio in cui
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

p=4.999999999995 \cdot 10^(+4); q=10^(-2); sol=10^(-7);

\end{Verbatim}


\subsection{Esempio 2: Approssimazione numerica di $\pi$}

Storicamente sono state scoperte diverse successioni convergenti sempre pi\myu rapidamente a $\pi$ (cf. {\cite{WIKPI}}).
In questa sezione ci interesseremo a 3 di queste mostrando sia come le velocit\mya di convergenza possano essere diverse, sia come possano insorgere questioni di instabilit\mya {\cite[p. 16]{FRO}}.

\noindent
Si implementino le successioni $\{u_n\}$, $\{z_n\}$, definite 
rispettivamente come
$$\left\{ \begin{array} {l}  
s_1=1, \, \, s_2=1+{\frac {1}{4}} \\
u_1=1, \, \, u_2=1+{\frac {1}{4}} \\
s_{n+1} = s_{n} +{\frac {1}{(n+1)^2}} \\
u_{n+1} = {\sqrt {6 \, s_{n+1} }} 
\end{array} \right.$$
e
$$\left\{ \begin{array} {l}  
z_1=1, \, \, z_2=2 \\
z_{n+1} = 2^{n- { \frac {1} {2} } }      { \sqrt { 1 - \sqrt{1-4^{1-n} 
\cdot z_n^2}   } } 
\end{array} \right.$$
che {\sl{teoricamente}} convergono a $\pi$.
Si implementi poi la successione, diciamo $\{y_{n}\}$, che si ottiene 
{\sl{razionalizzando}}, cio\mye moltiplicando numeratore e denominatore 
per 
$$ { \sqrt { 1 + \sqrt{1-4^{1-n} \cdot z_n^2}   } } $$
e si calcolino $u_m$, $z_m$ e $y_m$ per $m=2,3,\ldots,40$ (che teoricamente dovrebbero approssimare $\pi$).

\noindent
Si disegni in un unico grafico l'andamento dell'errore relativo di $u_n$, 
$z_n$ e $y_n$ rispetto a $\pi$. A tal proposito 
ci si aiuti con l'help di Matlab relativo al comando {\tt{semilogy}}. I 
grafici devono avere colori o patterns 
diversi.

{\vspace{0.25cm}}

\noindent
{\bf{Facoltativo}}: in un riquadro mettere un legame tra colore (e/o pattern) e 
successione, usando il comando Matlab {\tt{legend}} (aiutarsi con l'help). 
Ricordiamo che tale comando non esiste in vecchie versioni di GNU Octave. Un esempio del suo utilizzo in Octave \mye (cf. {\cite{OBI}}
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

legend ("sin (x)");

\end{Verbatim}
{\vspace{0.25cm}}

\subsection{Risoluzione} 

In seguito scriviamo un'implementazione di quanto richiesto commentando i 
risultati. Si salvi in un file {\tt{pigreco.m}} il codice
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

% SEQUENZE CONVERGENTI "PI GRECO".

% METODO 1.

s(1)=1; u(1)=1;
s(2)=1.25; u(2)=s(2);
for n=2:40
    s(n+1)=s(n)+(n+1)^(-2);
    u(n+1)=sqrt(6*s(n+1));
    fprintf('\n \t [SEQ.1][INDEX]: %3.0f', n);
    fprintf(' [REL.ERR]: %2.2e', abs(u(n+1)-pi)/pi);
end
rel_err_u=abs(u-pi)/pi;


fprintf('\n');

% METODO 2.
format long
z(1)=1; 
z(2)=2;
for n=2:40
    c=(4^(1-n)) * (z(n))^2; inner_sqrt=sqrt(1-c);
    z(n+1)=(2^(n-0.5))*sqrt( 1-inner_sqrt );
    fprintf('\n \t [SEQ.2][N]: %3.0f', n);
    fprintf(' [REL.ERR]: %2.2e', abs(z(n+1)-pi)/pi);
end
rel_err_z=abs(z-pi)/pi;

fprintf('\n');

% METODO 3.
y(1)=1; 
y(2)=2;
for n=2:40
    num=(2^(1/2)) * abs(y(n)); 
    c=(4^(1-n)) * (z(n))^2;
    inner_sqrt=sqrt(1-c);
    den=sqrt( 1+inner_sqrt );
    y(n+1)=num/den;
    fprintf('\n \t [SEQ.3][N]: %3.0f',n);
    fprintf(' [REL.ERR]: %2.2e', abs(y(n+1)-pi)/pi);
end
rel_err_y=abs(y-pi)/pi;


% SEMILOGY PLOT.
hold on;
semilogy(1:length(u),rel_err_u,'k.'); 
semilogy(1:length(z),rel_err_z,'m+'); 
semilogy(1:length(y),rel_err_y,'ro'); 
hold off;

\end{Verbatim}
 \begin{figure}\label{fig1}
 \centering
   {\includegraphics[scale=0.5,clip]{plot_pigreco.eps}}
 \caption{Grafico che illustra le 3 successioni, rappresentate rispettivamente da {\tt{.}}, {\tt{+}} e {\tt{o}}.}
 \end{figure}


\subsubsection{Commenti alla Risoluzione}
{\smsp}
\begin{enumerate}
\item Non tutti i programmi sono functions. Alcuni sono semplicemente un 
codice che viene interpretato da Matlab (il cosidetto {\sl{programma 
principale}}). Usiamo funzioni solo quando vogliamo introdurre porzioni di 
codice che possono tornare utili a pi\myu programmi principali, o che 
semplificano la loro lettura.
{\smsp}
\item Pi\'u assegnazioni possono essere scritte in una stessa riga. Per convincersene si osservi la prima riga del file {\tt{pigreco.m}} dopo i 
commenti.
{\smsp}
\item L'istruzione descritta dopo {\tt{for n=2:40}} non richiede l'incremento della 
variabile $n$, in quanto ci\myo \mye automatico.
{\smsp}
\item Non serve il {\tt{;}} dopo l'{\tt{end}} che chiude il ciclo 
{\tt{for}}.   
{\smsp}
\item Con un po' di tecnica il ciclo {\tt{for}} \mye sostituibile col un 
ciclo {\tt{while}}. In questo caso per\myo bisogna incrementare la variabile $n$.
{\smsp}
\item Nel denominatore riguardante l'errore relativo scriviamo {\tt{pi}} e 
non {\tt{abs(pi)}} in quanto $\pi=|\pi|$. 
{\smsp}
\item Nel comando {\tt{fprintf}}, utilizziamo {\tt{$\backslash$n}} che manda a capo e {\tt{$\backslash$t}} che 
esegue un 
{\sl{tab}} 
(uno spazietto in avanti). Se non si scrive {\tt{$\backslash$n}}, Matlab 
scriver\mya di seguito l'output sulla stessa riga, rendendo difficile la lettura dell'errore 
relativo.
{\smsp}
\item Nel comando {\tt{fprintf}} alcune parti vengono scritte come testo 
altre come contenuto di una variabile. Consideriamo ad esempio gli
{\tt{fprintf}} nella prima successione:
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

fprintf('\n \t [SEQ.1][INDEX]: \%3.0f',n+1); 
fprintf('\n \t [REL.ERR.]: \%2.2e \n', relerru(n+1) );

\end{Verbatim}
Dopo essere andati a capo e spaziato a destra, Matlab scrive sul monitor 
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}]
 
{\tt {[SEQ.1][INDEX]: } } 

\end{Verbatim}
e quindi valuta {\tt {n+1}} che viene stampato 
con {\sl{tre cifre decimali prima della virgola}} in notazione decimale. 
Scrive poi sul monitor {\tt {[REL.ERR.]:}}, e accede alla {\sl{cella di 
memoria}}
della variabile {\sl{relerru}} di cui considera la componente $n+1$-sima.
Di seguito stampa su monitor il suo valore con {\sl{due cifre decimali 
prima della 
virgola}}, {\sl{due cifre decimali dopo la virgola}} in notazione 
esponenziale.  
{\smsp}
\item Il comando {\tt{semilogy}} ha come primo argomento l'ascissa (che in 
questo caso sono gli indici di iterazione {\tt {1:41}}) e quale secondo 
argomento l'ordinata {\tt {relerru}}. Nel grafico (in scala logaritmica 
nelle ordinate $y$), vengono disegnate l'$i$-sima componente dell'ascissa 
e l'$i$-sima componente delle ordinate per $i=1$, $\ldots$, 
dim( {\tt{relerru}}). Il grafico viene {\sl {tenuto}} grazie al comando 
di {\tt {hold on}} e di seguito si ripete il procedimento per {\tt {relerrz}} e {\tt {relerry}}. Si osservi 
che i vettori {\sl {ascissa}} e {\sl {ordinata}} devono essere della 
stessa dimensione e dello stesso tipo (cio\mye entrambi vettori riga o 
entrambi vettori colonna).
{\smsp}
\item Dall'help di {{semilogy}} si evince che se la variabile {\sl {ascissa}} non viene 
scritta allora Matlab indicizza automaticamente col vettore di naturali da 
1 alla dimensione del vettore {\sl {ordinata}}.
\end{enumerate}

\noindent
Per il risultato del plot si consideri la prima figura. Abbiamo indicato la prima successione con {\tt{.}}, la 
seconda con {\tt{+}} e la terza successione con {\tt{o}}. Osserviamo che in Octave, i grafici vengono rappresentati differentemente in quanto invece di un cerchietto viene talvolta disegnato un rombo.

\noindent
Dal punto di vista dell'analisi numerica si vede che 
{\smsp}
\begin{enumerate}
\item La prima successione converge molto lentamente a $\pi$, la seconda 
diverge mentre la terza converge velocemente a $\pi$. 
{\smsp}
\item Per alcuni valori $\{z_n\}$ e $\{y_n\}$ coincidono per alcune 
iterazioni per poi 
rispettivamente divergere e convergere a $\pi$. Tutto ci\myo \mye naturale 
poich\mye le 
due sequenze sono analiticamente (ma non numericamente) equivalenti.
{\smsp}
\item Dal grafico dell'errore relativo, la terza successione, dopo aver 
raggiunto errori relativi prossimi alla precisione di macchina, si assesta 
ad un errore relativo di circa $10^{-15}$ (probabilmente per questioni di 
arrotondamento).
\end{enumerate}

\subsection{Esempio 3: Successione ricorrente}

In questa sezione mostriamo come alcune formule di ricorrenza in avanti possano essere instabili, mentre d'altro canto le relative versioni all'indietro possono essere stabili {\cite[Esercizio 1.9, p.35]{QUA}}. Problemi simili con una precisa discussione della propagazione dell'errore sono trattati pure in {\cite[p. 23, problema 11]{FRO}}

Sia 
\begin{equation}\label{321}
I_n=e^{-1} \int_0^1 x^n \, e^x \, dx
\end{equation}

\noindent
Per $n=0$ si ha $$I_0=e^{-1} \int_0^1 \, e^x \, dx=e^{-1}(e^{1}-1).$$
Per $n=1$, \mye facile verificare che, essendo
$$\int x \, \exp(x) dx=(x-1)\, \exp(x)+c,$$
dal secondo teorema del calcolo integrale (cf. {\cite{WIKCI}})
si ha che $I_1=e^{-1}$ e pi\myu in generale integrando per parti che
\begin{equation}\label{322}
I_{n+1}=e^{-1} \left( x^{n+1} \, e^x \mid_0^1 - (n+1) \int_0^1 x^n \, e^x 
\, dx  \right) =1-(n+1)\, I_n. 
\end{equation}

\noindent
Da (\ref{321}) essendo l'integranda $x^n \exp{x} >0 $ per $x \in (0,1]$
si ha $$I_n >0.$$ Inoltre $x \leq 1$ implica $x^2 \leq x$ e pi\myu in generale $x^{n+1} \leq x^n$ da cui $x^{n+1} \exp(x) \leq x^n \exp(x)$ e quindi $$I_{n+1} \leq I_n.$$
La successione $I_n$ \mye positiva e non crescente e quindi ammette limite $L$ finito.
Da ({\ref{322}}), calcolando il limite $L$ per $n \rightarrow \infty$ 
ad ambo i membri si ottiene portando $1$ a primo membro
$$L-1=-\lim_n  (n+1)\, I_n.$$
L'unica possibilit\mya affinch\mye $\lim_n  (n+1)\, I_n$ esista e sia finito \mye che sia
$$L=\lim_n I_n=0.$$
Infatti se il limite $L$ fosse non nullo, si avrebbe $$L-1=\lim_n  (n+1)\, I_n=\lim_n  (n+1)\, \lim_n I_n=+\infty,$$ il che \mye assurdo essendo $L < + \infty$ e quindi $L-1 < +\infty$.
{\smsp}
\begin{enumerate}
\item Si calcoli $I_n$ per $n=1,\ldots, 99$ mediante la successione {\sl{in avanti}}
$$\left\{ \begin{array}{l}  
s_1=e^{-1}\\
s_{n+1} = 1-(n+1) \, s_{n}
\end{array} \right.$$
{\smsp}
\item Fissato $m=500$, si calcoli la successione {\sl{all'indietro}}
$\{t_n\}_{n=1,\ldots,100}$ definita come 
$$\left\{ \begin{array}{l}  
t_{2m}=0\\
t_{n-1} = {\frac {1-t_n} {n}}
\end{array} \right.$$
Si osservi che per raggiungere tale obiettivo bisogna calcolare i termini 
$$t_m, \,t_{m-1},\ldots,t_{100},t_{99},\ldots,t_2,t_1.$$
{\bf{Nota}}: la successione all'indietro deriva dall'osservare che per $n$ sufficientemente grande $I_n \approx 0$. Quindi, posto per $n$ sufficientemente grande $I_n=0$ riscrivendo la successione in avanti come successione all'indietro (cio\mye $I_n$ in funzione di $I_{n+1}$), abbiamo 
$$I_{n} = {\frac {1-I_{n+1}} {n+1}}.$$
{\smsp}
\item Si disegni in un unico grafico semi-logaritmico (usare 
{\tt{semilogy}} e 
{\tt{subplot}}) l'andamento di $|s_n|$ e  
$|t_n|$ per $n=1,\ldots,100$.
{\smsp}
\item Si calcoli il valore di $t_1$ per diversi valori di $m$, da $m=1$ a 
$m=10$ e lo si confronti con $I_1$.
{\smsp}
\item (Esercizio non banale). Si calcolino a mano 
$e^{(s)}_m:=I_m-s_m$ in funzione di $e^{(s)}_1$ e $e^{(t)}_1:=I_1-t_1$ in 
funzione di 
$e^{(t)}_{m}$. Infine si spieghi l'andamento oscillante della successione 
$\{s_n\}$.

\noindent
Suggerimento: si scriva $e^{(s)}_1=\delta$ (o equivalentemente $s_1=e^{-1}+\delta$) ed in seguito si esprima $e^{(s)}_m:=I_m-s_m$ in funzione di $\delta$.
Da questi conti si vede il motivo del cattivo comportamento della successione in avanti: un piccolo errore sul dato iniziale, ha effetti catastrofici sul risultato al crescere di $m$. 

\end{enumerate}

{\vspace{0.25cm}}

\subsubsection{Risoluzione}
Di seguito vediamo un'implementazione di quanto richiesto. L'ultimo punto del problema lo lasciamo al lettore.
Scriviamo il codice in un file {\tt{succricorrente.m}}:

{\vspace{0.25cm}}
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

% SUCCESSIONE RICORRENTE.

% SUCCESSIONE "s_n".
s(1)=exp(-1);   
for n=1:99
    s(n+1)=1-(n+1)*s(n);
end

% SUCCESSIONE "t_n".
m=500; M=2*m; 
t=zeros(M,1); % INIZIALIZZAZIONE "t".
for n=M:-1:2
    j=n-1;
    t(j)=(1-t(n))/n;
end

% PLOT SEMI-LOGARITMICO.            
subplot(2,1,1)
semilogy(1:length(s),abs(s),'k-'); hold on;
semilogy(1:length(s),abs(t(1:length(s))),'m-');
hold off;

% ANALISI DI t(1) PER VALORI DIFFERENTI DI "m".
t_1_exact=exp(-1);
for m=1:10
    
    M(m)=2*m;
    t=zeros(M(m),1); % INIZIALIZZAZIONE "t".
    
    for n=M(m):-1:2  % SI OSSERVI CHE IL CICLO VA DA "M" A 2.
        t(n-1)=(1-t(n))/n;
    end
    
    val_t_1(m)=t_1_exact-t(1);
    fprintf('\n \t [M]: %2.0f [VAL.]: %10.15f',M(m),val_t_1(m));
    
end

subplot(2,1,2)
semilogy(M,abs(val_t_1),'k-');

\end{Verbatim} 
\subsubsection{Commenti alla Risoluzione}

 \begin{figure}\label{fig2}
 \centering
   {\includegraphics[scale=0.5,clip]{ricorrente.eps}}
 \caption{Grafico che illustra i valori assoluti assunti dalla successione in avanti (in nero) e all'indietro (in rosa magenta)}
 \end{figure}

\noindent
Alcune osservazioni sul codice
{\smsp}
\begin{itemize}
\item abbiamo usato un comando del tipo {\tt {for n=M:-1:2}} cosicch\mye il ciclo for parte da
$M$ e arriva a 2, sottraendo di volta in volta $1$;
\item abbiamo inizializzato con un comando del tipo {\tt {zeros(M,1)}} il
vettore colonna $t$, che altrimenti non \mye in memoria (e quindi le componenti pi\myu piccole di
{\tt{t(n-1)}} sarebbero inaccessibili poich\mye indefinite);
{\smsp}
\item abbiamo applicato un grafico semilogaritmico poich\'e quello usuale non dice granch\mye (sperimentarlo).
{\smsp}
\item in figura abbiamo plottato le successioni $\{|s_i|\}$, $\{|t_i|\}$ e non $\{s_i\}$, $\{t_i\}$. Questo non \mye un problema in quanto 
$$s_i \rightarrow 0 \Leftrightarrow |s_i| \rightarrow 0$$
$$t_i \rightarrow 0 \Leftrightarrow |t_i| \rightarrow 0.$$
D'altro canto la prima successione diverge assumendo anche valori negativi, rendendo difficile la comprensione del grafico.
{\smsp}
\item Il comando {\tt{subplot}} permette di plottare pi\myu grafici nella stessa finestra di Matlab/Octave, senza sovrapporli. Per ulteriori informazioni, dall'help di Matlab:
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

 SUBPLOT Create axes in tiled positions.
    H = SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window
    into an m-by-n matrix of small axes, selects the p-th axes for 
    for the current plot, and returns the axis handle.  The axes 
    are counted along the top row of the Figure window, then the
    second row, etc.  For example,
  
        SUBPLOT(2,1,1), PLOT(income)
        SUBPLOT(2,1,2), PLOT(outgo)
  
    plots income on the top half of the window and outgo on the
    bottom half.

\end{Verbatim}
\end{itemize}

\noindent
Numericamente, dopo aver digitato sulla shell di Matlab/Octave {\tt{succricorrente}} otteniamo con un po' di attesa due grafici e i seguenti risultati.
Il primo grafico (si veda la Figura 4) mostra un confronto tra i risultati della successione in avanti (quella plottata in nero) e quelli 
della successione all'indietro 
(in rosa magenta). Dai ragionamenti qualitativi, \mye evidente che la prima non fornisce la soluzione, mentre la seconda sembra convergere a $0$.

\noindent
Il secondo grafico (si veda la Figura 5) per vari $M=2 \cdot m$ mostra il comportamento del metodo all'indietro nell'appossimare il valore iniziale 
$\exp{-1}$. Evidentemente, al crescere di $m$, l'approssimazione diventa sempre pi\myu accurata. In particolare l'errore assoluto compiuto \mye stampato 
nel display dal programma {\tt{succricorrente.m}} come segue:
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

>> succricorrente

 	 [M]:  2 [VAL.]: 0.132120558828558
 	 [M]:  4 [VAL.]: 0.007120558828558
 	 [M]:  6 [VAL.]: 0.000176114384113
 	 [M]:  8 [VAL.]: 0.000002503273002
 	 [M]: 10 [VAL.]: 0.000000023114272
 	 [M]: 12 [VAL.]: 0.000000000149839
 	 [M]: 14 [VAL.]: 0.000000000000720
 	 [M]: 16 [VAL.]: 0.000000000000003
 	 [M]: 18 [VAL.]: 0.000000000000000
 	 [M]: 20 [VAL.]: 0.000000000000000

>> 

\end{Verbatim} 
 \begin{figure}\label{fig3}
 \centering
   {\includegraphics[scale=0.5,clip]{ricorrente2.eps}}
 \caption{Grafico che illustra il valore assoluto della successione
all'indietro nell'approssimare $\exp{(-1)}$.}
 \end{figure}

\section{Complessit\mya computazionale}
Ricordato che un {\sl{algoritmo}} \mye una successione finita di istruzioni assegnate in modo non ambiguo, la cui esecuzione consenta di passare da una situazione iniziale (dati) ad una finale (risultati) in un tempo finito, viene naturale richiedere che esso sia adatto a risolvere una classe di problemi e che sia {\sl{ottimale}} rispetto al tempo, al numero di operazioni, alla stabilit\mya e all'accuratezza. Ovviamente ad un maggior numero di operazioni non \mye detto che corrisponda una miglior accuratezza dei risultati. La complessit\mya computazionale conta il numero di operazioni necessarie per fornire l'approssimazione desiderata.

\subsection{Esempio: algoritmo di Horner.}
Ci poniamo il problema di valutare il polinomio
\begin{equation}\label{f1}
p(x)=a_0+a_1 \cdot x+ \ldots + a_n \cdot x^n
\end{equation}
in un punto $x$. 

Osserviamo che 
\begin{equation}\label{f2}
p(x)= a_0+x\cdot(a_1+x\cdot(a_2+\ldots+x\cdot(a_{n-1}+x\cdot a_n)))
\end{equation}

Supponiamo sia $a=(a_0,\ldots,a_n)$ il vettore di dimensione $n+1$ delle componenti del polinomio. Possiamo valutare il polinomio tramite i seguenti due algoritmi, il primo che valuta direttamente il polinomio secondo quanto descritto in ({\ref{f1}}), il secondo che effettua la stessa operazione come descritto in ({\ref{f2}}) calcolando dapprima $s_1=a_{n-1} + x \cdot a_n$, poi  $s_2=a_{n-2} + x \cdot s_1$ e cos\myi via. In Matlab avremo allora 

\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

function s=algoritmo1(a,x)

xk=1;
for i=2:length(a)
   xk=xk*x;
   s=s+a(i)*xk;
end

\end{Verbatim}
e
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

L=length(a);
s=a(L); % COMPONENTE a_n IMMAGAZZINATA IN a(n+1).
for i=L-1:-1:1
      s=a(i)+x*s;
end

\end{Verbatim}

Se lanciamo il codice {\tt{demo\_horner}} per la valutazione di $p(x)=1+2 \cdot x + 3 \cdot x^2 +4 \cdot x^3$ in $x=\pi$
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

clear all;

a=[1 2 3 4];
x=pi;


y1=algoritmo1(a,x);
y2=algoritmo2(a,x);

format long;
y1
y2

\end{Verbatim}
otteniamo
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

>> demo_horner
ans =
     1.609171052316469e+02
y1 =
     1.609171052316469e+02
y2 =
     1.609171052316469e+02
>> 

\end{Verbatim}

La differenza sta nella complessit\mya computazionale e non nel risultato numerico. Il primo codice richiede $2n$ moltiplicazioni e $n$ somme, mentre il secondo algoritmo  $n$ moltiplicazioni e $n$ somme.


\section{Facoltativo: Un esempio sulla soluzione delle equazioni di secondo grado}

Consideriamo l'equazione di secondo grado
\begin{equation}\label{eq.st.1}
x^2 - 2\sqrt{3} x + 3 = 0
\end{equation}

\noindent
Si nota subito che 
\begin{equation}\label{eq.st.1}
x^2 - 2\sqrt{3} x + 3 = (x-\sqrt{3})^2
\end{equation}

\noindent
e quindi (\ref{eq.st.1}) ha un'unica soluzione $\sqrt{3}$ con molteplicit\mya 2, poich\mye la derivata di $x^2 - 2\sqrt{3} x + 3$ \mye la funzione  $2 x - 2\sqrt{3} x$ si annulla in $\sqrt{3}$ (cf. {\cite[p.420]{COM}}).

Per quanto riguarda il condizionamento di una radice $\alpha$ (cf. {\cite[p.420]{COM}}), si prova che se $\alpha({\epsilon})$ \mye la radice di 
\begin{equation}\label{eq.st.2}
P_{\epsilon}(z)=P(z)+\epsilon g(z), \,\,\, \epsilon>0
\end{equation}
allora se $\alpha$ \mye semplice
\begin{equation}\label{eq.st.3}
\alpha({\epsilon}) \approx \alpha + \epsilon \left(    \frac{ -g(\alpha)}{P^1(\alpha)}\right)
\end{equation}
mentre se $\alpha$ \mye multipla con moltiplicit\mya $m$, cio\mye 
$$P(\alpha)= \ldots=P^{(m-1)}(\alpha)=0 \,\,\, P^{(m)}(\alpha) \neq 0$$
allora esiste una radice $\alpha({\epsilon})$ di $P_{\epsilon}$ tale che
\begin{equation}\label{eq.st.4}
\alpha({\epsilon}) \approx \alpha + \epsilon^{1/m} \left(    \frac{ -m!g(\alpha)}{P^{(m)}(\alpha)}\right)
\end{equation}

Approssimiamo in (\ref{eq.st.1}) il valore $\sqrt{3}$ con $1.7321$ fornito da Matlab usando il cosidetto {\tt{format short}}. In questo caso, posto $g(z)=2z$, $$\epsilon=-(\sqrt{3}-1.7321) \approx 4.9192 \cdot 10^{-5} \approx 5 \cdot 10^{-5}$$ abbiamo che 
\begin{equation}\label{eq.st.5}
\alpha({\epsilon}) \approx \alpha + \epsilon^{1/m} \left(    \frac{ -m!\alpha}{P^{(2)}(\alpha)}\right)
\end{equation}
\noindent
ed essendo $P^{(2)}(z)=2$, $m=2$ (molteplicit\mya della radice $\alpha=\sqrt{3}$), ricaviamo
\begin{equation}\label{eq.st.5}
\alpha({\epsilon}) \approx \alpha + (5 \cdot 10^{-5})^{1/2} \left(    \frac{ -2! 2 \sqrt{3}}{2}\right)
\end{equation}
in cui 
$$|(5 \cdot 10^{-5})^{1/2} \left(    \frac{ -2! 2\sqrt{3}}{2}\right)^{1/2} |\approx 0.02449489742783$$
Quindi ci si aspetta che una delle radici di 
$$P_{\epsilon}(z)=x^2 - 2 \cdot 1.7321 \cdot x + 3$$
disti circa $0.02449489742783$ da $\sqrt{3}$.

In effetti, utilizzando semplici modifiche del programma {\tt{radicisecondogrado}}, si hanno due radici,
$$x_1 \approx 1.7451541181241765000, \,\,\, x_2 \approx 1.7190458818758234000.$$
ed \mye, come si vede facilmente dalla shell di Matlab/Octave:
\begin{Verbatim}[fontsize=\small, formatcom=\color{blue}] 

>> 1.7451541181241765000-sqrt(3)
ans =
    0.0131
>> 1.7190458818758234000-sqrt(3)
ans =
   -0.0130
>> 

\end{Verbatim}


\section{Esercizio}
Date le funzioni 
$$f_1(x)=1-\sqrt{1-x^2}$$
$$f_2(x)=1-x$$
si calcoli analiticamente il {\sl{condizionamento}}
$${\cal{K}}_1(x)=\frac{|  x \cdot f_1^{\prime}(x)|}{|f_1(x)|} $$
$${\cal{K}}_2(x)=\frac{|  x \cdot f_2^{\prime}(x)|}{|f_2(x)|} $$
Utilizzando Matlab/Octave, si plottino in scala semilogaritmica  i grafici di ${\cal{K}}_1$ e ${\cal{K}}_2$ nel set di punti $x=-1+10^{(-3)},-1+2\cdot10^{(-3)},\ldots,1-2 \cdot 10^{(-3)},1-10^{(-3)},$. Si pu\myo dire da questi dove la funzione \mye malcondizionata (cio\mye assume valori di condizionamento {\sl{alti}})?

\section{Alcuni esercizi}
{\smsp}
\begin{enumerate}

\item {\bf{Esercizio facoltativo di media difficolt\mya}}. Esistono pi\myu successioni che approssimano $\pi$ e sono attribuite ad Archimede. Ad esempio, osservato che questi non \mye altro che l'area del cerchio avente raggio $1$, si inscrivono nel cerchio al variare di $p=2,3,\ldots$ dei poligoni regolari aventi $2^p$ lati. Osserviamo che per $p=2$, si deve determinare l'area del quadrato inscritto, che con facili conti \mye uguale a $2$.

Nel caso generale, si osserva che il poligono consiste di $2^p$ triangoli in cui un lato corrisponde ad un lato del poligono e un vertice con il centro del cerchio (si confronti con le figure).

 \begin{figure}\label{fig1s}
 \centering
   {\includegraphics[scale=0.35,clip]{archimede_8.eps}}
   {\includegraphics[scale=0.35,clip]{archimede_16.eps}}
 \caption{Grafico che illustra le suddivisioni considerate dall'algoritmo di Archimede, per $p=3$, $p=4$.}
 \end{figure}

Se indichiamo con $\theta$ l'angolo al centro di ogni triangolo, si verifica che la sua area \mye $\frac{\sin {(\theta)}}{2}$. In particolare per un poligono di $2^p$ lati, si ha $\theta_p=\frac{2\pi}{2^p}$ e l'area del poligono inscritto, costituito da $2^p$ triangoli uguali, \mye 
$$I_p=2^p \, \frac{\sin {(\theta_p)}}{2} = 2^p \, \frac{\sin {(\frac{2\pi}{2^p})}}{2}.  $$
In realt\mya Archimede us\myo questa ed altre idee per cercare di approssimare $\pi$ con stime dall'alto e dal basso, via anche poligoni circoscritti. Come citato in {\cite{WIKAR}}:

{\sl{Nel breve lavoro {\rm{La misura del cerchio}} viene dimostrato anzitutto che un cerchio \mye equivalente a un triangolo con base eguale alla circonferenza e altezza eguale al raggio. Tale risultato \mye ottenuto approssimando arbitrariamente il cerchio, dall'interno e dall'esterno, con poligoni regolari inscritti e circoscritti. Con lo stesso procedimento Archimede espone un metodo con il quale pu\myo approssimare arbitrariamente il rapporto tra circonferenza e diametro di un cerchio dato, rapporto che oggi si indica con $\pi$. Le stime esplicitamente ottenute limitano questo valore fra 22/7 e 3 + 10/71}}.

Secondo {\cite{WOL}}, Archimede us\myo un altro algoritmo per approssimare $\pi$. Visto che $2\pi $ non \mye altro che la lunghezza della circonferenza del cerchio avente raggio uguale a $1$ e questa \mye maggiore del perimetro $a_k$ di un qualsiasi poligono regolare di $n=6 \cdot 2^k$ lati inscritto e minore del perimetro di un qualsiasi poligono regolare di $n=6 \cdot 2^k$ lati circoscritto $b_k$, misurando $a_k$ e $b_k$ si pu\myo affermare che $$a_k \leq 2\pi \leq b_k. $$

\noindent
Si pu\myo inoltre provare che 
$$a_k=2n \,  \sin {\left(\frac{\pi}{n} \right)},$$
$$b_k=2n \, \tan {\left(\frac{\pi}{n}\right)}.$$
Stimare $\pi$ come $$a_k \leq 2 \, \pi \leq b_k.$$ 

\noindent
Per quale $n$ si riesce a determinare $\pi$ con $10$ cifre decimali esatte? Pensare se sia giusto dire $b_k-a_k < 10^{-10}$ allora $\pi$ \mye approssimato da $a_k$ con 10 cifre decimali esatte.

 \begin{figure}\label{fig_archimede}
 \centering
   {\includegraphics[scale=10.0,clip]{stamp_italian_small_gimp.eps}}
 \caption{Un francobollo raffigurante Archimede (287ac-212ac).}
 \end{figure}

\noindent
{\bf{A.}} Si approssimi $\pi$ usando il primo algoritmo di Archimede (basato sull'area di poligoni regolari inscritti) per $p=2:20$. Si stampi l'errore assoluto e relativo compiuto.

\noindent
{\bf{B.}} Stimare $\pi$ come $$a_k \leq \pi \leq b_k$$ mediante l'algoritmo di Archimede basato sulla valutazione dei perimetri $a_k$, $b_k$ di alcuni poligoni regolari. Per quale $n$ si riesce a determinare $\pi$ con $10$ cifre decimali esatte? Per $k=0,\ldots,4$ si ha
\begin{eqnarray}
3.00000 & \leq \pi \leq & 3.46410 \\	
3.10583 & \leq \pi \leq & 3.21539 \\
3.13263 & \leq \pi \leq & 3.15966 	\\
3.13935 & \leq \pi \leq & 3.14609 	\\
3.14103 & \leq \pi \leq & 3.14271
\end{eqnarray}

\noindent
{\bf{Osservazione}}: il fatto che ci sia un $\pi$ nei secondi membri di alcune espressioni non \mye {\sl{un gatto che si morde la coda}}. Infatti \mye solo una trascrizione in radianti di un angolo che ha un significato geometrico indipendente dalla quantit\mya $\pi$. In questi esercizi, per semplificare la questione si usa per\myo $\pi$ per calcolare $\pi$, cosa che dimostra una volta in pi\myu l'abilit\mya di Archimede, che calcol\myo tali quantit\mya con metodi elementari e geometrici.

Si cita il fatto che per $k=4$ Archimede riusci' ad affermare che 
$$\frac{223}{71} \leq \pi \leq \frac{22}{7}.$$
{\smsp}
% ESERCIZIO 5.
\item {\bf{Esercizio, facile facoltativo}}. Posto $h=10^{-1},10^{-2},\ldots,10^{-15}$, si approssimi la derivata di $\exp{(1)}$ con il rapporto incrementale
$$ \frac {\exp{(1+h)}-\exp{(1)}} {h}$$
e quindi si valuti l'errore assoluto compiuto (rispetto alla soluzione $\exp{(1)}$). L'approssimazione migliora al diminuire di $h$?
{\smsp}
% ESERCIZIO 6.
\item {\bf{Esercizio, facile facoltativo}}. Si esegua una tabella in cui si studino a due a due le somme, prodotti, divisioni di NaN, Inf, 0, 1 e confrontarle con i noti risultati di indeterminazione della teoria dei limiti.
{\smsp}
% ESERCIZIO 7.
\item {\bf{Esercizio, facile facoltativo}}. Fissato $\theta=0:(2\pi / 1001):2 \pi$, si valuti $\sin^2{(\theta)} + \cos^2{(\theta)}$ e si calcoli l'errore assoluto rispetto il valore $1$.
\end{enumerate}
























































D'altro canto, spesso la funzione $f$ non \mye valutabile esattamente ma approssimata da una certa $g$. Il valore 
$$\frac{g({x})-f(x)}{f(x)}$$
si chiama  {\sl{errore relativo analitico o di troncamento}}.

Una volta definita $g$, il suo calcolo viene effettuato da un certo algoritmo ottenendo una approssimazione ${\overline{g}}$. Per $g(x) \neq 0$, la quantit\mya 
 $$\frac{{\overline{g}}({x})-{\overline{g}}(x)}{g(x)}$$
si chiama  {\sl{errore relativo algoritmico}}.

Da questa analisi, si capisce che usualmente, dovendo calcolare $f(x)$ si ottiene, per varie ragioni, la quantit\mya ${\overline{g}}({\overline{x}})$.

\section{Condizionamento e stabilit\mya}

Supponiamo che la funzione scalare $f$ sia valutabile esattamente.  La sua valutazione in un punto $x$ si dice {\sl{bencondizionata}} se a piccole variazioni relative sui dati corrispondono piccole variazioni sui risultati. In altre parole, se $x \neq 0$ e $f(x) \neq 0$ si ha 
  $$\frac{|f({\overline{x}})-f(x)|}{|f(x)|} \approx \frac{|({\overline{x}})-(x)|}{|(x)|}.$$
Osserviamo che abbiamo supposto che $f$ sia valutabile esattamente e quindi il bencondizionamento dipende esclusivamente da $f$ e dal dato $x$ e non dall'algoritmo utilizzato.
Sottolineiamo che la valutazione di $f$ pu\myo essere malcondizionata per certi dati $x$ e bencondizionata per altri $x$.

Un algoritmo per la valutazione di $f$ si dice {\sl{stabile}} se amplifica {\sl{poco}} gli errori di arrotondamento introdotti dalle singole operazioni. Osserviamo che la valutazione di una funzione $f$ bencondizionata, pu\myo dare risultati non sufficientemente corretti se effettuata da un algoritmo instabile. 


\section{Facoltativo. Alcuni esercizi}
{\smsp}
\begin{enumerate}

% ESERCIZIO 1

\item {\bf{Esercizio facile}}. Si calcoli l'errore relativo tra $1$ e il valore che si ottiene
valutando in Matlab/Octave
$${\frac {(1+\eta)-1} {\eta} }$$   
con $\eta=10^{-1}, 10^{-2}, \ldots, 10^{-15}$. Si consideri poi 
$\eta=8.8817841970012523E-16$ e si calcoli la medesima quantit\'a, 
giustificando i risultati ottenuti {\cite[p. 5, problema 3]{FRO}}. 

\noindent
Suggerimento: quanto vale {\tt{eps}}?
{\smsp}
% ESERCIZIO 2

\item {\bf{Esercizio facile}}. Siano $f:=\tan$ e $g:=\arctan$. Si consideri la funzione composta $$f 
\cdot 
g(x):=f(g(x))=\tan(\arctan(x))=x, \,\,x \in (-\infty,+\infty).$$ Si 
calcolino
$$x=10^{k}, {\mbox{ per }}  k=-20+40h, {\mbox{ e }} 
h=0,0.01,0.02,\ldots,1$$ 
e si valuti l'errore relativo compiuto. Si pu\'o dire che anche 
{\sl{numericamente}} $\tan(\arctan(x))=x$?
{\smsp}
% ESERCIZIO 4

\item {\bf{Esercizio facoltativo di media difficolt\mya}}. Esistono pi\myu successioni che approssimano $\pi$ e sono attribuite ad Archimede. Ad esempio, osservato che questi non \mye altro che l'area del cerchio avente raggio $1$, si inscrivono nel cerchio al variare di $p=2,3,\ldots$ dei poligoni regolari aventi $2^p$ lati. Osserviamo che per $p=2$, si deve determinare l'area del quadrato inscritto, che con facili conti \mye uguale a $2$.

Nel caso generale, si osserva che il poligono consiste di $2^p$ triangoli in cui un lato corrisponde ad un lato del poligono e un vertice con il centro del cerchio (si confronti con le figure).

 \begin{figure}\label{fig1s}
 \centering
   {\includegraphics[scale=0.35,clip]{archimede_8.eps}}
   {\includegraphics[scale=0.35,clip]{archimede_16.eps}}
 \caption{Grafico che illustra le suddivisioni considerate dall'algoritmo di Archimede, per $p=3$, $p=4$.}
 \end{figure}

Se indichiamo con $\theta$ l'angolo al centro di ogni triangolo, si verifica che la sua area \mye $\frac{\sin {(\theta)}}{2}$. In particolare per un poligono di $2^p$ lati, si ha $\theta_p=\frac{2\pi}{2^p}$ e l'area del poligono inscritto, costituito da $2^p$ triangoli uguali, \mye 
$$I_p=2^p \, \frac{\sin {(\theta_p)}}{2} = 2^p \, \frac{\sin {(\frac{2\pi}{2^p})}}{2}.  $$
In realt\mya Archimede us\myo questa ed altre idee per cercare di approssimare $\pi$ con stime dall'alto e dal basso, via anche poligoni circoscritti. Come citato in {\cite{WIKAR}}:

{\sl{Nel breve lavoro {\rm{La misura del cerchio}} viene dimostrato anzitutto che un cerchio � equivalente a un triangolo con base eguale alla circonferenza e altezza eguale al raggio. Tale risultato \mye ottenuto approssimando arbitrariamente il cerchio, dall'interno e dall'esterno, con poligoni regolari inscritti e circoscritti. Con lo stesso procedimento Archimede espone un metodo con il quale pu\myo approssimare arbitrariamente il rapporto tra circonferenza e diametro di un cerchio dato, rapporto che oggi si indica con $\pi$. Le stime esplicitamente ottenute limitano questo valore fra 22/7 e 3 + 10/71}}.

Secondo {\cite{WOL}}, Archimede us\myo un altro algoritmo per approssimare $\pi$. Visto che $2\pi $ non \mye altro che la lunghezza della circonferenza del cerchio avente raggio uguale a $1$ e questa \mye maggiore del perimetro $a_k$ di un qualsiasi poligono regolare di $n=6 \cdot 2^k$ lati inscritto e minore del perimetro di un qualsiasi poligono regolare di $n=6 \cdot 2^k$ lati circoscritto $b_k$, misurando $a_k$ e $b_k$ si pu\myo affermare che $$a_k \leq 2\pi \leq b_k. $$

\noindent
Si pu\myo inoltre provare che 
$$a_k=2n \,  \sin {\left(\frac{\pi}{n} \right)},$$
$$b_k=2n \, \tan {\left(\frac{\pi}{n}\right)}.$$
Stimare $\pi$ come $$a_k \leq 2 \, \pi \leq b_k.$$ 

\noindent
Per quale $n$ si riesce a determinare $\pi$ con $10$ cifre decimali esatte? Pensare se sia giusto dire $b_k-a_k < 10^{-10}$ allora $\pi$ \mye approssimato da $a_k$ con 10 cifre decimali esatte.

 \begin{figure}\label{fig_archimede}
 \centering
   {\includegraphics[scale=10.0,clip]{stamp_italian_small_gimp.eps}}
 \caption{Un francobollo raffigurante Archimede (287ac-212ac).}
 \end{figure}

\noindent
{\bf{A.}} Si approssimi $\pi$ usando il primo algoritmo di Archimede (basato sull'area di poligoni regolari inscritti) per $p=2:20$. Si stampi l'errore assoluto e relativo compiuto.

\noindent
{\bf{B.}} Stimare $\pi$ come $$a_k \leq \pi \leq b_k$$ mediante l'algoritmo di Archimede basato sulla valutazione dei perimetri $a_k$, $b_k$ di alcuni poligoni regolari. Per quale $n$ si riesce a determinare $\pi$ con $10$ cifre decimali esatte? Per $k=0,\ldots,4$ si ha
\begin{eqnarray}
3.00000 & \leq \pi \leq & 3.46410 \\	
3.10583 & \leq \pi \leq & 3.21539 \\
3.13263 & \leq \pi \leq & 3.15966 	\\
3.13935 & \leq \pi \leq & 3.14609 	\\
3.14103 & \leq \pi \leq & 3.14271
\end{eqnarray}

\noindent
{\bf{Osservazione}}: il fatto che ci sia un $\pi$ nei secondi membri di alcune espressioni non \mye {\sl{un gatto che si morde la coda}}. Infatti \mye solo una trascrizione in radianti di un angolo che ha un significato geometrico indipendente dalla quantit\mya $\pi$. In questi esercizi, per semplificare la questione si usa per\myo $\pi$ per calcolare $\pi$, cosa che dimostra una volta in pi\myu l'abilit\mya di Archimede, che calcol\myo tali quantit\mya con metodi elementari e geometrici.

Si cita il fatto che per $k=4$ Archimede riusci' ad affermare che 
$$\frac{223}{71} \leq \pi \leq \frac{22}{7}.$$
{\smsp}
% ESERCIZIO 5.
\item {\bf{Esercizio, facile facoltativo}}. Posto $h=10^{-1},10^{-2},\ldots,10^{-15}$, si approssimi la derivata di $\exp{(1)}$ con il rapporto incrementale
$$ \frac {\exp{(1+h)}-\exp{(1)}} {h}$$
e quindi si valuti l'errore assoluto compiuto (rispetto alla soluzione $\exp{(1)}$). L'approssimazione migliora al diminuire di $h$?
{\smsp}
% ESERCIZIO 6.
\item {\bf{Esercizio, facile facoltativo}}. Si esegua una tabella in cui si studino a due a due le somme, prodotti, divisioni di NaN, Inf, 0, 1 e confrontarle con i noti risultati di indeterminazione della teoria dei limiti.
{\smsp}
% ESERCIZIO 7.
\item {\bf{Esercizio, facile facoltativo}}. Fissato $\theta=0:(2\pi / 1001):2 \pi$, si valuti $\sin^2{(\theta)} + \cos^2{(\theta)}$ e si calcoli l'errore assoluto rispetto il valore $1$.
\end{enumerate}






\begin{center}
\begin{table}\label{tabden}
\small
\begin{tabular}{| c | c | c | c |}
\hline 
{\mbox{precisione}} & {\mbox{denorm.}} & {\mbox{norm.}} & {\mbox{in decimali}} \\
 {\mbox{singola}} & $\pm 2^{-149} \rightarrow (1-2^{-23}) \cdot 2^{+126}$ &  $\pm 2^{-126} \rightarrow (1-2^{-23}) \cdot 2^{127}$  & $$  $\pm \approx 10^{-44.85} \rightarrow \approx 10^{38.53}$  \\
{\mbox{doppia}} &  $\pm 2^{-1074} \rightarrow (1-2^{-52}) \cdot 2^{+1022}$ &  $\pm 2^{-1022} \rightarrow(2-2^{-52}) \cdot 2^{1023}$  & $\pm \approx 10^{-323.3} \rightarrow \approx 10^{308.3}$  \\
\hline
\end{tabular}
\caption{Tabella rappresentante il range dei numeri denormalizzati e normalizzati}
\end{table}
\end{center}

\end{remark}








\subsection{Facoltativo (argomento difficile). Consistenza, stabilit\mya e convergenza}
Vediamo i dettagli del concetto di stabilit\mya e li legheremo ad altre due propriet\myas, quelle di {\sl{consistenza}} e {\sl{convergenza}} (cf.{\cite[p.39-41]{MATNUM}}).
Supponiamo di voler risolvere il problema 
\begin{equation}\label{stprob}
F(x,d)=0, 
\end{equation} 
e che questo sia ben posto, cio\mye a piccole variazioni di $d$ corrispondano piccole variazioni di $x$. Nella precedente scrittura, la variabile $d$ \mye fissata e si cerca $x$ che risolva il problema (\ref{stprob}).

Un metodo numerico per la soluzione approssimata di $F(x,d)$ costruisce una successione di problemi $$F_n(x_n,d_n)=0, \hsp n \geq 1$$
dipendenti da $n$, col desiderio che sia $$x_n \rightarrow x, \hsp n \rightarrow \infty.$$
Se il dato $d$ \mye ammissibile per $F_n$, cio\mye ha senso risolvere $F_n(x,d)=0$, si dice che il metodo \mye {\sl{consistente}} se per $x$ soluzione del problema $F(x,d)=0$ si ha
$$F_n(x,d)=F_n(x,d)-F(x,d) \rightarrow 0, \hsp n \rightarrow \infty.$$
Il metodo si dice {\sl{fortemente consistente}} se in particolare 
$$F_n(x,d)=F_n(x,d)-F(x,d) = 0, \hsp \forall n.$$

Come detto in precedenza, un metodo \mye stabile (talvolta si dice {\sl{ben posto}}) se per ogni $n$ fissato esiste e sia unica la soluzione $x_n$ del problema $F(x_n,d_n)=0$ e che $x_n$ dipenda con continuit\mya dai dati cio\mye
$$\forall \eta > 0, \hsp \exists K_n(\eta,d_n): \hsp \|\delta d_n\| < \eta \Rightarrow  \|\delta x_n\| \leq K_n(\eta,d_n)\|\delta d_n\|.$$

Il proposito di un metodo 	\mye ovviamente di costruire, attraverso problemi numerici$$F_n(x_n,d_n)=0,$$ una successione di $x_n$ che si avvicini sempre pi\myu a $x$ al crescere di $n$, cio\mye il metodo sia {\sl{convergente}}. In termini pi\myu rigorosi, se $F(x(d),d)=0$ e $F_n(x_n(d+\delta d_n),d+\delta d_n)=0$
\begin{eqnarray}
\forall \epsilon &> 0& \hsp  \exists n_0(\epsilon), \exists \delta(n_0,\epsilon) > 0: \forall n > n_0(\epsilon), \forall \|\delta d_n\| < \delta(n_0,\epsilon) \nonumber \\ &\hsp& \Rightarrow \|x(d) -x_n(d+\delta d_n)\| \leq \epsilon.
\end{eqnarray}

\noindent Il teorema di Lax-Richtmyer mostra come queste tre propriet\mya siano interconnesse, cio\mye 
\vspace{0.25cm}
\begin{theorem}
Per un metodo numerico consistente, la stabilit\mya \mye equivalente alla convergenza.
\end{theorem}
\vspace{0.25cm}

