You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1875 lines
97 KiB
TeX

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

\documentclass[10pt,landscape]{article}
\usepackage{amssymb,amsmath,amsthm,amsfonts}
\usepackage{multicol,multirow}
\usepackage{marvosym}
\usepackage{calc}
\usepackage{ifthen}
\usepackage[landscape]{geometry}
\usepackage[colorlinks=true,citecolor=blue,linkcolor=blue]{hyperref}
\usepackage{notes_2023}
\usepackage{quiver}
\setlength{\extrarowheight}{0pt}
\renewcommand{\sp}{\operatorname{sp}}
\ifthenelse{\lengthtest { \paperwidth = 11in}}
{ \geometry{top=.5in,left=.5in,right=.5in,bottom=.5in} }
{\ifthenelse{ \lengthtest{ \paperwidth = 297mm}}
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
}
\DeclareMathOperator{\DFT}{DFT}
\DeclareMathOperator{\IDFT}{IDFT}
\newcommand{\ff}{\mathcal{F}}
\newcommand{\ein}{\varepsilon_{\text{in}}}
\newcommand{\ealg}{\varepsilon_{\text{alg}}}
\newcommand{\ean}{\varepsilon_{\text{an}}}
\newcommand{\etot}{\varepsilon_{\text{tot}}}
\renewcommand{\eps}{\varepsilon}
%\pagestyle{empty}
\newcommand{\tx}{\Tilde{x}}
\newcommand{\ty}{\Tilde{y}}
\newcommand{\tz}{\Tilde{z}}
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
{-1ex plus -.5ex minus -.2ex}%
{0.5ex plus .2ex}%x
{\normalfont\large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
{-1explus -.5ex minus -.2ex}%
{0.5ex plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
{-1ex plus -.5ex minus -.2ex}%
{1ex plus .2ex}%
{\normalfont\small\bfseries}}
\makeatother
\setcounter{secnumdepth}{0}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}
% -----------------------------------------------------------------------
\title{Schede riassuntive di Analisi Numerica}
\begin{document}
\parskip=0.7ex
\raggedright
\footnotesize
\begin{center}
\Large{\textbf{Schede riassuntive di Analisi Numerica}} \\
\end{center}
\begin{multicols}{3}
\setlength{\premulticols}{1pt}
\setlength{\postmulticols}{1pt}
\setlength{\multicolsep}{1pt}
\setlength{\columnsep}{2pt}
\section{Analisi dell'errore}
Se $\tilde{x}$ è un'approssimazione di $x$ definiamo $\tilde{x}-x$ come l'\textit{errore assoluto}, $\eps = (\tx-x)/x$ come l'\textit{errore relativo} (rispetto a $x$) e $\eta = (x-\tx)/\tx$ come l'\textit{errore relativo} (rispetto a $\tx$).
In particolare vale che $\tilde{x} = x(1+\eps) = x/(1+\eta)$.
\subsection{Rappresentazione in base}
Sia $B\ge2$ un numero intero, vale allora il seguente risultato:
\begin{theorem}[di rappresentazione in base]
Per ogni numero reale $x\neq0$ esistono e sono unici un intero $p$ ed una successione $\{d_i\}_{i\ge1}$ con le seguenti proprietà:
\begin{enumerate}[(1.)]
\item $0\le d_i\le B-1$
\item $d_1\neq0$
\item per ogni $k>0$ esiste un $j\ge k$ tale che $d_j\neq B-1$
(ossia $\{d_i\}_{i \geq 1}$ è frequentemente diversa da $B-1$)
\item $x$ si scrive come: $$x=\text{sgn}(x)B^p\sum_{i\ge1}d_iB^{-i}$$
\end{enumerate}
\end{theorem}
L'intero $B$ è detto \textit{base della rappresentazione}, gli interi $d_i$ sono dette \textit{cifre della rappresentazione} ed il numero $\sum_{i\ge1}d_iB^{-i}$ viene chiamato \textit{mantissa}. Si scrive $\pp(x)$ per indicare l'esponente $p$ relativo a $x$. \medskip
La condizione ($2$.) è detta di \textit{normalizzazione} e serve a garantire l'unicità della rappresentazione e a memorizzare il numero in maniera più efficiente, mentre la condizione $3$ esclude rappresentazioni con cifre uguali a $B-1$ da un certo punto in poi (per esempio la rappresentazione di $1$ come $0.\overline{9}$ è
esclusa).
\subsection{Numeri \textit{floating point}}
Dati gli interi $B\ge2$, $t\ge1$ ed $M$, $m>0$, si definisce l'insieme $\mathcal{F}(t,B,m,M)$ dei \textbf{numeri di macchina} o \textbf{dei numeri in virgola mobile} o ancora dei \textbf{numeri \textit{floating point}} come l'insieme:
$$\zeroset\cup\{\pm B^p\sum_i^td_iB^{-i}|d_1\neq0,0\le d_i\le B-1,-m\le p\le M\},$$
in particolare $B$ rappresenta la base della rappresentazione,
$t$ la lunghezza della mantissa, $B^{-m}$ il minimo numero che
moltiplica la mantissa e $B^M$ il massimo.
\subsubsection{Troncamento su \texorpdfstring{$\RR$}{} e \texorpdfstring{$\RR^n$}{ℝⁿ} e numero di macchina \texorpdfstring{$u$}{u}}
Sia $x$ un numero reale. Se $-m \leq \pp(x) \leq M$, allora $x$ viene ben rappresentato in $\mathcal{F}$ dal numero $\tx=\fl(x)$,
dove:
\[ x=\sgn(x)B^p\sum_{i\ge1}d_iB^{-i} \implies \tx=\sgn(x)B^p\sum_{i=1}^t d_iB^{-i}, \]
ossia $\tx$ è ottenuto da $x$ troncandone la mantissa al
$t$-esimo termine (\textbf{troncamento}). Facendo così si ottiene
un errore relativo di rappresentazione tale per cui:
\[ \abs{\frac{\tx-x}{x}}<B^{1-t}, \quad \abs{\frac{\tx-x}{\tx}}<B^{1-t}, \]
e si definisce pertanto $u := B^{1-t}$ come la \textbf{precisione di macchina}. In generale, se $y$ è un'approssimazione di $x \in \RR$
tale per cui $\abs{(y-x)/x}$ è minore di $B^{1-c}$ con $c$ intero, si dice che $y$ ha $c$ \textit{cifre significative}. \medskip
Se invece $\pp(x)<-m$ o $\pp(x)>M$ il numero non è rappresentabile
e ci ritroviamo rispettivamente in una situazione di \textit{underflow} o di \textit{overflow}. \medskip
Dato $x\in\RR^n$, si definisce
la rappresentazione $\tx$ rispetto a $x$ in $\mathcal{F}$ come: \[ \tx=(\tx_i)=(\fl(x_i)=(x_i(1+\varepsilon_i)), \quad \abs{\varepsilon_i}<u. \]
\subsubsection{Precisione di un insieme \texorpdfstring{$\ff$}{}}
Dati due sistemi floating point in base $B_1$ e $B_2$ di $t_1$ e $t_2$ cifre, il primo è più preciso del secondo se e solo se vale:
\[ B_1^{1-t_1} < B_2^{1-t_2} \iff t_1>(t_2-1)\frac{\log B_2}{\log B_1}+1 \]
Si può definire in modo analogo l'approssimazione per arrotondamento, osservando che in questo caso l'errore relativo di rappresentazione è limitato da $\frac{1}{2}B^{1-t} = \frac{1}2 u$.
\subsubsection{Aritmetica di macchina}
Siano $a$, $b\in\mathcal{F}(t,B,m,M)$ e sia $\op$ una delle quattro operazioni aritmetiche ($+$, $-$, $\cdot$ e $/$). Si consideri
$c=a \bop b$. Allora la macchina calcola $c$ con l'approssimazione $\hat{c} := \fl(c)$. Vale pertanto che:
\[ \hat{c}=\fl(a \bop b)=c(1+\delta)=c/(1+\eta)\;\con \abs\delta, \abs\eta<u. \]
Gli errori relativi $\delta$ e $\eta$ sono detti \textbf{errori locali} generati dall'operazione $\op$. Un'operazione del tipo $\fl \circ \op$ è detta
\textbf{flop}.
\subsection{Errori nel calcolo di una funzione}
Si utilizza il simbolo $\doteq$ per indicare l'uguaglianza di termini
al \textit{primo ordine}. Si scrive $\varepsilon(x)$ per valutare
l'errore nella variabile $x$.
\subsubsection{Errore inerente}
L'errore relativo di $f(\tx)$ rispetto $f(x)$ viene detto \textbf{errore inerente} e vale:
\[ \ein=\frac{f(\tx)-f(x)}{f(x)}. \]
Tale errore misura il \textit{condizionamento} di un problema, ossia
quanto varia il risultato perturbando l'input. \smallskip
Nel caso di funzioni $f:\RR^n \to \RR$ sufficientemente regolari vale che:
\[ \ein
\doteq \sum_{i=1}^n C_i \delta_i, \]
dove:
\[ \delta_i:=\eps_{x_i}=\frac{\tx_i-x_i}{x_i}, \quad C_i=x_i \frac{\partial f/\partial x_i(x)}{f(x)}. \]
I termini $C_i$ sono detti \textbf{coefficienti di amplificazione} rispetto alla variabile $x_i$. \smallskip
Un problema si dice \textbf{ben condizionato} se una piccola variazione nelle condizioni iniziali produce una piccola variazione in output e si dice \textbf{mal condizionato}
altrimenti. Il condizionamento di un problema varia a seconda della grandezza in modulo dei coefficienti di amplificazione (più sono grandi, più il problema è mal condizionato).
Per le $4$ operazioni aritmetiche elementari $x \bop y$ sono presentati i relativi coeff.~di amplificazione:
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Operazione ($\op$) & $C_1$ & $C_2$ \\ \hline
addizione ($+$) & $x/(x+y)$ & $y/(x+y)$ \\ \hline
sottrazione ($-$) & $x/(x-y)$ & $-y/(x-y)$ \\ \hline
moltiplicazione ($\cdot$) & 1 & 1 \\ \hline
divisione ($/$) & 1 & -1 \\ \hline
\end{tabular}
\end{center}
\subsubsection{Funzioni razionali ed errore algoritmico}
Si ricorda che una funzione $f$ si dice \textit{razionale} se
si può esprimere tramite una formula \textit{finita} che comprende le quattro
operazioni aritmetiche. \smallskip
Se la funzione $f : \RR^n \to \RR$ è
razionale, si può agevolmente calcolarne l'approssimazione
$\varphi = \tilde{f}$ tramite troncamento. Generalmente esistono più modi di implementare la priorità delle operazioni, e una tale scelta di priorità $\varphi$
è detta \textit{algoritmo}. \smallskip
Il discostamento relativo di $\varphi(\tx)$ da $f(\tx)$ (il valore effettivamente
calcolato sull'input perturbato)
viene detto \textbf{errore algoritmico}, che pertanto è così definito:
\[ \ealg=\frac{\varphi(\tx)-f(\tx)}{f(\tx)}. \]
Un problema si dice \textbf{numericamente stabile} (in avanti) se $\abs{\ealg} < ku$ per $k$ costante, e \textbf{numericamente instabile} (in avanti) se non lo è.
\subsubsection{Funzioni regolari non razionali ed errore analitico}
Se $f : \RR^n \to \RR$ non è
razionale, ma è comunque sufficientemente regolare, si può approssimare $f$ tramite una funzione
razionale $g$. Chiamiamo \textbf{errore analitico} il discostamento relativo
di $g$ da $f$ sull'input non perturbato (ossia a priori dell'uso di
aritmetica di macchina):
\[ \ean=\frac{g(x)-f(x)}{f(x)}. \]
Questo errore può essere studiato attraverso gli strumenti
dell'analisi matematica e della teoria dell'approssimazione
delle funzioni (e.g.~polinomi di Taylor e resti di Peano, Lagrange, Cauchy o resto integrale).
\subsubsection{Errore totale}
Definiamo l'\textbf{errore totale} come il discostamento relativo dell'algoritmo $\varphi$ valutato sull'input perturbato dal valore esatto $f(x)$: \[ \etot=\frac{\varphi(\tx)-f(x)}{f(x)}. \]
\begin{proposition}
A meno di termini non lineari vale sempre che:
\[
\etot \doteq \ein + \ealg + \ean(\tx).
\]
\end{proposition}
Pertanto, se la funzione $f$ è razionale,
$\etot \doteq \ein + \ealg$. Questa proposizione giustifica
lo studio separato dei tre errori.
\subsubsection{Calcolo dell'errore algoritmico e dell'errore totale (per funzioni razionali)}
L'unica differenza tra lo studio dell'errore algoritmico e dell'errore totale (per funzioni razionali)
secondo il metodo presentato sta nell'errore $\eps_{x_i}$ che viene dato alle variabili
di input. Infatti, nel caso dell'errore algoritmico, le variabili sono
già ben rappresentate come numeri di macchina e quindi non hanno errore,
mentre nel caso dell'errore totale lo hanno. Pertanto, se una traccia
richiede di calcolare un errore totale su dei numeri di macchina, ciò è
equivalente a calcolarne l'errore algoritmico. \smallskip
Per procedere allo studio dell'errore algoritmico conviene utilizzare dei grafi orientati con le op.~aritmetiche segnando ogni flop come un nuovo nodo,
a cui sono rivolte le frecce da tutte le variabili impiegate per portare
a termine l'op.~aritmetica. Il più
semplice di questi grafi, che rappresenta $S = A \bop B$, è presentato
di seguito:
% https://q.uiver.app/#q=WzAsNixbMSwwLCJBIl0sWzMsMCwiQiJdLFsyLDEsIlMiXSxbNCwwXSxbMCwwXSxbMiwyXSxbMCwyLCJDX0EiLDIseyJsYWJlbF9wb3NpdGlvbiI6NjB9XSxbMSwyLCJDX0IiLDAseyJsYWJlbF9wb3NpdGlvbiI6NjB9XSxbNSwyLCJcXGRlbHRhIiwxLHsibGFiZWxfcG9zaXRpb24iOjEwMCwib2Zmc2V0IjoyLCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbNCwwLCJcXHZhcmVwc2lsb25fQSIsMCx7ImxhYmVsX3Bvc2l0aW9uIjo5MCwib2Zmc2V0Ijo1LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMSwzLCJcXHZhcmVwc2lsb25fQiIsMCx7ImxhYmVsX3Bvc2l0aW9uIjoyMCwib2Zmc2V0Ijo1LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XV0=
\[\begin{tikzcd}
{} & A && B & {} \\
&& S \\
&& {}
\arrow["{\varepsilon_A}"{pos=0.9}, shift right=5, draw=none, from=1-1, to=1-2]
\arrow["{C_A}"'{pos=0.6}, from=1-2, to=2-3]
\arrow["{\varepsilon_B}"{pos=0.2}, shift right=5, draw=none, from=1-4, to=1-5]
\arrow["{C_B}"{pos=0.6}, from=1-4, to=2-3]
\arrow["\delta"{description, pos=1}, shift right=2, draw=none, from=3-3, to=2-3]
\end{tikzcd}\]
\vskip -0.1in
In tal caso vale che:
\[ \eps_S=\delta+C_A\eps_A+C_B\eps_B. \]
Una volta ricavato l'errore, è sufficiente maggiorarlo in modulo con una
certa funzione di $u$ per determinare se l'algoritmo è stabile o meno.
\subsubsection{Cancellazione numerica}
In generale per la scelta di un algoritmo è consigliabile \underline{evitare} di \textit{sottrarre numeri dello stesso segno} o di \textit{sommare numeri discordi}. Infatti, se la somma o la differenza di tali numeri è molto vicina
a $0$, i coefficienti di amplificazione hanno modulo molto maggiore
di $1$, e dunque il problema diviene \textit{numericamente instabile}.
\subsubsection{Analisi dell'errore all'indietro}
Sia $f(x_1,\dots,x_n)$ una funzione razionale e si denoti con $\varphi(x_1,\dots,x_n)$ l'algoritmo definito su $\mathcal{F}^n$ i cui valori
sono ottenuti calcolando $f(x_1,\dots,x_n)$ con l'aritmetica di macchina.
Nell'analisi \textit{all'indietro} dell'errore si cercano delle perturbazioni $\delta_i$ tali che denotando $\hat{x}_i=x_i(1+\delta_i)$ risulti:
\[ \varphi(x_1,\dots,x_n)=f(\hat{x}_1,\dots,\hat{x}_n), \]
ovverosia valutare l'algoritmo $\varphi$ su $(x_1, \ldots, x_n)$ diviene equivalente
a calcolare il valore esatto di $f(\hat{x}_1, \ldots, \hat{x}_n)$. \smallskip
Agendo in questo modo per calcolare l'errore algoritmico $\ealg$ è
sufficiente calcolare in realtà l'errore inerente $\ein$ sulle perturbazioni $\delta_i$. \smallskip
Si riporta lo schema risolutivo di un tipico esercizio sull'analisi all'indietro:
\begin{itemize}
\item Si calcoli $f(\hat{x}_1, \ldots, \hat{x}_n)$, dove $\hat{x}_i = x(1+\delta_i)$ e i vari $\delta_i$ sono variabili libere.
\item Si calcoli $\varphi(x_1, \ldots, x_n)$ sostituendo a ogni $j$-esima flop
$\fl(\tilde{s_1} \bop \tilde{s_2})$ il valore esatto $(\tilde{s_1} \bop \tilde{s_2})(1+\eps_j)$ dove $\abs{\eps_j} < u$, procedendo poi a ritroso
nelle flop di $\tilde{s_1}$ e di $\tilde{s_2}$.
\item Si risolva il sistema $f(\hat{x}_1, \ldots, \hat{x}_n) = \varphi(x_1, \ldots, x_n)$ nei $\delta_i$ in funzione degli $\eps_j$, maggiorandoli alla fine.
\end{itemize}
Un algoritmo si dice \textbf{numericamente stabile all'indietro} se è
possibile effettuare un analisi all'indietro per cui $\ealg < ku$ con
$k$ costante.
\section{Algebra lineare numerica}
\subsection{Matrici di permutazione e matrici riducibili}
\begin{definition}
Si dice che $P \in \CC^{n \times n}$ è una \textbf{matrice di permutazione}
se esiste $\sigma \in S_n$ tale per cui $P^j = e_{\sigma(j)}$; e in
tal caso si scrive $P_\sigma := P$ per rimarcare la permutazione a cui
$P$ è associata.
\end{definition}
Si osserva in particolare che $\sigma \mapsto P_\sigma$ è un omomorfismo
da $S_n$ alle matrici di permutazioni, che dunque formano un gruppo moltiplicativo. Per le matrici di permutazioni valgono dunque le seguenti
proprietà:
\begin{itemize}
\item $P_\sigma \in \RR^{n \times n}$,
\item $P_\sigma P_\tau = P_{\sigma \circ \tau}$,
\item $P_\sigma^T P_\sigma = P_\sigma P_\sigma^T = I$ ($P_\sigma$ è ortogonale e unitaria),
\item $P_\sigma^{-1} = P_\sigma^T = P_{\sigma^{-1}}$,
\item $\det(P_\sigma) = \sgn(\sigma)$,
\item $P_\sigma$ rappresenta la matrice di cambio di base da quella
canonica a quella canonica permutata secondo $\sigma$, ovverosia
da $(e_1, \ldots, e_n)$ a $\left(e_{\sigma(1)}, \ldots, e_{\sigma(n)}\right)$,
\item Se $A \in \CC^{n \times n}$ e $B = P_\sigma^T A P_\sigma$, allora
$b_{ij} = a_{\sigma(i)\sigma(j)}$.
\item Analogamente, se $A \in \CC^{n \times n}$ e $B = P_\sigma A P_\sigma^T = P_{\sigma^{-1}}^T A P_{\sigma^{-1}}$, allora
$b_{ij} = a_{\sigma^{-1}(i)\sigma^{-1}(j)}$, e dunque
$b_{\sigma(i)\sigma(j)} = a_{ij}$.
\end{itemize}
\begin{definition}[Matrice riducibile]
Una matrice $A\in \CC^{n \times n}$ si dice \textbf{riducibile} se esiste una matrice di permutazione $P$ per cui:
\[ PAP^\top=PAP\inv=\begin{pmatrix}
A_{11} & A_{12} \\
0 & A_{22} \\
\end{pmatrix} \]
con $A_{11}$ e $A_{22}$ matrici quadrate, ovverosia se $PAP^\top$ è triangolare a blocchi. \smallskip
Una matrice si dice \textbf{irriducibile} se non è riducibile.
\end{definition}
\vskip -0.1in
Equivalentemente una matrice è riducibile se esiste un sottoinsieme proprio
non vuoto $I$ di $\{e_1, \ldots, e_n\}$ tale per cui $A\cdot I \subseteq \Span(I)$, ovverosia se $I$ è $A$-invariante.
\subsubsection{Grafo associato a una matrice}
Data $A\in \CC^{n \times n}$ si definisce \textbf{grafo associato} $G[A]$ ad $A$ come
il grafo \underline{orientato} con le seguenti proprietà:
\begin{itemize}
\item $G[A]$ ha come nodi $\{1, \ldots, n\}$,
\item Esiste un arco orientato da $i$ a $j$ se e solo se $a_{ij} \neq 0$.
\end{itemize}
Un cammino è una sequenza di archi $i_1 \to i_2 \to \cdots i_m$.
Un grafo si dice \textbf{fortemente connesso} se $\forall i$, $j$ esiste
un cammino da $i$ a $j$.
Se $P$ è una matrice di permutazione, $B := PAP^\top$ ha lo stesso
grafo di $A$ a meno di rinominare i nodi secondo $\sigma$, ovverosia
esiste un arco da $\sigma(i)$ a $\sigma(j)$ in $G[B]$ se e solo se
esiste un arco da $i$ a $j$ in $G[A]$. Pertanto
il grafo di $A$ è fortemente connesso se e solo se
quello di $PAP^\top$ lo è. Questo fatto risulta fondamentale nel
dimostrare il seguente teorema:
\begin{theorem}
$A$ è irriducibile se e solo se il suo grafo associato
è fortemente connesso. Equivalentemente, $A$ è riducibile se e solo se
il suo grafo associato \underline{non} è fortemente connesso.
\end{theorem}
\subsection{Teoremi di Gershgorin e applicazioni}
Sia $A\in \CC^{n \times n}$. Allora si definisce l'$i$-esimo \textbf{cerchio di
Gershgorin} come l'insieme $K_i \subset \CC$ tale per cui:
\[
K_i=\left\{z\in\CC:\abs{z-a_{ii}} \leq r_i\right\},
\]
dove
\[
r_i = \sum_{j=1, \, j\neq i}^n\abs{a_{ij}}
\]
è detto $i$-esimo \textbf{raggio di Gershgorin}. In particolare
$K_i$ è un cerchio in $\CC \cong \RR^2$ di centro $a_{ii}$ e raggio
$r_i$.
\subsubsection{Primo teorema di Gershgorin}
\begin{theorem}[Gershgorin I]
Data $A\in \CC^{n \times n}$, gli autovalori di $A$ appartengono all'insieme
$\bigcup_{i=1}^n K_i$, ossia per ogni autovalore $\lambda$ di $A$ esiste
un $i$ tale per cui $\lambda$ appartiene all'$i$-esimo cerchio $K_i$ di
Gershgorin. \smallskip
Inoltre, se $v$ è un autovettore relativo all'autovalore $\lambda$,
$\lambda \in K_h$, dove $h = \argmax \abs{v_i}$, ovverosia
$h$ è l'indice tra gli $i$ per cui $\abs{v_i}$ è massimo.
\end{theorem}
Dal momento che $A^\top$ è simile ad $A$, $A^\top$ e $A$ condividono gli stessi autovalori. Si può dunque rafforzare la tesi del
teorema cercando gli autovalori nell'intersezione delle unioni dei cerchi relativi ad $A$ e a $A^\top$, ovverosia, se $H_i$ rappresenta l'$i$-esimo cerchio di Gershgorin di $A^\top$, ogni autovalore di $A$ appartiene a:
\[ \left(\bigcup_{i=1}^n K_i\right) \cap \left(\bigcup_{i=1}^n H_i\right). \]
Per lo stesso motivo è utile coniugare $A$ per similitudine, specie se si coniuga $A$ utilizzando matrici diagonali, dacché il coniugio per matrice diagonale, oltre a non alterare gli autovalori, lascia invariati i centri dei cerchi e riscalare i raggi. \smallskip
In particolare, se $D = \diag(d_1, \ldots, d_n)$, allora
$DAD\inv = (d_i a_{ij} d_j^{-1})$ e $D\inv A D = (d_i^{-1} a_{ij} d_j)$.
Pertanto vale il seguente teorema:
\begin{theorem}
Sia $A \in \CC^{n \times n}$. Allora gli autovalori di $A$ appartengono
all'insieme:
\[
\bigcap_{d \in D} \bigcup_{i=1}^n \left\{ z \in \CC : \abs{z - a_{ii}} \leq \frac{1}{\abs{d_i}} \sum_{j=1, \, j\neq i}^n \abs{a_{ij}} \abs{d_j} \right\},
\]
dove $D$ è un sottoinsieme non vuoto di $\CC^n$.
\end{theorem}
\subsubsection{Matrici fortemente dominanti diagonali}
Una matrice $A$ si dice \textbf{fortemente dominante diagonale} se $\abs{a_{ii}}>r_i = \sum_{j=1, \, j\neq i}^n \abs{a_{ij}}$ $\forall i=1$, ..., $n$. Per il primo teorema di
Gershgorin, $A$ non può essere singolare ($0$ non appartiene
per ipotesi a nessun cerchio). Ogni sottomatrice principale di una
matrice fortemente diagonale in senso stretto è allo stesso
modo fortemente diagonale. In particolare, se $A$ è fortemente dominante
diagonale, allora $a_{ii} \neq 0$. \medskip
Si possono definire in modo analogo le matrici dominanti diagonali (in senso debole) cambiando $>$ in $\geq$, ma non è detto che tali matrici siano non singolari. Un controesempio
è infatti la matrice: \[\begin{pmatrix}
1 & 1 \\
1 & 1
\end{pmatrix}. \]
\subsubsection{Secondo teorema di Gershgorin}
\begin{theorem}[Secondo teorema di Gershgorin]
Sia $A\in \CC^{n \times n}$ e sia $K=\bigcup_{i=1}^n K_i$ l'unione dei
cerchi $K_i$ relativi ad $A$. Sia inoltre
\[ K=M_1\cup M_2\;\con M_1\cap M_2=\emptyset, \]
dove $M_1$ è costituito da $n_1$ cerchi e $M_2$ è costituito da $n_2$ cerchi. Allora $M_1$ contiene $n_1$ autovalori e
$M_2$ ne contiene $n_2$.
\end{theorem}
\begin{note}
La dimostrazione di questo teorema sfrutta un argomento di
continuità riguarda al segmento $A(t) = D + t(A-D)$ con
$t \in [0, 1]$ e $D = \diag(A)$. Un simile argomento di continuità
può risultare utile in altri contesti.
\end{note}
Quest'ultimo teorema risulta utile per dimostrare che una matrice
$A \in \RR^{n \times n}$ ha un autovalore reale. Se infatti $K_i$ è un cerchio di $A$ disgiunto dagli altri, allora $K_i$ contiene un unico autovalore, che deve essere dunque necessariamente reale (altrimenti, siccome $A$ è reale, vi sarebbe anche il suo coniugato, e quindi vi sarebbero almeno
$2$ autovalori, assurdo).
\subsubsection{Terzo teorema di Gershgorin}
\begin{theorem}[Terzo teorema di Gershgorin]
Sia $\lambda$ un autovalore di $A$. Si ipotizzi che val le seguenti
condizioni
\begin{enumerate}[(1.)]
\item $A$ è irriducibile,
\item $\lambda \in K_i \implies \lambda \in \partial K_i$ (dove $\partial K_i$ è la frontiera di $K_i$).
\end{enumerate}
Allora $\lambda \in \bigcap \partial K_i$.
\end{theorem}
\subsubsection{Matrici irriducibilmente dominanti diagonali (i.d.d.)}
Una matrice $A\in \CC^{n \times n}$ si dice \textbf{irriducibilmente dominante diagonale} se \begin{enumerate}[(i)]
\item $A$ è irriducibile,
\item $A$ è dominante diagonale \underline{in senso debole},
\item $\exists h$ t.c.~$\abs{a_{hh}}>r_h = \sum_{j=1, \, j\neq h}^n{a_{hj}}$ (ossia con $0 \notin K_h$).
\end{enumerate}
Per il terzo teorema di Gershgorin le matrici i.d.d.~sono non singolari.
Inoltre, se $A$ è i.d.d., allora $a_{ii} \neq 0$ per ogni $i$.
%\\Sia $p(x)=x^n+\sum_{i=0}^{n-1}a_ix^i$ un polinomio a coefficienti in $\CC$. Sia $C$ la matrice compagna di $p(x)$ allora trovare gli zeri di $p(x)$ corrispondono agli autovalori di $C$. (si mostra per induzione che $\det(xI-C)=p(x)$). Si possono dunque localizzare gli zeri di un polinomio tramite i teoremi di Gershgorin. Se $a_0\neq0$ si può utilizzare lo stesso risultato a $q(x)=(1/a_0)x^np(x\inv)$ che fornisce inclusioni per i reciproci degli zeri. \\Un'altra localizzazione degli zeri consiste nel costruire la matrice $A=D-ue^t$ dove $D=diag(x_1,\dots,x_n),e^t=(1,\dots,1)\E u=(u_i)\;\con u_i=p(x_i)/\prod_{j=1,j\neq i}(x_i-x_j)$. Il teorema di Gershgorin applicato ad A fornisce delle stime dell'errore con cui i valori $x_i$ approssimano gli zeri.
\subsection{Forma normale di Schur}
\begin{theorem}
Data $A\in \CC^{n \times n}$, esiste una matrice $U\in \CC^{n \times n}$ unitaria, ovverosia tale per cui $U^HU=UU^H=I_n$, tale che: \[ U^HAU=T\in T_+(n,\CC), \]
ovverosia con $U^H A U$ triangolare superiore.
Si dice in tal caso che $T$ è una \textbf{forma normale di Schur}
di $A$.
\end{theorem}
Generalmente esistono più forme normali di Schur per una matrice,
e possono essere ottenute riordinando gli autovalori e/o le
basi scelte.
\subsubsection{Teorema spettrale}
\begin{theorem}[spettrale]
Se $A$ è hermitiana, allora una sua forma normale di Schur è
sempre una matrice diagonale con elementi reali, ovverosia
$A$ è ortogonalmente diagonalizzabile con autovalori reali.
Se invece $A$ è anti-hermitiana ($A^H = -A$), allora una sua
forma normale di Schur è una matrice diagonale con elementi
immaginari puri, ovverosia $A$ è ortogonalmente diagonalizzabile
con autovalori immaginari puri.
\end{theorem}
\subsubsection{Caratterizzazione delle matrici normali}
\begin{definition}
Una matrice $A \in \CC^{n \times n}$ si dice \textbf{normale}
se $A A^H = A^H A$.
\end{definition}
Si enuncia una caratterizzazione delle matrici triangolari
normali:
\begin{proposition}
Una matrice triangolare $T$ è normale se e solo se è
diagonale.
\end{proposition}
Dalla precedente proposizione si ottiene facilmente la seguente
fondamentale altra caratterizzazione:
\begin{theorem}
Una matrice $A \in \CC^{n \times n}$ è normale
se e solo se la sua forma normale di Schur è diagonale (i.e.~è
ortogonalmente diagonalizzabile).
\end{theorem}
\subsubsection{Autovalori di una matrice unitaria}
Gli autovalori di una matrice unitaria $A$ hanno modulo $1$.
Se infatti $v$ è un autovettore relativo all'autovalore $\lambda$,
vale che:
\[ A v = \lambda v \implies v^H A^H = \overline\lambda v^H, \]
da cui:
\[ v^H v = v^H A^H A v = \overline\lambda v^H A v = \overline\lambda \lambda v^H v \implies \abs{\lambda} = 1. \]
In particolare, se $A$ è reale, $\lambda \in \{\pm1\}$.
\subsubsection{Forma normale di Schur reale}
\begin{definition}[Matrice quasi-triangolare superiore]
Una matrice $T\in \RR^{n \times n}$ si dice \textbf{quasi-triangolare superiore} se si può scrivere nella forma:
\[ \begin{pmatrix}
T_{11} & \dots & T_{1n} \\
& \ddots & \vdots \\
& & T_{mm}
\end{pmatrix}, \]
dove i blocchi matriciali $T_{ii}$ possono essere matrici $2 \times 2$ oppure matrici $1 \times 1$, ossia numeri reali.
\end{definition}
Si definisce analogamente la nozione di matrice quasi-triangolare
\textit{inferiore}. \smallskip
Gli autovalori di una matrice quasi-triangolare $T$ sono gli autovalori delle sottomatrici $T_{ii}$. Il polinomio caratteristico di $T$ è
il prodotto dei polinomi dei blocchi $T_{ii}$. Il determinante di $T$
è il prodotto dei determinanti dei blocchi $T_{ii}$, la traccia è
la somma delle tracce dei blocchi $T_{ii}$. \smallskip
Usando la nozione di matrice quasi-triangolare si può enunciare
un teorema analogo a quello della forma normale di Schur, ma
riadattato per le matrici reali:
\begin{theorem}[Forma normale di Schur reale]
Per ogni matrice $A\in \RR^{n \times n}$ esistono $T\in \RR^{n \times n}$ quasi-triangolare superiore e $Q \in O(n)$ tali per cui:
\[ Q^tAQ=T. \]
\end{theorem}
\subsection{Norme di vettori}
Una \textbf{norma} (vettoriale) su $\CC^n$ è un'applicazione
\[ \norm{\cdot}:\CC^n\longrightarrow\RR \]
tale per cui:
\begin{enumerate}[(1.)]
\item $\forall x\in\CC^n$, $\norm{x} \geq 0$ e $\norm{x}=0\iff x=0$ (definitezza positiva).
\item $\forall\alpha\in\CC$, $\forall x\in\CC^n$, $\norm{\alpha x}=\abs\alpha\norm{x}$ (omogeneità).
\item $\forall x$, $y\in\CC^n$, $\norm{x+y}\le\norm{x}+\norm{y}$ (disuguaglianza triangolare).
\end{enumerate}
Ogni prodotto hermitiano $\langle \cdot, \cdot \rangle$ definito positivo di $\CC^n$ induce una norma ponendo $\norm{v} = \sqrt{\langle v, v \rangle}$. \medskip
Per $p \in [1, \infty)$ si dice \textbf{norma di Hölder} di ordine $p$ la norma:
\[ \norm{x}_p=\left(\sum_{i=1}^n|x_i|^p\right)^{\frac{1}{p}}. \]
Alcuni esempi noti di norme di Hölder sono:
\begin{itemize}
\item $\norm{x}_1=\sum_{i=1}^n \abs{x_i}$, la norma $1$,
\item $\norm{x}_2=\left(\sum_{i=1}^nx_i^2\right)^{\frac{1}{2}} = \sqrt{x^H x}$, detta anche \textit{norma euclidea}, indotta dal prodotto hermitiano standard di $\CC^n$,
\item $\norm{x}_{\infty}:=\lim_{p \to \infty} \norm{x}_p = \max_{i}\abs{x_i}$.
\end{itemize}
Per una norma l'insieme $S = \{x\in\CC^n \mid \norm{x}\le1\}$ è un insieme convesso. Da ciò si deduce che per $0<p<1$ l'espressione (generalizzata) $\norm{x}_p$ non è una norma. \smallskip
Data una norma $\norm{\cdot}$ su $\CC^n$ e data $S\in \CC^{n \times n}$ non singolare, allora esiste la norma (indotta da) $S$, definita in
modo tale che:
\[ \norm{\cdot}_S:x\mapsto\norm{Sx}. \]
Inoltre vale la seguente caratterizzazione:
\begin{proposition}
Una norma $\norm{\cdot}$ è indotta da un prodotto scalare se e solo se vale la \textit{legge del parallelogramma},
ossia se e solo se:
\[ \norm{x+y}^2+\norm{x-y}^2=2(\norm{x}^2+\norm{y}^2) \]
\end{proposition}
A partire da questo risultato, si deduce che le norme $1$ e $\infty$ non sono indotte da nessun prodotto scalare. \medskip
Ogni norma è una \textbf{funzione uniformemente continua}, cioè vale che, $\forall \varepsilon > 0$, esiste $\delta > 0$ tale per cui:
\[ \forall x,y\in\CC^n, \norm{x-y}_2 < \delta \implies \abs{\norm{x}-\norm{y}} < \varepsilon, \]
espressione che segue dal fatto che una norma è Lipschitziana (deriva dalla \textit{disuguaglianza triangolare}).
Equivalentemente vale che per ogni $\eps > 0$ esiste $\delta > 0$ tale
per cui:
\[ \forall x,y\in\CC^n, \abs{x_i-y_i} < \delta \implies \abs{\norm{x}-\norm{y}} \leq \varepsilon. \]
A partire da questo risultato si può dimostrare il seguente fondamentale
teorema:
\begin{theorem}[Equivalenza tra norme]
Per ogni coppia di norme $\norm{\cdot}'$ e $\norm{\cdot}''$ su $\CC^n$, esistono due costanti positive $\alpha$ e $\beta$ (dipendenti da $n$) tali per cui:
\[ \alpha\norm{x}'\le\norm{x}''\le\beta\norm{x}' \quad \forall x\in\CC^n. \]
In altre parole, le norme su $\CC^n$ sono bi-lipschitziane tra loro.
\end{theorem}
Infatti $S = \{ x \in \CC^n \mid \norm{x}_2 = 1 \}$ è un compatto euclideo (essendo chiuso e limitato, per il teorema di Heine-Borel),
e $\norm{\cdot}$ è continua sulla topologia euclidea. Pertanto tutte le norme di $\CC^n$ inducono la stessa topologia,
ossia quella indotta da $\norm{\cdot}_2$, e quindi coincidono tutti
gli aperti e i chiusi. \smallskip
In particolare per le norme $1$, $2$ e $\infty$ vale che:
\begin{itemize}
\item $\norm{x}_\infty \leq \norm{x}_1 \leq n \norm{x}_\infty$,
\item $\norm{x}_2 \leq \norm{x}_1 \leq \sqrt{n} \norm{x}_2$,
\item $\norm{x}_\infty \leq \norm{x}_2 \leq \sqrt{n} \norm{x}_\infty$.
\end{itemize}
Se $U$ è una matrice unitaria, allora $U$ agisce lasciando invariata
la norma $2$, ovverosia $\norm{Ux}_2 = \norm{x}_2$.
\subsection{Norme di matrici}
Una \textbf{norma matriciale} è un'applicazione \[ \norm{\cdot}:\CC^{n \times n}\to\RR \]
per la quale valgono le seguenti quattro proprietà:
\begin{enumerate}[(1.)]
\item $\forall A\in \CC^{n \times n}$, $\norm{A}\ge0$ e $\norm{A}=0\iff A=0$ (definitezza positiva),
\item $\forall \lambda\in\CC$, $\forall A\in \CC^{n \times n}$, $\norm{\lambda A}=\abs\lambda\norm{A}$ (omogeneità),
\item $\norm{A+B}\le\norm{A}+\norm{B}$ $\forall A$,$B\in \CC^{n \times n}$ (disuguauglianza triangolare),
\item $\norm{AB}\le\norm{A}\norm{B}$ $\forall A$, $B\in \CC^{n \times n}$ (proprietà submoltiplicativa).
\end{enumerate}
\subsubsection{Norma di Frobenius}
Si definisce la \textbf{norma di Frobenius} l'applicazione che
agisce su $A \in \CC^{n \times n}$ in modo tale che:
\[ \norm{A}_F=\left(\sum_{i=1}^n\sum_{j=1}^n\abs{a_{ij}}^2\right)^{\frac{1}{2}}=\sqrt{\tr(A^HA)}. \]
In particolare la norma di Frobenius è esattamente la norma euclidea
dello spazio $\CC^{n \times n}$ immerso in $\CC^{n^2}$
a cui è naturalmente isomorfo associando ad $A$ il vettore
$(A_i^\top)_i$ ottenuto trasponendo le righe e sovrapponendole
ordinatamente.
\subsubsection{Norme matriciali indotte}
\begin{note}
Si ricorda che, data una norma $\norm{\cdot}$, l'insieme $S=\{x\in\CC^n \tc \norm{x}=1\}$ è chiuso e limitato (in tutte le topologie indotte da norme, essendo
equivalenti). Allora, per il teorema di Heine-Borel, $S$ è
compatto, e dunque una funzione continua $f : S \to \RR$ ammette massimo
per il teorema di Weierstrass.
\end{note}
\begin{note}
Una mappa lineare da $\CC^n$ in sé è continua. Dunque è possibile applicare
il teorema di Weierstrass alla funzione
$\norm{ \cdot } \circ f_A$ ristretta su $S$, dove $f_A$ è l'app.~indotta da una matrice $A$.
\end{note}
\begin{definition}
Data una norma vettoriale $\norm{\cdot}:\CC^n\to\RR$, si definisce la \textbf{norma matriciale indotta} (o la corrispondente \textit{norma operatore}), come la norma che agisce su $A \in \CC^{n \times n}$ in modo
tale che:
\[ \norm{A}:=\max_{\norm{x}=1} \norm{Ax}=\max_{x \in S} \norm{Ax}=\max_{x \in \CC^n \setminuszero} \frac{\norm{Ax}}{\norm{x}}. \]
\end{definition}
Per ogni norma operatore valgono le due seguenti aggiuntive
proprietà, \textit{oltre quelle caratterizzanti una norma}:
\begin{enumerate}[(1.)]
\item $\norm{Ax}\le\norm{A}\norm{x}$, $\forall A\in \CC^{n \times n}$, $\forall x\in \CC^n$,
\item $\norm{I}=1$.
\end{enumerate}
Poiché $\norm{I}_F = \sqrt{n}$, la norma di Frobenius non è in generale indotta
da alcuna norma vettoriale. \smallskip
Per le norme $1$, $2$, $\infty$ valgono le seguenti identità: \begin{itemize}
\item $\displaystyle \norm{A}_1=\max_{j=1,\dots,n}\sum_{i=1}^n \abs{a_{ij}} = \max_{j=1,\ldots,n} \norm{A^j}_1$,
\item $\displaystyle \norm{A}_\infty=\max_{i=1,\dots,n}\sum_{j=1}^n \abs{a_{ij}} = \max_{i=1,\ldots,n} \norm{A_i}_1$,
\item $\norm{A}_2=\sqrt{\rho(A^HA)}$, dove $\rho(A^H A)$ è l'autovalore di valore assoluto maggiore di $A^H A$ (\textit{raggio spettrale}).
\end{itemize}
Si osserva immediatamente che la norma matriciale $2$ è computazionalmente più difficile
da calcolare rispetto alle norme $1$ e $\infty$. Inoltre, se $A$ è simmetrica, le norme $1$ e $\infty$ coincidono. \smallskip
Poiché $\norm{A}_F = \sqrt{\tr(A^H A)}$ è la radice della somma degli autovalori di $A^H A$, vale in particolare che $\norm{A}_F \geq \norm{A}_2$. Si osserva che $A^H A$ è semidefinita positiva, e dunque i suoi autovalori sono non negativi. \smallskip
Se $U$ è unitaria e $B = UA$, vale che:
\[ B^H B = (UA)^H UA = A^H U^H U A = A^H A, \]
e quindi $B$ e $A$ condividono la stessa norma di Frobenius e
la stessa norma $2$. Analogamente si vede che $AU$ e $A$ condividono
le stesse due norme. Equivalentemente, la moltiplicazione per matrice unitaria (sia a destra che a sinistra) lascia invariata sia la norma $2$ che quella di Frobenius. In particolare, se $U$ e $V$ sono
unitarie, $\norm{UAV}_2 = \norm{A}_2$ e $\norm{UAV}_F = \norm{A}_F$. \smallskip
Se $A$ è normale, allora gli autovalori di $A^H A$ sono i moduli
quadrati degli autovalori di $A$. Pertanto, per $A$ normale,
$\norm{A}_2 = \max_{\lambda \in \sp(A)} \abs{\lambda} = \rho(A)$
e $\norm{A}_F = \sqrt{\sum_{\lambda \in \sp(A)} \abs{\lambda}^2}$.
Si è usato che la forma normale di Schur di $A$ è diagonale e che le
trasformazioni unitarie non variano né $\norm{A}_2$
$\norm{A}_F$. \smallskip
Valgono inoltre le seguenti altre due disuguaglianze:
\begin{itemize}
\item $\norm{A}_F \leq \sqrt{r} \norm{A}_2 \leq \sqrt{n} \norm{A}_2$, dove $r = \rg(A)$,
\item $\norm{A}_2^2 \leq \norm{A}_1 \cdot \norm{A}_\infty$.
\end{itemize}
\subsubsection{Norma indotta da una matrice non singolare \texorpdfstring{$S$}{S}}
Sia $\norm{\cdot}$ una norma vettoriale e $S\in \CC^{n \times n}$ una matrice non singolare. Allora, data la
norma vettoriale $\norm{x}_S := \norm{Sx}$, vale che:
\[ \norm{A}_S=\max_{\norm{x}_S=1}\norm{Ax}_S=\max_{\norm{x}_S=1}\norm{SAx}=
\max_{\norm{Sx}=1}{\norm{SAS\inv Sx}}, \]
e quindi, sfruttando che $S$ è non singolare:
\[ \norm{A}_S=\max_{\norm{y}=1}{\norm{SAS\inv y}}, \]
ossia vale che:
\[ \norm{A}_S = \norm{SAS\inv}. \]
\subsubsection{Norme e raggi spettrali}
\begin{definition}
Data $A\in \CC^{n \times n}$, si definisce \textbf{raggio spettrale} $\rho(A)$
il modulo dell'autovalore massimo di $A$, ossia:
\[ \rho(A)=\max\{\abs\lambda \mid \lambda\text{ autovalore di } A\}. \]
\end{definition}
Se $x$ è un autovettore relativo a $\rho(A)$ di modulo unitario
rispetto a una norma $\norm{\cdot}$, allora vale che:
\[ \norm{Ax} = \norm{\rho(A) x} = \rho(A) \norm{x} = \rho(A), \]
e dunque $\rho(A) \leq \norm{A}$ per ogni $A$. In particolare
$\norm{A} \geq \abs{\lambda}$ per ogni autovalore $\lambda$. \smallskip
Si enunciano inoltre i seguenti teoremi:
\begin{theorem}
Sia $A \in \CC^{n \times n}$. Allora per ogni $\varepsilon > 0$ esiste
una norma indotta $\norm{\cdot}$ tale per cui:
\[ \rho(A) \leq \norm{A} \leq \rho(A) + \varepsilon. \]
Inoltre, se gli autovalori di modulo massimo di $A$ appartengono solo
a blocchi di Jordan di taglia $1$, allora esiste una norma
per cui $\norm{A} = \rho(A)$.
\end{theorem}
\begin{theorem}
Sia $\norm{\cdot}$ una norma matriciale. Allora vale la seguente identità:
\[ \lim_{k\to+\infty}\norm{A^k}^{\frac{1}{k}}=\rho(A). \]
\end{theorem}
Se $A\in \CC^{n \times n}$ è tale per cui $\norm{A}<1$ dove $\norm{\cdot}$ è una norma matriciale indotta, allora $1$ non
può essere autovalore di $A$, e dunque $I-A$ è invertibile. Inoltre
vale che:\[ \norm{(I-A)\inv}\le\frac{1}{1-\norm{A}}. \]
\subsection{Condizionamento di un sistema lineare e numero di condizionamento}
Data $A\in \CC^{n \times n}$ non singolare e dato un vettore $b\in\CC^n\setminuszero$ si vuole studiare il condizionamento del problema $Ax=b$, ossia di un sistema lineare. \medskip
Consideriamo il problema $(A+\delta_A)y=b+\delta_b$, dove perturbiamo il sistema originale mediante dei parametri $\delta_A$ e
$\delta_B$ di cui conosciamo i rapporti $\frac{\norm{\delta_b}}{\norm{b}}$ e $\frac{\norm{\delta_A}}{\norm{A}}$, cercando di ottenere informazioni riguardo
$\frac{\norm{\delta_x}}{\norm{x}}$, sostituendo $y=x+\delta_x$. \medskip
\begin{definition}
Si dice \textbf{numero di condizionamento} $\mu(A)$ di $A$ nella norma $\norm{\cdot}$ il valore:
\[ \mu(A)=\norm{A}\norm{A\inv}. \]
Si scrive $\mu_p(A)$ per intendere $\norm{A}_p \norm{A\inv}_p$.
\end{definition}
Studiamo in particolare la perturbazione di $Ax=b$ nel caso in cui $\delta_A=0$.
\begin{proposition}
Se $\delta_A = 0$, allora vale la seguente disuguaglianza:
\[ \frac{\norm{\delta_x}}{\norm{x}}\le\norm{A}\norm{A\inv}\frac{\norm{\delta_b}}{\norm{b}} = \mu(A) \frac{\norm{\delta_b}}{\norm{b}}. \]
In generale, per $\delta_A \neq 0$ e
$A + \delta_A$ invertibile, vale che:
\[ \varepsilon_x\le\frac{\norm{A}\norm{A\inv}}{1-\varepsilon_A\norm{A}\norm{A\inv}}(\varepsilon_A+\varepsilon_B), \]
dove $\eps_t = \norm{\delta_t}/\norm{t}$.
\end{proposition}
Pertanto il sistema è \textbf{ben condizionato} se $\mu(A)$ è
relativamente piccolo. \smallskip
Per il numero di condizionamento valgono le seguenti proprietà:
\begin{itemize}
\item $\mu(A) \geq \norm{I}$ per la \textit{proprietà submoltiplicativa},
\item $\mu(A) \geq 1$ per $\norm{\cdot}$ norma operatore ($\norm{I} = 1$),
\item $\mu_2(U)=1$ per $U$ unitaria.
\end{itemize}
Per $A$ normale vale la seguente identità:
\[\mu_2(A) = \frac{\max_{\lambda \in \sp(A)} \abs{\lambda}}{\min_{\lambda \in \sp(A)} \abs{\lambda}}. \]
Inoltre vale la seguente disuguaglianza:
\[
\mu_2(A) \leq \mu(A),
\]
dove $\mu(A)$ è riferito a qualsiasi altra norma operatore.
\section{Metodi diretti per sistemi lineari}
Ci si propone di risolvere il sistema $Ax=b$ scrivendo $A$ come prodotto di matrici ``consone'' e facilmente invertibili. Se
infatti $A=PQ$, allora il sistema $PQx=b$ può essere risolto
come:
\[
\begin{cases}
Py=b \\
Qx=y
\end{cases}
\]
risolvendo dunque prima $Py=b$ e poi $Qx=y$.
\subsection{Risoluzione di \texorpdfstring{$Ax=b$}{Ax=b} per \texorpdfstring{$A$}{A} triangolare o unitaria}
Sono presentati di seguito tre tipi di matrice per le quali
l'invertibilità è garantita e per cui il sistema $Ax=b$ è facilmente
risolvibile. \smallskip
Se $A$ è \textbf{triangolare inferiore} con $a_{ii}\neq0$ $\forall i$, allora, per risolvere $Ax=b$, è possibile applicare il \textit{metodo di sostituzione in avanti} ponendo: \[ x_1=\frac{b_1}{a_1}, \quad x_i=\frac{1}{a_{ii}}\left(b_i-\sum_{j=1}^{i-1}a_{ij}x_j\right)\;\,\con i\geq 2. \]
Se $A$ è \textbf{triangolare superiore} con $a_{ii}\neq0$ $\forall i$, allora, per risolvere $Ax=b$, è possibile applicare il \textit{metodo di sostituzione all'indietro} ponendo: \[ x_n=\frac{b_n}{a_n}, \quad x_i=\frac{1}{a_{ii}}\left(b_i-\sum_{j=i+1}^n a_{ij} x_j\right)\;\,\con i < n.\]
I due algoritmi presentati hanno un costo computazionale di $n^2$ flops e sono entrambi numericamente stabili all'indietro. \smallskip
Se $A$ è \textbf{unitaria}, $Ax=b \implies x=A^Hb$, e dunque
si verifica che:
\[ x_j=\sum_{i=1}^n \overline{a_{ij}} b_i. \]
Questo algoritmo richiede un costo computazionale di $2n^2-n$ flops ed
è ancora numericamente stabile all'indietro.
\subsection{Fattorizzazione classiche di matrici}
In letteratura esistono $4$ fattorizzazioni classiche:
\begin{enumerate}
\item $A=LU$ con $L$ triangolare inferiore con tutti $1$ sulla diagonale e $U$ triangolare superiore (possibile solo per alcune classi di matrici);
\item $A=PLU$ con $L$, $U$ come sopra e $P$ matrice di permutazione (sempre possibile);
\item $A=P_1LUP_2$ con $L$, $U$ come sopra e $P_1$, $P_2$ matrici di permutazione (sempre possibile);
\item $A=QR$ con $Q$ unitaria e $R$ triangolare superiore (sempre possibile).
\end{enumerate}
\subsubsection{Condizioni per l'esistenza e l'unicità di una fattorizzazione LU}
\begin{definition}
Si dicono \textbf{sottomatrici principali di testa} le sottomatrici di $A$ di cui prendiamo le prime $k$ righe e colonne. Quando si utilizza
l'aggettivo \textit{proprie}, si esclude $A$ stessa.
\end{definition}
Vale la seguente condizione sufficiente per l'esistenza e
l'unicità di una
fattorizzazione LU:
\begin{proposition}
Se tutte le sottomatrici principali di testa proprie sono non singolari allora esiste ed è unica la fattorizzazione $LU$ di $A$.
\end{proposition}
Se non sono verificate le ipotesi può comunque esistere una fattorizzazione $LU$. Per esempio:
\[ \begin{pmatrix}
0 & 1 \\
0 & 2
\end{pmatrix}=\begin{pmatrix}
1 & 0 \\
1 & 1
\end{pmatrix}\begin{pmatrix}
0 & 1 \\
0 & 1
\end{pmatrix}. \]
Se $A$ è invertibile, allora la non singolarità delle sottomatrici
principali di testa diventa una condizione necessaria oltre che
sufficiente per l'esistenza e l'unicità della fattorizzazione LU. \smallskip
Le seguenti classi di matrici ammettono sempre un'unica fattorizzazione
LU:
\begin{itemize}
\item Matrici fortemente dominanti diagonali, le cui sottomatrici
principali di testa sono fortemente dominanti diagonali e dunque
invertibili,
\item Matrici hermitiane definite positive (criterio di Sylvester),
\item Matrici hermitiane definite positive su $\Span(e_1, \ldots, e_{n-1})$ e semidefinite positive su $\CC^n$ (metodo di Jacobi, criterio di Sylvester).
\end{itemize}
\subsection{Matrici elementari}
Dati $\sigma\in\CC$, $u$, $v\in\CC^n$ si dice \textbf{matrice elementare} una matrice $M$ del tipo:
\[M=I-\sigma uv^H.\]
Si osserva che $uv^H$ è della seguente forma:
\[ uv^H = (u_i \overline{v_j})_{ij}. \]
Inoltre $\rg(uv^H) \leq \rg(u) \leq 1$. Se
$u$ o $v$ sono nulli $uv^H$ è necessariamente
nullo. \underline{Non} si deve confondere $uv^H$ con
$u^H v$, che invece è il prodotto hermitiano
complesso computato su $u$ e $v$. \medskip
Un vettore $x$ è autovettore di $M$ se:
\begin{itemize}
\item $x=u \implies Mu=(1-\sigma(v^Hu))u$, e
dunque $u$ è relativo all'autovalore $1-\sigma(v^Hx)$;
\item $x$ t.c.~$v^Hx=0$ ($x$ è ortogonale a $v$) $\implies Mx=x$, il cui relativo autovalore è $1$.
\end{itemize}
Supponiamo che $\sigma(v^H u)$ sia diverso da $0$.
La traccia di $M$ è:
\[ \tr(M)=\tr(I)-\sigma \cdot \tr(uv^H))=(n-1) + (1-\sigma v^Hu). \]
Dal momento che $v^\perp$ ha dimensione $n-1$ -- il
prodotto hermitiano è positivo definito --, allora $\mu_{g}(1) \geq n-1$. \smallskip
Osservando allora che $\tr(M)$ è la somma degli autovalori di
$M$ e che $\mu_{g}(1-\sigma(v^H u)) \geq 1$, si conclude
che gli unici autovalori di $M$ sono proprio $1$, con molteplicità
algebrica e geometrica $n-1$, e $1-\sigma(v^H u)$, con
molteplicità $1$. In particolare $M$ è sempre diagonalizzabile e
vale la seguente proposizione:
\begin{proposition}
Se $\sigma(v^H u) \neq 0$,
gli unici autovettori di $M$ sono i vettori ortogonali a
$v$, che sono punti fissi, e i multipli di $u$.
\end{proposition}
$M$ è non singolare se e solo se $0$ non è autovalore, ossia se
e solo se:
\[ 1-\sigma(v^H u) \neq 0 \iff \sigma(v^H u) \neq 1. \]
Se $M$ è non singolare, allora vale che:
\[ M\inv=I-\tau uv^H\;\con \tau=\frac{-\sigma}{1-\sigma v^Hu}, \]
e dunque anche $M\inv$ è una matrice elementare.
\begin{proposition}
Per ogni $x$ e $y \in \CC^n\setminuszero$ esiste $M$ matrice elementare con $\det M \neq0$ tale che $Mx=y$.
In particolare è sufficiente scegliere $v$ non ortogonale
sia a $x$ che a $y$ e porre $\sigma u=\frac{x-y}{v^Hx}$.
\end{proposition}
\subsubsection{Matrici elementari di Gauss e applicazione alla fattorizzazione LU}
\begin{definition}
Dato $x\in\CC^n$ con $x_1\neq0$ si definisce la relativa \textbf{matrice elementare di Gauss} come la matrice elementare:
\[ M=I-ue_1^T, \quad u^T=\frac{1}{x_1}(0, x_2, \ldots, x_n). \]
\end{definition}
Vale sempre $Mx=x_1 \, e_1$. Inoltre
una matrice elementare di Gauss è sempre invertibile, e
$M^{-1}=I+ue_1^T$. Vale sempre $\det(M) = 1$. Una matrice elementare di Gauss corrisponde a uno step di annichilimento
degli elementi sotto il \textit{pivot}
dell'algoritmo di Gauss. \smallskip
In particolare:
\[ M=\begin{pmatrix}
1 & 0 & \dots & 0 \\
-u_2 & 1 & 0 \\
\vdots & 0 &\ddots \\
-u_n & 0 & \dots & 1
\end{pmatrix}\E M\inv=\begin{pmatrix}
1 & 0 & \dots & 0 \\
u_2 & 1 & 0 \\
\vdots & 0 &\ddots \\
u_n & 0 & \dots & 1
\end{pmatrix}. \]
\begin{algorithm}[Fattorizzazione LU con le matrici di Gauss]
Sia $A\in \CC^{n \times n}$ che soddisfa l'esistenza e unicità della fattorizzazione $LU$. Se $M_1$ è la matrice elementare di Gauss associata alla prima colonna di $A$, allora:
\[ M_1A=\begin{pmatrix}
a_{11} & \dots & a_{1n} \\
0 \\
\vdots & {A_1} \\
0
\end{pmatrix}. \]
Se $A_1=(a_{ij}^{(1)})_{i,j>1}$, allora $a_{ij}^{(1)}=a_{ij}-\frac{a_{i1}}{a_{11}} a_{1j}$. Se $\hat{M}_2$ è la matrice elementare di Gauss che annulla la prima colonna di $A_1$, si definisce $M_2$ in modo tale che:
\[ M_2=\begin{pmatrix}
1 & 0 \\
0 & \hat{M}_2
\end{pmatrix}. \]
Iterando questo procedimento si ottiene il seguente prodotto:
\[ M_{n-1}\dots M_1 A=U, \quad M_1\inv\dots M_{n-1}\inv=L, \]
dove $L$ è triangolare inferiore con $1$ sulla diagonale
e $U$ è triangolare superiore. \smallskip
In particolare vale che $\diag(U)=(a_{11},a_{22}^{(1)},\dots,a_{nn}^{(n-1)})$ e la $j$-esima colonna di $L=(\ell_{ij})$ è la $j$-esima colonna di $M_j$ cambiata di segno. Sono espresse di seguite le relazioni
di ricorrenza:
\[ \begin{cases}
a_{ij}^{(k+1)}=a_{ij}^{(k)}+m_{ij}^{(k)}a_{jk}^{(k)} & i,j=k+1,\dots,n \\
m_{ik}^{(k)}=-\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}} & i=k+1,\dots,n \\
\ell_{ij} = -m_{ij}^{(j)} & i \geq j
\end{cases} \]
Nel caso della risoluzione di un sistema lineare $Ax=b$, l'algoritmo
può essere esteso aggiornando $b$ ad ogni step; in particolare
$b^{(k+1)} = M_k b^{(k)}$ dove $M_k$ è la $k$-esima matrice di Gauss. In tal caso vale che:
\[
b_i^{(k+1)} = b_i^{(k)} + m_{ik}^{(k)} b_k^{(k)}, \quad i = k+1, \ldots, n.
\]
Il costo totale dell'algoritmo è di $\frac{2}{3}n^3+O(n^2)$ operazioni aritmetiche. Se $A$ è anche tridiagonale il costo è $O(n)$.
\end{algorithm}
Riguardo al precedente algoritmo vale la seguente proposizione:
\begin{proposition}
Sia $A \in \CC^{n \times n}$ una matrice con sottomatrici principali proprie di testa non singolari per cui esiste ed è unica la fattorizzazione $A = LU$. Se $\tilde{L}$ e $\tilde{U}$ i valori effettivamente calcolati di $L$ e $U$ tramite il precedente algoritmo in aritmetica di macchina e sia $\Delta_A=A-\tilde{L}\tilde{U}$. Allora vale
elemento per elemento di $\Delta_A$ la seguente disuguaglianza:
\[ \abs{\Delta_A}\le 2nu\left(\abs{A}+|\Tilde{L}|\,|\Tilde{U}|\right)+O(u^2), \]
dove $|T| := (|t_{ij}|)$. \smallskip
Se $\tilde{y}$ è la soluzione del sistema $\tilde{L}y=b$
calcolato realmente in aritmetica di macchina mediante
l'algoritmo di sostituzione in avanti e $\tx$ è il
vettore effettivamente calcolato risolvendo $\tilde{U}x = \tilde{y}$ mediante sostituzione all'indietro, allora
vale che:
\[ (A + \hat{\Delta}_A) \tx = b, \]
con
\[
|\hat{\Delta}_A| \leq 4nu\left(\abs{A}+|\Tilde{L}|\,|\Tilde{U}|\right)+O(u^2), \]
dove $|T| := (|t_{ij}|)$.
\end{proposition}
In particolare questa proposizione mostra che i valori $\tilde{L}$
e $\tilde{U}$ formano una decomposizione $LU$ di una perturbazione
di $A$, e dunque è possibile effettuare un'analisi all'indietro
dell'algoritmo di Gauss. Se i valori in modulo di $A$ sono troppo
grandi, ci si
può aspettare un mal funzionamento in senso numerico del metodo
di eliminazione gaussiana (anche per il calcolo della soluzione $\tx$).
\subsubsection{Strategia di \textit{pivoting} parziale per la decomposizione PLU}
Permutando i pivot è sempre possibile fornire una fattorizzazione
del tipo $PLU$. La \textbf{strategia del \textit{pivoting parziale}} (\textit{massimo pivot parziale}) consiste
nel scegliere al passo $k$ come pivot il termine $a^{(k)}_{hk}$ con $h\ge k$ tale che $|a_{hk}^{(k)}|\ge|a_{ik}^{(k)}|$ per $i=k,\dots,n$. In questo modo se $a^{(k)}_{hk}=0$, allora tutta la parte di colonna
è nulla e si può procedere allo step successivo dell'algoritmo; altrimenti si può scambiare la riga $h$-esima con la riga $k$-esima e
applicare poi l'algoritmo di Gauss. \smallskip
In questo modo si sta moltiplicando per una matrice di permutazione $P$ relativa alla trasposizione $\tau=(h, k)$. Nel caso in
cui $a^{(k)}_{hk}\neq 0$ vale allora che:
\[ A_{k+1}=M_k(P_kA_k). \]
In particolare vale sempre $m_{ij}^{k} \leq 1$ per $i\geq j$. \smallskip
Si osserva inoltre che:
\[
M_k P_k = P_k \tilde{M_k},
\]
dove, se $M_k = I - u e_q^T$, allora
$\tilde{M_k} = I - P_k u e_q^T$ (infatti $\tilde{M_k} = P_k^T M_k P_k$).
Applicando questa strategia ad ogni passo si ottiene allora una fattorizzazione $PA=LU$ dove $P$ è un'opportuna matrice di permutazione, e dunque si ottiene una fattorizzazione $PLU$.
\subsubsection{Matrici elementari di Householder e applicazioni alla fattorizzazione QR}
\begin{definition}
Si definiscono \textbf{matrici elementari di Householder} le
matrici elementari della forma:
\[ M=I-\beta uu^H, \]
con $u\in\CC^n$ e $\beta\in\RR$.
\end{definition}
Se $u \neq 0$ e $\beta = 0$ o $\beta = 2/(u^Hu) = 2/\langle u, u \rangle$, allora una matrice di Householder è unitaria. Inoltre
una matrice di Householder è sempre hermitiana.
\begin{proposition}
Per ogni $x\in\CC^n\setminuszero$ esiste $M$ matrice elementare di Householder tale per cui $Mx=\alpha e_1$ per un dato $\alpha = \theta \norm{x}_2$, dove:
\[ \theta=\begin{cases}
\pm 1 & \text{se } x_1=0, \\
\pm \frac{x_1}{|x_1|} & \text{se } x_1\neq0.
\end{cases}\]
Tale matrice $M$ si ottiene ponendo $u^t=x-\alpha e_1 = (x_1-\alpha,x_2,\dots,x_n)$ e $\beta=\frac{2}{u^Hu}$.
\end{proposition}
Per evitare le cancellazioni nell'implementazione del calcolo di una matrice di Householder, e dunque
migliorare la stabilità numerica, è consigliato scegliere sempre $\theta=-\frac{x_1}{\abs{x_1}}$ per $x_1 \neq 0$ (nel caso
in cui $x_1 = 0$, la scelta è indiffernete). \medskip
\begin{algorithm}
Applicando la stessa filosofia dell'algoritmo di Gauss si possono
utilizzare le matrici di Householder per calcolare la fattorizzazione
$QR$ di una matrice $A$. Sia $u^{(k)}$ il vettore relativo alla $k$-esima matrice di Householder. Allora vale che:
\[
u_i^{(k)} = \begin{cases}
0 & \se i < k, \\
a_{kk}^{(k)}\left(1 + \frac{\sqrt{\sum_{i=k}^n \abs{a_{ik}^{(k)}}^2}}{\abs{a_{kk}^{(k)}}}\right) & \se i = k, \\
a_{ik}^{(k)} & \altrimenti.
\end{cases}
\]
mentre il parametro $\beta^{(k)}$ della stessa matrice è così
dato:
\[
\beta^{(k)} = 2\bigg/\sum_{i=k}^n \abs{u_i^{(k)}}^2
\]
A partire da questi, si ottengono i termini di $A_{k+1}$:
\[
a_{i, j}^{(k+1)} = \begin{cases}
a_{ij}^{(k)} & \se j < k, \se i \leq k, \\
0 & \se j = k, \E i > k, \\
a_{ij}^{(k)} - \beta^{(k)} u_i^{(k)} \sum_{r=k}^n \overline{u}_r^{(k)} a_{rj}^{(k)} & \se i \geq k, j > k.
\end{cases}
\]
Nel caso della risoluzione di un sistema lineare $Ax=b$, l'algoritmo
può essere esteso aggiornando $b$ ad ogni step; in particolare
$b^{(k+1)} = M_k b^{(k)}$ dove $M_k$ è la $k$-esima matrice di Householder. In tal caso vale che:
\[
b_i^{(k+1)} = b_i^{(k)} - \beta^{(k)} u_i^{(k)} \sum_{r=k}^n \overline{u}_r^{(k)} b_r^{(k)}, \quad i=k, \ldots, n.
\]
Il costo totale è di $\frac{4}{3}n^3 + O(n^2)$ operazioni, il
\textit{doppio} di quello dell'algoritmo gaussiano.
\end{algorithm}
Riguardo a quest'ultimo algoritmo vale la seguente proposizione:
\begin{proposition}
Sia $A \in \CC^{n \times n}$ e sia $\tilde{R}$ la matrice triangolare
superiore ottenuta in aritmetica di macchina applicando il metodo di Householder con l'algoritmo
dato in precedenza. Sia inoltre $\tx$ la soluzione ottenuta risolvendo
in aritmetica di macchina il sistema $Ax=b$ con il metodo di Householder,
aggiornando le entrate di $b$. Allora $\tx$ risolve il sistema
$(A + \Delta_A) \tx = b + \delta_b$, dove:
\[
\norm{\Delta_A}_F \leq u(\gamma n^2 \norm{A}_F + n \norm{\tilde{R}}_F) + O(u^2),
\]
\[
\norm{\delta_b}_2 \leq \gamma n^2 u \norm{b}_2 + O(u^2),
\]
dove $\gamma$ è una costante positiva. Inoltre $\norm{\tilde{R}}_F$
differisce da $\norm{\tilde{R}}_F = \norm{\tilde{A}}_F$ ($A = QR$) per un termine proporzionale a $u$, e dunque:
\[
\norm{\Delta_A}_F \leq \gamma u(n^2 + n) \norm{A}_F + O(u^2).
\]
\end{proposition}
In particolare, il metodo di Householder è numericamente stabile.
\section{Metodi stazionari iterativi per sistemi lineari}
\begin{definition}
Dato il sistema lineare $Ax=b$ con $A\in \CC^{n \times n}$ si definisce
un generico \textbf{partizionamento additivo di $A$} una
partizione della forma $A=M-N$ con $\det M\neq0$.
\end{definition}
A partire da ciò possiamo riscrivere equivalentemente il sistema come $Mx=Nx+b$, il quale riconduce alla seguente scrittura equivalente del sistema originale:
\[ x=Px+q, \quad P=M\inv N, \, q=M\inv b. \]
Questa formulazione del sistema viene detta \textbf{problema di punto fisso}.
Una volta fissato $x^{(0)}\in\CC^n$ si può generare in modo naturale una successione di vettori:
\[ x^{(k+1)}=Px^{(k)}+q. \]
Se tale successione ammette limite $x^*$, allora il punto limite $x^*$ è un punto fisso di $Px+q$, ed è dunque l'unica soluzione di $Ax=b$. Questo metodo è detto \textbf{metodo iterativo stazionario}. La matrice $P$ ed il vettore $q$ sono indipendenti da $k$, e quindi la matrice $P$ viene detta \textbf{matrice di iterazione} del metodo. \medskip
Si dice che il metodo iterativo è \textbf{convergente} se per ogni scelta del vettore $x^{(0)}$ la successione $x^{(k)}$ converge alla soluzione $x^*$ del sistema. \smallskip
Se $A$ è invertibile, definiamo la successione $e^{(k)}=x^{(k)}-x^*$ dove $x^*$ è soluzione del sistema. Allora
$e^{(k+1)} = Px^{(k)} + Q - (Px^* + Q) = P e^{(k)}$. A partire da
questa osservazione si dimostra il seguente teorema:
\begin{theorem}
Se esiste una norma di matrice indotta $\norm{\cdot}$ tale che $\norm{P}<1$, allora la matrice $A$ è invertibile. In tal caso
il metodo iterativo è convergente ($\lim_{k \to \infty} \norm{e^{(k)}} \leq \lim_{k \to \infty} \norm{P}^k \norm{e^{(0)}} = 0$).
\end{theorem}
\begin{theorem}
Il metodo iterativo è convergente e $\det A \neq 0$ se e solo se $\rho(P)<1$.
\end{theorem}
Il quoziente $\norm{e^{(k)}}/\norm{e^{(k-1)}}$ rappresenta la riduzione dell'errore al passo $k$-esimo del metodo iterativo rispetto alla norma scelta. Se si considera la media geometrica $\theta_k\left(e^{(0)}\right)$ delle prime $k$ riduzioni, si ricava che:
\[ \theta_k\left(e^{(0)}\right)=\left(\frac{\norm{e^{(1)}}}{\norm{e^{(0)}}}\dots\frac{\norm{e^{(k)}}}{\norm{e^{(k-1)}}}\right)^{\frac{1}{k}}=\left(\frac{\norm{P^ke^{(0)}}}{\norm{e^{(0)}}}\right)^{\frac{1}{k}}\le\norm{P^k}^{\frac{1}{k}}. \]
\begin{definition}
Si definisce \textbf{riduzione asintotica media per passo} di un metodo iterativo con errore iniziale $e^{(0)}$ il valore:
\[ \theta(e^{(0)})=\lim_{k \to \infty}\theta_k(e^{(0)}). \]
Tale riduzione rappresenta la velocità di convergenza del metodo:
più è piccolo il valore, più veloce è il metodo.
\end{definition}
In particolare vale che:
\[
\theta(e^{(0)}) \leq \lim_{k \to \infty}\norm{P^k}^{\frac{1}{k}}=\rho(P).
\]
L'uguaglianza è raggiunta per $e^{(0)}$ pari ad un autovettore
relativo al raggio spettrale di $P$. Se $P$ è nilpotente, allora il metodo
converge in un numero finito di passi. \medskip
Un esempio di metodo iterativo è dato dal \textbf{metodo di Richardson}, che
pone $P = I - \alpha A$, $q = M\inv b = \alpha A$. In particolare tale
metodo genera la successione $x^{(k+1)}=x^{(k)}-\alpha(Ax^{(k)}-b)$,
dove $\alpha \neq 0$ è un opportuno parametro e $Ax_n - b$ è detto
\textit{errore residuo}. \smallskip
Poiché il metodo converge se $\rho(P) < 1$,
l'idea naturale è quella di scegliere $\alpha$ in modo tale che $\rho(P)$ sia
minimo, ricordandosi che $\lambda$ è autovalore di $P$ se e solo se
$\alpha (\lambda + 1)$ è autovalore di $A$. Infatti: \[ \det(\lambda I- P) = \det(\lambda I + I - \alpha A) = \frac{1}{\alpha^n} \det(\alpha(\lambda + 1)I - A).\] Se la matrice è hermitiana e definita positiva, allora $\alpha=1/\norm{A}$, dove
$\norm{\cdot}$ è una norma indotta, garantisce la convergenza del metodo.
\subsubsection{I metodi di Jacobi e Gauss-Seidel}
Sia $A$ tale per cui $a_{ii} \neq 0$. Si può allora decomporre $A$ nel seguente modo:
\[ A=D-B-C, \]
dove:
\begin{itemize}
\item $D$ è diagonale con $d_{ii}=a_{ii}\neq 0$ ($D = \diag(A)$, $D$ invertibile);
\item $B$ è strettamente triangolare inferiore con $b_{ij}=-a_{ij}$ con $i>j$ ($B = -\tril(A)$);
\item $C$ è strettamente triangolare superiore con $c_{ij}=-a_{ij}$ con $i<j$ ($C = -\triu(A)$).
\end{itemize}
Il metodo iterativo ottenuto con il partizionamento additivo $M=D$ e $N=B+C$ è detto \textbf{metodo di Jacobi}, mentre
ponendo $M=D-B$ e $N=C$ si applica il \textbf{metodo di Gauss-Seidel}. \smallskip
Le matrici di iterazione $P=M\inv N$ dei due metodi illustrati sono rispettivamente:
\[ J=D\inv(B+C), \quad G=(D-B)\inv C. \]
\begin{theorem}
Se vale una delle seguenti condizioni allora $\rho(J)$ e $\rho(G)<1$ (e quindi $A$ è invertibile e il metodo iterativo è convergente):
\begin{enumerate}
\item $A$ è fortemente dominante diagonale;
\item $A^T$ è fortemente dominante diagonale;
\item $A$ è irriducibilmente dominante diagonale (i.d.d.);
\item $A^T$ è irriducibilmente dominante diagonale (i.d.d.).
\end{enumerate}
\end{theorem}
L'iterazione del metodo di Jacobi si scrive come:
\[x^{(k+1)}=D\inv((B+C)x^{(k)}+b),\]
che diventa:
\[x_i^{(k+1)}=\frac{1}{a_{ii}}\left(b_i-\sum_{j=1, \,j\neq i}^na_{ij}x_j^{(k)}\right),\]
richiedendo $O(n^2)$ flops. \smallskip
L'iterazione del metodo di Gauss-Seidel si scrive invece come
\[ x^{(k+1)}=(D-B)\inv(Cx^{(k)}+b),\] \[ x^{(k+1)}=D\inv(Bx^{(k+1)}+Cx^{(k)}+b), \]
che diventa:
\[ x_i^{(k+1)}=\frac{1}{a_{ii}}\left(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^na_{ij}x_j^{(k)}\right), \]
richiedendo sempre $O(n^2)$ flops. \smallskip
Il metodo di Jacobi esegue le operazioni su $x^{(k)}$ mentre quello di Gauss-Siedel usa anche le componenti già aggiornate di $x^{(k+1)}$. In generale dunque, il metodo di Gauss-Siedel ha migliori proprietà di convergenza, anche se non è sempre così.
\begin{theorem}[di Stein-Rosenberg]
Se $a_{ii}\neq0$ $\forall i$ e $J$ ha elementi non negativi allora vale una sola delle seguenti proprietà:
\begin{itemize}
\item $\rho(J)=\rho(G)=0$;
\item $0<\rho(G)<\rho(J)<1$;
\item $\rho(J)=\rho(G)=1$;
\item $1<\rho(J)<\rho(G)$.
\end{itemize}
\end{theorem}
\begin{theorem}
Se $A$ è una matrice tridiagonale con elementi diagonali non nulli, allora per ogni autovalore $\lambda$ di $J$ esiste un autovalore $\mu$ di $G$ tale che $\mu=\lambda^2$.
Per ogni autovalore non nullo di $G$ esiste un autovalore $\lambda$ di $J$ tale che $\mu=\lambda^2$. In particolare $\rho(G)=\rho(J)^2$.
\end{theorem}
\subsubsection{Metodi a blocchi}
Se $A\in M_{nm}(\CC)$ è partizionata in $n^2$ blocchi $m\times n$ $A=(A_{ij})$ possiamo considerare una decomposizione additiva $A=D-B-C$ dove $D$ matrice diagonale a blocchi con blocchi diagonali uguali a $A_{ii}$, $B$ la matrice triangolare inferiore a blocchi tale che $B_{ij}=-A_{ij}\;\con i>j\E C$ la matrice triangolare superiore a blocchi tale che $C_{ij}=-A_{ij}\;\con i<j$. \medskip
In questo modo se i blocchi diagonali $A_{ii}$ sono non singolari possiamo considerare i metodi iterativi con $M=D$ e $N=B+C$, e con $M=D-B$ e $N=C$. Il primo è detto \textbf{metodo di Jacobi a blocchi}, mentre il secondo è detto \textbf{metodo di Gauss-Siedel a blocchi}.
\begin{theorem}
Sia $A=(A_{ij})$ una matrice tridiagonale a blocchi, cioè tale che $A_{ij}=0\;\se|i-j|\ge2$ con blocchi diagonali $A_{ii}$ non singolari. Siano $J_B$ e $G_B$ le matrici di iterazione dei metodi di Jacobi a blocchi e di Gauss-Siedel a blocchi. \nl Allora per ogni autovalore $\lambda$ di $J_B$ esiste un autovalore $\mu$ di $G_B$ tale che $\mu=\lambda^2$. Per ogni autovalore non nullo $\mu$ di $G_B$ esiste un autovalore $\lambda$ di $J_B$ tale che $\mu=\lambda^2$. In particolare vale che $\rho(G_B)=\rho(J_B)^2$.
\end{theorem}
\section{Calcolo di zeri di funzioni continue su \texorpdfstring{$\RR$}{}}
Sia $f: [a,b] \to \RR$ continua tale per cui $f(a)f(b)<0$ (i.e.~$f(a)$ ed $f(b)$ sono discordi). Allora, per il teorema degli zeri (o di Bolzano), esiste un punto $\alpha\in[a,b]$ tale
per cui $f(\alpha)=0$, ossia esiste uno zero in $(a, b)$. Lo scopo di questa
sezione è illustrare i metodi
che permettono di generare una successione $\{x_k\}$ che converga ad un
tale $\alpha$.
\subsection{Metodo di bisezione (o \textit{dicotomico})}
Uno dei metodi più semplici, e il più costruttivo per la dimostrazione
del teorema degli zeri, è il metodo di \textbf{bisezione} (o \textit{dicotomico}). Innanzitutto
si presuppone $f(b) > 0$ (e dunque $f(a) < 0$);
altrimenti è sufficiente applicare l'algoritmo al contrario
a $-f(x)$. \smallskip
Al passo $(k+1)$-esimo si considera
$c_k = (a_k + b_k)/2$, dove
$a_0 = a$ e $b_0 = b$. Se $f(c_k) = 0$,
l'algoritmo termina; altrimenti,
se $f(c_k) > 0$, $b_{k+1} = c_k$ e
$a_{k+1} = a_k$, e se $f(c_k) < 0$,
$b_{k+1} = b_k$ e $a_{k+1} = c_k$. \smallskip
Dal momento che gli intervalli $I_k = [a_k, b_k]$
hanno lunghezza $(b-a)/2^k$, per $k \to \infty$
la successione $x_k$ ha limite $\alpha$, che è tale
per cui $f(\alpha) = 0$. Inoltre l'intervallo si dimezza
a ogni step, e dunque il metodo converge esponenzialmente
(non per questo è veloce, anzi: come vedremo, ci sono
metodi estremamenti più veloci che convergono in modo
\textit{doppiamente esponenziale}).
\subsection{Metodi del punto fisso}
I metodi del punto fisso si ottengono trasformando il problema $f(x)=0$ in un problema del tipo $g(x)=x$. Questa trasformazione si può ottenere in infiniti modi diversi. Ad esempio, data una qualsiasi funzione $h(x)$ (diversa da zero nei punti del
dominio di $f(x)$), si può porre:
\[ g(x)=x-\frac{f(x)}{h(x)}, \]
i cui punti fissi sono gli zeri di $f(x)$. \smallskip
Se $g(x)$ è continua, la successione
$x_{k+1} = g(x_k)$, con $x_0 \in \RR$,
se convergente, converge ad un punto fisso
di $g(x)$ (e dunque ad uno zero di $f(x)$).
Questo metodo è detto \textbf{metodo del punto fisso} (o \textit{di iterazione funzionale}) associato a $g(x)$.
\begin{theorem}[del punto fisso]
Sia $\mathcal{I}=[\alpha-\rho,\alpha+\rho]$ e $g(x)\in C^1(\mathcal{I})$ dove $\alpha=g(\alpha)$ e $\rho>0$. Si denoti con $\lambda=\max_{x \in \mathcal{I}}\lvert g'(x) \rvert$.
Se $\lambda<1$ allora per ogni $x_0\in\mathcal{I}$, posto $x_{k+1}=g(x_k)$, vale che:
\[ \lvert x_k-\alpha \rvert \le\lambda^k\rho. \]
Pertanto $x_k\in\mathcal{I}$ e $\lim_k x_k=\alpha$. Inoltre $\alpha$ è l'unico punto fisso di $g(x)$ in $\mathcal{I}$.
\end{theorem}
Supponiamo di avere un intervallo $[a,b]$ in cui è presente un punto fisso
$\alpha$ e che $\lvert g'(x) \rvert<1$ su tale intervallo. Sotto queste ipotesi siamo certi che almeno con una delle due scelte $x_0=a$ o $x_0=b$ la successione è ben definita e converge al punto fisso $\alpha$. Infatti basta prendere rispettivamente $\rho=\alpha-a$ o $\rho=b-\alpha$ ed applicare il teorema. Se la successione $x_k$ cade fuori dall'intervallo, allora si arrestano le iterazioni e si riparte con $x_0$ uguale all'altro estremo. \smallskip
In questo caso la convergenza vale in un intorno opportuno del punto fisso $\alpha$. Denotiamo questo fatto con l'espressione \textbf{convergenza locale}.
Si parla di \textbf{convergenza globale} qualora la convergenza vi sia per
ogni scelta iniziale. \smallskip
Nell'aritmetica a virgola mobile il teorema diventa:
\begin{theorem}
Nelle ipotesi del teorema del punto fisso sia:
\[ \Tilde{x}_{k+1}=g(\Tilde{x}_k)+\delta_k, \]
dove $\lvert \delta_k \rvert \le\delta$ è l'errore commesso nel calcolo di $g(\Tilde{x}_k)$ e $\delta$ è una quantità nota. Posto $\sigma=\delta/(1-\lambda),\se\sigma<\rho$ allora: \[ \lvert\Tilde{x}_k-\alpha\rvert \le(\rho-\sigma)\lambda^k+\sigma. \]
\end{theorem}
Questo teorema ci dice che la distanza di $\Tilde{x}_k$ da $\alpha$ è limitata dalla somma di due parti. La prima converge a zero in modo esponenziale su base $\lambda$. La seconda è costante e rappresenta l'intervallo di incertezza sotto il quale non è consentito andare. \smallskip
Per la funzione $g(x)=x-f(x)$ l'intervallo di incertezza è:
\[ I=\left[\alpha-\frac{\delta}{\lvert f'(\alpha) \rvert},\alpha+\frac{\delta}{\lvert f'(\alpha) \rvert}\right]. \]
Se $g'(x)>0$, allora $I\subseteq [\alpha-\sigma,\alpha+\sigma]$. \smallskip
Si ricorda che:
\[ x_{k+1}-\alpha=g'(\xi_k)(x_k-\alpha), \]
dove $\xi_k \in (\alpha, x_k)$ viene dall'applicazione del teorema di Lagrange. Ciò implica che se $0<g'(x)<1$ con $x\in[\alpha-\rho,\alpha+\rho]$ allora $x_{k+1}-\alpha$ ha lo stesso segno di $x_k-\alpha$. Vale
quindi che:
\[ x_0>\alpha\Rightarrow x_k>\alpha \; \forall k, \quad \alpha<x_{k+1}<x_k, \]
cioè la successione è decrescente. Analogamente se $x_0<\alpha$ la successione è crescente. \medskip
Se invece $-1<g'(x)<0$, la differenza di un punto con $\alpha$ alterna segno,
in particolare per $x_0 > \alpha$ la sottosuccessione $\{x_{2k}\}$ cresce mentre $\{x_{2k+1}\}$ decresce (entrambe al punto $\alpha$).
\subsubsection{Velocità di convergenza}
\begin{definition}
Sia $\{x_k\}$ una successione tale che $\lim_kx_k=\alpha$. Si ponga
allora $e_k = x_k - \alpha$ come l'errore assoluto al passo $k$-esimo. Supponiamo esista il limite della riduzione dell'errore al passo $k$-esimo:
\[ \gamma=\lim_k \abs{\frac{x_{k+1}-\alpha}{x_k-\alpha}} = \lim_k \abs{\frac{e_{k+1}}{e_k}}. \]
La convergenza di $\{x_k\}$ a $\alpha$ è detta allora:
\begin{itemize}
\item lineare (o geometrica) se $0<\gamma<1$;
\item sublineare se $\gamma=1$;
\item superlineare se $\gamma=0$.
\end{itemize}
\end{definition}
Nel caso di convergenza superlineare, se $p>1$ ed esiste il limite:
\[ \lim_k \abs{\frac{x_{k+1}-\alpha}{(x_k-\alpha)^p}} =\sigma, \quad 0<\sigma<\infty \] si dice che la successione \textbf{converge con ordine $p$}.
\begin{remark}
L'ordine di convergenza non è obbligatoriamente intero.
\end{remark}
\begin{theorem}
Sia $g(x)\in C^1([a,b])$ e $\alpha\in(a,b)$ t.c.~$g(\alpha)=\alpha$. Se esiste un $x_0\in[a,b]$ tale che la successione $x_{k+1}=g(x_k)$ converge linearmente ad $\alpha$ con fattore $\gamma$ allora:
\[ \lvert g'(\alpha)\rvert=\gamma. \]
Viceversa, se $0<\lvert g'(\alpha)\rvert<1$ allora esiste un intorno $I$ di $\alpha$ contenuto in $[a,b]$ tale che per ogni $x_0\in I$ la successione $\{x_k\}$ converge ad $\alpha$ in modo lineare con fattore $\gamma=\lvert g'(\alpha) \rvert$.
\end{theorem}
\begin{theorem}
Sia $g(x)\in C^1([a,b])$ e $\alpha\in (a,b)$ t.c.~$g(\alpha)=\alpha$. Se esiste un $x_0\in[a,b]$ tale che la successione $x_{k+1}=g(x_k)$ converge sublinearmente ad $\alpha$ allora:
\[ \abs{g'(\alpha)}=1. \] Viceversa, se $\abs{g'(\alpha)}=1$ esiste un intorno $I$ di $\alpha$ contenuto in $[a,b]$ tale che per ogni $x\in I$, $x\neq\alpha$ vale $\abs{g'(x)}<1$ e $g'(x)$ non cambia segno su $I$ allora tutte le successioni $\{x_k\}$ con $x_0\in I$ convergono ad $\alpha$ in modo sublineare.
\end{theorem}
\begin{theorem}
Sia $g(x)\in C^p([a,b])$ con $p>1$ intero e $\alpha\in(a,b)$ t.c.~$g(\alpha)=\alpha$. Se esiste un $x_0\in[a,b]$ tale che la successione $x_{k+1}=g(x_k)$ converge superlinearmente ad $\alpha$ con ordine di convergenza $p$ allora:
\[ \abs{g^{(k)}(\alpha)}=0 \;\;\;\, 1 \leq k \leq p-1, \quad g^{(p)}(\alpha)\neq0. \] Viceversa se $\abs{g^{(k)}(\alpha)}=0$ per $k=1,\dots,p-1\E g^{(p)}(\alpha)\neq0$ allora esiste un intorno $I$ di $\alpha$ tale che per ogni $x_0\in I$ tutte le successioni $\{x_k\}$ convergono ad $\alpha$ in modo superlineare con ordine $p$.
\end{theorem}
\begin{definition}
La successione $\{x_k\}$ converge ad $\alpha$ \textbf{con ordine almeno $p$} se esiste una costante $\beta$ tale che \[ \abs{x_{k+1}-\alpha}\le\beta \, \abs{x_k-\alpha}^p. \]
\end{definition}
Se una successione converge con ordine $q\ge p$ allora converge anche con ordine almeno $p$. \smallskip
Se una successione $x_k$ converge ad $\alpha$ in modo che l'errore relativo $\eps_k$ al passo $k$-esimo è limitato nel seguente modo:
\[ \varepsilon_k=\abs{x_k-\alpha/\alpha}\le\beta\gamma^{p^k}\]
allora il numero di cifre significative ($1+\log_2(\varepsilon_k\inv)$) è tale che
\[ 1+\log_2 \, \varepsilon_k\inv \ge1+\log_2 \, \beta\inv+p^k\log_2 \,\gamma\inv. \]
\subsubsection{Confronto tra metodi}
Siano dati due metodi iterativi del punto fisso definiti da due funzioni $g_1(x)$ e $g_2(x)$. Si supponga che siano entrambi siano o a convergenza lineare o a convergenza superlineare. Denotiamo con $c_1$, $c_2$ il numero di flops per passo dei due metodi. Se siamo nel caso di convergenza lineare, detti $\gamma_1$, $\gamma_2$ i due fattori di convergenza allora il primo metodo risulta più conveniente se \[ \frac{c_1}{c_2}<\frac{\log{\gamma_1}}{\log{\gamma_2}}. \]
Nel caso di convergenza superlineare, se $p_1$ e $p_2$ sono i due ordini di convergenza, il primo metodo è più efficiente del secondo se \[\frac{c_1}{c_2}<\frac{\log{p_1}}{\log{p_2}}.\]
\subsection{Alcuni metodi del punto fisso}
\subsubsection{Metodo delle secanti}
Sia $f(x)\in C^1([a,b])\E\alpha\in[a,b]\tc f(\alpha)=0$. Il metodo definito dalla funzione $$g(x)=x-\frac{f(x)}{m}$$
dove $m$ è un'opportuna costante è detto \textbf{metodo delle costanti}. \smallskip
Il metodo consiste nel tracciare la retta passante per il punto $(x_k,f(x_k))$ di coefficiente angolare $m$ e considerare come $x_{k+1}$ l'ascissa dell'intersezione di tale retta con l'asse delle ascisse, reiterando. \smallskip
Una condizione sufficiente di convergenza è che valga $\abs{1-f'(x)/m}<1$ in un intorno di circolare di $\alpha$. È sufficiente quindi scegliere $m$ in modo che abbia lo stesso segno di $f'(x)$ e $\abs{m}>\frac{1}{2}\abs{f'(x)}$. Se $f'(\alpha)$ fosse nota, la scelta $m=f'(\alpha)$ darebbe una convergenza superlineare.
\subsubsection{Metodo delle tangenti di Newton}
La funzione $g(x)$ del \textbf{metodo di Newton} è definita nel modo seguente: \[ g(x)=x-\frac{f(x)}{f'(x)}. \]
Per tale metodo vale:
\[
g'(x)=1-\frac{f'(x)^2 - f''(x)f(x)}{f'(x)^2} = \frac{f''(x) f(x)}{f'(x)^2}.
\]
Il metodo consiste nel tracciare la retta passante per il punto $(x_k,f(x_k))$ e tangente a esso e considerare come $x_{k+1}$ l'ascissa dell'intersezione di tale retta con l'asse delle ascisse, reiterando.
\begin{theorem}
Sia $f(x)\in C^2([a,b])$ e sia $\alpha\in(a,b)$ t.c.~$f(\alpha)=0$. Se $f'(\alpha)\neq0$, allora esiste un intorno $I=[\alpha-\rho,\alpha+\rho]\subset[a,b]$ tale che per ogni $x_0\in I$ la successione generata dal metodo di Newton converge ad $\alpha$.
Inoltre se $f''(\alpha)\neq0$ la convergenza è superlineare di ordine $2$, se $f''(\alpha)=0$ la convergenza è di ordine almeno $2$.
\end{theorem}
\begin{theorem}
Sia $f(x)\in C^p([a,b])$ con $p>2$ e $\alpha\in(a,b)$ t.c.~$f(\alpha)=0$. Se $f'(\alpha)=\dots=f^{(p-1)}(\alpha)=0$, $f^{(p)}(\alpha)\neq0$ e $f'(x)\neq0$ per $x\neq\alpha$, allora esiste un intorno $I=[\alpha-\rho,\alpha+\rho]\subset[a,b]$ in cui $f'(x)\neq0$ per $x\in I,x\neq\alpha$ e tale che per ogni $x_0\in I$, la successione generata dal metodo di Newton converge ad $\alpha$. Inoltre $\alpha$ è l'unico zero di $f(x)$ in $I$. La convergenza è lineare con fattore di convergenza $\gamma = 1-1/p$.
\end{theorem}
\begin{theorem}
Se la funzione $f(x)$ è di classe $C^2$ sull'intervallo $I=[\alpha,\alpha+\rho]$ ed è tale che $f'(x)f''(x)>0$ per $x\in I$ allora per ogni $x_0\in I$ la successione generata dal metodo di Newton applicato ad $f(x)$ converge decrescendo ad $\alpha$ con ordine $2$.
Un risultato analogo vale su intervalli del tipo $[\alpha-\rho,\alpha]$, su
cui invece la successione cresce.
\end{theorem}
\begin{example}[Calcolo del reciproco di un numero $a$]
Per calcolare $1/a$ si può porre $f(x)=a-1/x$ e poi applicare il metodo di
Newton.
\end{example}
\begin{example}[Calcolo della radice $p$-esima di un numero $a$]
Per calcolare $\sqrt[p]{a}$ è sufficiente applicare il metodo di Newton
con $f(x) = (x^p-a)x^{-q}$, dove $q\geq 0$.
\end{example}
\begin{example}[Metodo di Aberth]
Se si hanno delle approssimazione $t_1$, ..., $t_n$ di zeri
di $p(x)$, si può applicare il metodo di Newton su
$f(x) = p(x) \big/ \prod_{i=1}^n (x-t_i)$, in modo tale
che $f(t_i)$ sia sempre più grande, diminuendo gli errori e migliorando
le approssimazioni.
\end{example}
\section{Interpolazione di funzioni}
Siano $\varphi_0(x)$, ..., $\varphi_n(x) : [a,b] \to \RR$ funzioni
linearmente indipendenti. Siano $(x_i,y_i)$ $n+1$ valori assegnati (\textit{nodi}) tali che $x_i\in[a,b]$ e $x_i\neq x_j$ se $i\neq j$. \smallskip
Il problema dell'interpolazione consiste nel determinare i coefficienti
$a_i \in \RR$ tali per cui:
\[
f(x)=\sum_{i=0}^na_i \, \varphi_i(x), \qquad f(x_i)=y_i\;\forall i.
\]
Tali condizioni sono dette \textbf{condizioni di interpolazione}.
\subsection{Interpolazione polinomiale}
L'interpolazione polinomiale ricerca il polinomio $p$ di grado $n+2$ che
soddisfi le condizioni di interpolazione di $n+1$ nodi. Sia pertanto $\varphi_i(x)=x^i$. Siano $(x_i, y_i)$ per $i = 0$, ..., $n+1$ i nodi
dell'interpolazione.
\subsubsection{Interpolazione monomiale}
\begin{definition}
Si dice \textbf{matrice di Vandermonde} nei nodi $x_0$, ..., $x_n$ la matrice di taglia $n+2$:
\[
V_n=\begin{pmatrix}
1 & x_0 & \dots & x_0^n \\
1 & x_1 & \dots & x_1^n \\
\vdots & \vdots & &\vdots \\
1 & x_n & \dots & x_n^n
\end{pmatrix}
\]
\end{definition}
\begin{theorem}
Vale $\det V_n=\prod_{j<i}(x_i-x_j)$.
\end{theorem}
Se $a=(a_i)$ è il vettore dei coefficienti di $p(x)$ e $y=(y_i)$ è il vettore
delle immagini nei nodi, il problema dell'interpolazione polinomiale si
riduce a risolvere il sistema lineare $V_n a = y$. \smallskip
Il problema ha dunque un costo computazionale di $\frac{2}{3} (n+2)^3$ (ossia
quello di risoluzione di un sistema lineare), ma risulta essere
numericamente instabile.
\subsubsection{Interpolazione di Lagrange}
\begin{definition}[polinomio di Lagrange]
Si definisce l'$i$-esimo polinomio di Lagrange $L_i(x)$ come:
\[
L_i(x) = \frac{\prod_{j=0,j\neq i}^n(x-x_j)}{\prod_{j=0,j\neq i}^n(x_i-x_j)}.
\]
Questo polinomio è tale per cui $L_i(x_i) = 1$ e $L_i(x_j) = 0$ per
$j \neq i$.
\end{definition}
Considerando dunque come base dell'interpolazione $\phi_i = L_i$,
si ottiene che:
\[
p(x) = \sum_{i=0}^n y_i L_i(x).
\]
Infatti, dacché $V_n$ è invertibile ($\det V_n \neq 0$), allora
esiste un solo polinomio di grado al più $n+2$ che interpola i nodi
$(x_i, y_i)$, e $p(x)$ soddisfa le condizioni di interpolazione.
Inoltre, per $x \neq x_i$, vale la seguente riscrittura:
\[
p(x) = \left[ \prod_{i=0}^n (x-x_i) \right] \left[ \sum_{i=0}^n \frac{y_i/\theta_i}{x-x_i} \right], \quad \theta_i = \prod_{\substack{j=0 \\ j \neq i}}^n (x_i - x_j).
\]
Tramite questa riscrittura il calcolo del primo valore di $p(x)$ impiega $O(n^2)$ flops, ed il costo della valutazione in un nuovo valore costa solo $O(n)$ flops (dacché $\sigma_i$ è già calcolato).
\subsection{Resto dell'interpolazione polinomiale}
Se $f(x)$ è sufficientemente regolare, allora definiamo il \textbf{resto dell'interpolazione} come:
\[ r_n(x)=f(x)-p_n(x), \]
dove $p_n(x)$ è il polinomio di interpolazione di $f(x)$ relativo ai nodi $x_0<\dots<x_n$.
\begin{theorem}
Sia $f(x)\in C^{n+1}([a,b])$ e sia $p_n(x)$ il polinomio di interpolazione di $f(x)$ relativo ai nodi $a\le x_0<\dots<x_n\le b$.
Allora per ogni $x\in[a,b]$ esiste $\xi\in(a,b)$ tale per cui: \[r_n(x)=\left[\prod_{i=0}^n(x-x_i)\right]\frac{f^{(n+1)}(\xi)}{(n+1)!}.\]
\end{theorem}
\theorem{Sia $f(x)\in C^{n+1}[a,b]\E p(x)$ il polinomio di interpolazione di $f(x)$ relativo ai nodi $a\le x_0<\dots<x_n\le b$. Per ogni $x\in[a,b]$ esiste $\xi\in(a,b)$ tale che $$r_n(x)=\prod_{i=0}^n(x-x_i)\frac{f^{(n+1)}(\xi)}{(n+1)!}$$}
\begin{remark}
Avvicinandosi con tutti i nodi a $x_i$ si ottiene un'espressione simile
a quella del resto di Lagrange (ponendo infatti $x_i = x_j$ per ogni $i$, $j$, la formula è proprio quella del resto di Lagrange).
\end{remark}
\subsection{Interpolazione polinomiale nelle radici \texorpdfstring{$n$}{n}-esime dell'unità}
\begin{definition}
Si dice \textbf{radice $n$-esima dell'unità} una radice
di $x^n - 1$ su $\CC$. Si dice \textbf{radice primitiva $n$-esima
dell'unità} il numero complesso $\omega_n$ tale per cui:
\[
\omega_n=\cos{\frac{2\pi}{n}}+i\sin{\frac{2\pi}{n}}.
\]
\end{definition}
Si verifica facilmente che le radici $n$-esime dell'unità formano
un gruppo moltiplicativo generato da $\omega_n$. Le radici dell'unità
soddisfano la seguente proposizione:
\begin{proposition}
Vale l'identità:
\[ \sum_{i=0}^{n-1}\omega_n^{ki}=\begin{cases}
n & \se k\equiv0\!\!\!\pmod{n}, \\
0 & \altrimenti\end{cases} \]
\end{proposition}
Scegliamo come nodi dell'interpolazione le radici $n$-esime dell'unità, detti
\textit{nodi di Fourier}.
Dato il vettore $y=(y_0,\dots,y_{n-1})$, il nostro obiettivo è dunque
trovare i coefficienti $z=(z_0,\dots,z_{n-1})$ del polinomio
$p(t)=\sum_{j=0}^{n-1}z_jt^j$ che soddisfa $p(\omega_n^i)=y_i$ $\forall i$.
\begin{definition}
Si definisce $z = \DFT_n(y) = \DFT(y)$ come la
\textbf{trasformata discreta di Fourier}, e
$y = \IDFT_n(z) = \IDFT(z)$ come la \textbf{trasformata discreta
inversa di Fourier} (l'inverso è ben definito
dal momento che le radici $n$-esime sono distinte).
\end{definition}
\begin{definition}
Si definisce \textbf{matrice di Fourier} di taglia $n-1$ la
matrice di Vandermonde nei nodi di Fourier:
\[
\Omega_n = (\omega_n^{ij}) = (\omega_n^{ij \bmod{n}}).
\]
$\Omega_n$ soddisfa la relazione $\DFT(y) = \Omega_n^{-1} y$ e
$\IDFT(z) = \Omega_n z$.
\end{definition}
\begin{proposition}
Valgono le seguenti proprietà per la matrice di Fourier:
\begin{itemize}
\item $\Omega_n=\Omega_n^T$;
\item $\Omega_n^H\Omega_n=nI$ (pertanto $F_n := \Omega_n/\sqrt{n}$ è unitaria);
\item $\Omega_n^2=n \, \Pi_n$, dove $\Pi_n$ è la matrice di permutazione corrispondente alla permutazione $\sigma$ su $\{0, \ldots, n-1\}$ tale per cui $\sigma(0)=0$ e $\sigma(j)=n-j$ per $j > 0$, ovverosia:
\[
\Pi_n = \begin{pmatrix}
1 & 0 \\
0 & P_{n-1}
\end{pmatrix},
\]
dove $P_{n-1}$ è la matrice identità specchiata orizzontalmente (ossia con soli $1$ sull'antidiagonale), che è tale per cui $P_{n-1}^2 = I$.
\end{itemize}
\end{proposition}
Come corollario della precedente proposizione, si ottiene che
$\Omega_n^{-1} = \frac{1}{n} \Omega_n^H$ e che
$\Omega_n^{-1} = \frac{1}{n} \Pi_n \Omega_n = \frac{1}{n} \Omega_n \Pi_n$.
Dunque il problema dell'interpolazione si risolve ponendo $z= \Omega_n^{-1} y$ e applicando una delle formule proposte precedentemente.
\begin{remark}
La matrice $F_n=\Omega_n/\sqrt{n}$ è unitaria, e dunque $\norm{F_n}_2=1$. Ciò implica che $\norm{\Omega_n}_2=\sqrt{n}$, dunque il numero di condizionamento di $\Omega_n$ è $1$, ovverosia il problema dell'interpolazione ai nodi di Fourier è ben condizionato.
\end{remark}
\subsection{Calcolo di (I)DFT: \textit{Fast Fourier Transform} (FFT)}
Consideriamo il caso del calcolo di $\IDFT(y)$, dove abbiamo i coefficienti $z_0$, ..., $z_{n-1}$ e vogliamo trovare i valori $y_i$ tali per cui
$\Omega_n (z_i) = (y_i)$. Il calcolo di $\DFT(z)$ si può poi fare
eseguendo $\IDFT(z)$ e applicando le relazioni introdotte nella proposizione precedente, aggiungendo
$n$ divisioni e permutando gli indici. \medskip
Consideriamo il caso in cui $n=2^q$. Allora:
\[
y_i = \sum_{j=0}^{n-1} \omega_n^{ij} z_j.
\]
Ricordando che $\omega_n^2 = \omega_{\frac{n}{2}}$, allora, separando
gli indici pari da quelli dispari, vale che:
\[
y_i =\sum_{j=0}^{\frac{n}{2}-1}\omega_{\frac{n}{2}}^{ij}z_{2j}+\omega_n^i \sum_{j=0}^{\frac{n}{2}-1}\omega_{\frac{n}{2}}^{ij}z_{2j+1}.
\]
Pertanto, detti $Y = \left(y_0,\dots,y_{\frac{n}{2}-1}\right)^\top$, $Y' = \left(y_{\frac{n}{2}},\dots,y_{n-1}\right)^\top$ e $D_n = \diag\left(1,\omega_n,\dots,\omega_n^{\frac{n}{2}-1}\right)$, valgono le seguenti due identità:
\[ Y=\IDFT_{\frac{n}{2}}(z_{\text{pari}})+D_n \, \IDFT_{\frac{n}{2}}(z_\text{disp}), \]
\[ Y'=\IDFT_{\frac{n}{2}}(z_\text{pari})-D_n \, \IDFT_{\frac{n}{2}}(z_\text{disp}). \]
In forma matriciale le due identità si scrivono infine come: \[ y=\begin{pmatrix}
\Omega_{\frac{n}{2}}z_\text{pari} \\
\Omega_{\frac{n}{2}}z_\text{pari}
\end{pmatrix}+\begin{pmatrix}
D_n\Omega_{\frac{n}{2}}z_\text{disp} \\
-D_n\Omega_{\frac{n}{2}}z_\text{disp}
\end{pmatrix}. \]
Poiché $n$ è potenza di $2$ possiamo ripetere questa strategia per calcolare le due trasformate di ordine $\frac{n}{2}$ mediante quattro trasformate di ordine $\frac{n}{4}$, ecc... fino ad avere trasformate di ordine $1$ che non richiedono alcuna operazione. \medskip
Il costo $c(n)$ di flops di una IDFT su $n$ nodi con questo metodo è ricorsivamente:
\[
c(n)=2 \, c\!\left(\frac{n}{2}\right)+\frac{n}{2}+n=2 \, c\!\left(\frac{n}{2}\right)+\frac{3}{2}n,
\]
dove $n/2$ sono le moltiplicazioni effettuate e $n$ le addizioni. \smallskip
Dacché $c(1)=0$ e $n=2^q$ vale che:
\[ c(n)=\frac{3}{2}n\log_2n=3q2^{q-1}. \]
In generale, l'algoritmo ha dunque complessità $O(n \log_2(n))$.
L'algoritmo per il calcolo della IDFT che si ottiene in questo modo è noto come \textbf{algoritmo di Cooley-Tukey}.
\subsubsection{Applicazioni della FFT: calcolo del prodotto di polinomi}
Dati $a(t)$, $b(t)\in\CC[x]$ allora $c(t)=a(t)b(t)$ si può calcolare trovando i coefficienti $c_i=\sum_{j+k=i}a_jb_k$. Se $a(t)$, $b(t)$ hanno grado rispettivamente $p$, $q$, questo algoritmo ha complessità $O((p+q)^2)$. \medskip
Sia $n = 2^q \geq p+q$. Con la FFT posso valutare $a(t)$, $b(t)$ nelle radici $n$-esime dell'unità. Dopo aver moltiplicato i valori ottenuti, si può applicare una DFT, ricavando i coefficienti di $c(t)$. Questo algoritmo utilizza $2$ IDFT, $n$ moltiplicazioni ed una DFT; pertanto ha un costo di $O(n\log_2(n))$ flops.
\section{Metodi dell'integrazione approssimata}
In questa sezione si illustrano alcuni metodi per approssimare
gli integrali su un intervallo.
\begin{definition}
Data $f : [a, b] \to \RR$ continua e $n+1$ nodi $x_0$, ..., $x_n$ si definiscono le due quantità:
\[ S[f]=\int_a^bf(x)\,dx, \quad S_{n+1}[f]=\sum_{i=0}^nw_if(x_i), \]
dove i termini $w_i$ sono positivi reali detti \textit{pesi}, possibilmente
variabili. Una scelta di pesi corrisponde a una \textbf{formula di integrazione
approssimata}.
\end{definition}
\begin{definition}
Si dice \textbf{resto} il valore
\[ r_{n+1}=S[f]-S_{n+1}[f]. \]
\end{definition}
\begin{definition}
Si dice che una formula di integrazione approssimata ha \textbf{grado di precisione} (massimo) $k\ge0$ se vale \[ r_{n+1}=0 \impliedby f(x)=x^{j}, \quad 0 \leq j \leq k \] e se \[ r_{n+1}\neq0 \impliedby f(x)=x^{k+1}. \]
\end{definition}
\subsection{Formule di integrazione dell'interpolazione di Lagrange}
Si può approssimare un integrale utilizzando l'interpolazione di Lagrange sui nodi, ponendo
\[ S_{n+1}[f] = \int_a^b \tilde{f}(x)\,dx = \sum_{i=0}^n \left[ f(x_i) \int_a^b L_i(x)\,dx\right], \]
dove $\tilde{f}(x)$ è il polinomio ottenuto applicando l'interpolazione
di Lagrange su $f$ dati i nodi $(x_0, f(x_0))$, ..., $(x_n, f(x_n))$ e i pesi sono tali per cui $w_i = \int_a^b L_i(x)\,dx$. \smallskip
Le formule di integrazione interpolatorie hanno grado di precisione almeno $n$
(infatti se $j \leq n$, $x^j$ è il polinomio che interpola i nodi dati) ed hanno grado di precisione massimo $2n+1$. Se una formula di integrazione ha grado di precisione almeno $n$, allora è interpolatoria. \smallskip
Se $f\in C^{(n+1)}([a,b])$ e $\abs{f^{(n+1)}(x)}\le M$ allora
\[ \abs{r_{n+1}}\leq\frac{M}{(n+1)!}\abs{\int_a^b\prod_{j=0}^n(x-x_j) \, dx}. \]
\subsection{Formule di Newton-Cotes (semplici)}
Scegliendo nodi equispaziati, con $h=\frac{b-a}{n}$, si ottengono le
formule di Newton-Cotes. nel caso $n=1$ vale \[ w_0=\int_a^bL_0(x)\,dx=\frac{h}{2}=w_1\Rightarrow S_2[f]=\frac{h}{2}(f(x_0)+f(x_1)), \]
ovverosia corrisponde all'area del trapezio con di base $\abs{x_0}$ e
$\abs{x_1}$ e con altezza $h$. Il resto $r_2$ corrisponde invece a \[ \int_a^bf(x)\,dx-S_2[f]=-\frac{1}{12}h^3f''(\xi), \quad \xi\in(a,b). \]
Nel caso $n=2$ invece \[ w_0=w_2=\frac{h}{3}, \quad w_1=\frac{4}{3}h \] ed il resto è dunque
\[ \int_a^bf(x)\,dx-S_3[f]=-\frac{1}{90}h^5f^{(4)}(\xi),\quad \xi\in(a,b) \]
\subsection{Formule di Newton-Cotes composte (trapezi, Cavalieri-Simpson)}
Si può rendere più precisa la formula di integrazione introducendo altri nodi equispaziati $z_0$, ..., $z_N$ e risolvendo \[ \int_a^bf(x)\,dx=\sum_{i=0}^{N-1}\int_{z_i}^{z_{i+1}}f(x)\,dx, \]
approssimando ciascuno degli integrali con le formule di Newton-Cotes semplici per $n=1$ o $2$. \smallskip
Scegliendo sempre $n=1$ si ottiene la \textbf{formula dei trapezi}, per la quale: \[ J_2^{(n)}[f]=\sum_{i=0}^{n-1}S_2^{(i)}[f]=\frac{b-a}{2n}\left[f(z_0)+f(z_n)+2\sum_{i=1}^{n-1}f(z_i)\right] \]
Inoltre vale che:
\[ S[f]-J_2^{(nN)}[f]=-\frac{(b-a)h^2}{12}f''(\xi). \]
Scegliendo invece sempre $n=2$ si ottiene la \textbf{formula di Cavalieri-Simpson}, per la quale:
\begin{multline*}
J_3^{(n)}[f] = \frac{b-a}{6n} \!\left[f(z_0) + f(z_n) + 2 \sum_{k=1}^{n-1} f(z_k) + \right. \\ \left.+ 4 \sum_{k=0}^{n-1} f\!\left(\frac{z_k + z_{k+1}}{2}\right) \right].
\end{multline*}
\section{Risoluzione di problemi di Cauchy con metodi a un passo}
Sia $I \subseteq \RR$ un intervallo e consideriamo una funzione
$f(t, y) : I \times \RR \to \RR$ continua. Dati i parametri
iniziali $t_0 \in I$, $y_0 \in \RR$ si associa a questi il seguente
\textit{problema di Cauchy}:
\[
\begin{cases}
y'(t) = f(t, y(t)), \\
y(t_0) = y_0,
\end{cases}
\]
su cui si ipotizza che l'incognita $y$ è $C^1(I, \RR)$. \smallskip
Se $f(t, y)$ è Lipschitziana rispetto a $y$, ovverosia esiste
$L \in \RR$ t.c.~$\abs{f(t, y_1) - f(t, y_2)} \leq L \abs{y_1 - y_2}$ per
ogni $t \in I$, $y_1$, $y_2 \in \RR$, allora esiste ed è unica
la soluzione $y$ al problema di Cauchy proposto.
\begin{notation}[Intervallo destro di $t_0$ e successione per passi]
Per intervallo destro di un $t_0 \in \RR$ intendiamo
un intervallo della forma $[t_0, t_0 + T]$ con $t > 0$. \smallskip
Dato $h > 0$, definiamo $t_n := t_0 + nh$ per $n = 0$, ...,
$N_h$, dove $N_h$ è il massimo naturale $p$ per cui
$ph \leq T$ (ossia il massimo naturale per cui la successione
definita sta dentro l'intervallo destro definito).
\end{notation}
\begin{notation}[Approssimazioni]
Scriveremo $y_n$ per indicare $y(t_n)$ e $u_n$ per indicare
l'approssimazione ricavata di $y(t_n)$, mentre
$f_n := f(t_n, u_n)$.
\end{notation}
\begin{definition}[Metodo a un passo]
Si dice \textbf{metodo a un passo} un metodo di
risoluzione approssimato di un problema di Cauchy
che imposti una sequenza della forma:
\[
\begin{cases}
u_{n+1} = u_n + h \phi(t_n, u_n, f_n, h) & 0 \leq n \leq N_h - 1, \\
u_0 = y_0.
\end{cases}
\]
\end{definition}
\begin{definition}
Sia $\eps_{n+1} := y_{n+1} - (y_n + h \phi(t_n, y_n, f(t_n, y_n), h))$ la differenza
tra il valore esatto $y_{n+1} = y(t_{n+1})$ e quello dato dal
metodo applicato al valore esatto $y_{n+1} = y(t_{n+1})$.
Si definisce allora \textbf{errore locale di troncamento} al
nodo $(n+1)$-esimo il valore:
\[
\tau_{n+1}(h) = \frac{\eps_{n+1}}{h}.
\]
Si definisce inoltre l'\textbf{errore globale di troncamento} come
massimo del modulo degli errori locali:
\[
\tau(h) = \max_{n=0,\ldots,N_h - 1} \abs{\tau_{n+1}(h)}.
\]
\end{definition}
\begin{definition}[Consistenza del metodo]
Si dice che un metodo è consistente di ordine $p$ per il problema se $\tau(h) = o(h)$ ($\lim_{h \to 0} \tau(h) = 0$) e
se $\tau(h) = O(h^p)$ per $h \to 0$.
\end{definition}
\begin{definition}[Convergenza del metodo]
Posto $e_n = y_n - u_n$, detto \textit{errore globale}, un
metodo si dice \textbf{convergente} di ordine $p$ se esiste
$C(h) = o(h)$ ($\lim_{h \to 0} C(h) = 0$), $C(h) = O(h^p)$ per
$h \to 0$ tale per cui
$\abs{y_n - u_n} \leq C(h)$ per ogni $n$ della successione.
\end{definition}
\subsection{Metodo di Eulero}
Si definisce \textbf{metodo di Eulero} il metodo a un passo
che si ottiene imponendo $\phi(t_n, u_n, f_n, h) = f_n$, ovverosia:
\[
\begin{cases}
u_{n+1} = u_n + h f_n & 0 \leq n \leq N_h - 1, \\
u_0 = y_0.
\end{cases}
\]
L'idea del metodo di Eulero è quella di approssimare innanzitutto
i reali con una successione $t_n$ prendendo $h \ll 1$ (in questo
modo $N_h \gg 1$ e si ottiene una sequenza arbitrariamente lunga
di reali). In questo modo l'equazione
\[
y'(t) = f(t, y(t))
\]
può essere approssimata ponendo l'equazione vera sui $t_n$ con $y'(t) \approx \frac{u_{n+1} - u_n}{h}$ e $f(t, y(t)) \approx f_n$. La
seconda equazione $y(t_0) = y_0$ si riconduce invece facilmente
a $u_0 = y_0$. \smallskip
Per ottenere dunque un'approssimazione è dunque necessario
risolvere la relazione di ricorrenza tra $u_{n+1}$ e $u_n$,
ponendo $u_0 = y_0$, o calcolare direttamente la sequenza.
Per il metodo di Eulero vale che:
\[
\eps_{n+1} = y_{n+1} - (y_n + h f(t_n, y_n)).
\]
Il metodo di Eulero è sempre consistente di ordine $1$
ed è sempre convergente, ancora di ordine $1$.
\subsubsection{Metodo di Eulero implicito}
Si definisce \textbf{metodo di Eulero implicito} il metodo
che si ottiene sostituendo a $\phi(t_n, u_n, f_n, h)$ il valore $f_{n+1}$, ovverosia:
\[
\begin{cases}
u_{n+1} = u_n + h f_{n+1} & 0 \leq n \leq N_h - 1, \\
u_0 = y_0.
\end{cases}
\]
Tale metodo è consistente di ordine $1$ e convergente, ancora
di ordine $1$.
\begin{example}[Problema test di Dahlquist]
Si consideri il seguente problema di Cauchy:
\[
\begin{cases}
y' = \lambda y, \\
y(0) = 1,
\end{cases}
\]
con $I = [0, \infty)$. Applicando il metodo di Eulero implicito
si deve risolvere il sistema:
\[
\begin{cases}
u_{n+1} = u_n + \lambda u_{n+1},
u_0 = 1,
\end{cases}
\]
che ha come soluzione $u_n = \left(\frac{1}{1-h\lambda}\right)^n$.
\end{example}
\vfill
\hrule
~\\
Opera originale di Mario Zito, modifiche e aggiornamenti
a cura di Gabriel Antonio Videtta.
~\\Reperibile su
\url{https://notes.hearot.it}.
\end{multicols}
\end{document}