# Formulario Calcolo Numerico
## Rappresentazione in macchina
### Insieme dei numeri di macchina
$$
\mathbb{F} = \mathbb{F}(B, t, m, M)
$$
dove $B$ è la base, $t$ è il numero di cifre, $m$ e $M$ rappresentano il range: da -$m$ a $M$ per l'esponente della base
#### Precisione di macchina
$$
u = B^{1-t}
$$
#### Minimo numero positivo
$$
\omega = B^{-m-1}
$$
#### Massimo numero positivo
$$
\Omega = B^{M(1-B^{-t})}
$$
#### Cardinalità insieme dei numeri di macchina
$$
N = 2B^{t-1}(B-1)(M+m+1)+1
$$
#### Appartenenza all'insieme
$$
\omega \le |x| \le \Omega
$$
nota che abbiamo anche i casi particolari gestiti separatamente di $0$, $+\infty$, $-\infty$, $NaN$
abbiamo anche i casi di overflow e underflow:
- Underflow:
$$
|x|<\omega
$$
- Overflow:
$$
|x|>\Omega
$$
## Analisi degli errori
### Errore inerente
#### Formula generale
$$
\epsilon_{in} = \frac{ f(\widetilde{x}) - f(x) } { f(x) }
$$
#### Formula con coefficiente
Se f(x) è derivabile due volte
$$
\epsilon_{in} = c_x\epsilon_x \\
c_x \doteq \frac{f'(x)}{f(x)}x
$$
#### Formula coefficiente a più variabili
$$
\epsilon_{in} = \sum_{i=1}^n c_{x_i}\epsilon_{x_i} \\
c_{x_i} \doteq \frac{1}{f(x)}\frac{\partial f}{\partial x_i}x_i
$$
### Errore algoritmico
#### Errori inerenti alle operazioni di macchina
- Somma
$$
f(x, y) = x+y \quad \epsilon_{in} \doteq c_x\epsilon_x + c_y\epsilon_y \\
c_x = \frac{x}{x+y}, \quad c_y = \frac{y}{x+y}
$$
- Differenza
$$
f(x, y) = x-y \quad \epsilon_{in} \doteq c_x\epsilon_x + c_y\epsilon_y \\
c_x = \frac{x}{x-y}, \quad c_y = \frac{-y}{x-y}
$$
- Moltiplicazione
$$
f(x, y) = x\cdot y \quad \epsilon_{in} \doteq c_x\epsilon_x + c_y\epsilon_y \\
c_x = 1, \quad c_y = 1
$$
- Divisione
$$
f(x, y) = x / y \quad \epsilon_{in} \doteq c_x\epsilon_x + c_y\epsilon_y \\
c_x = 1, \quad c_y = -1
$$
#### Creazione del grafo
Si considera la sequenza di operazioni (eventualmente in parallelo) previste dall'algoritmo dato. Si creano una serie di variabili che rappresentano i risultati intermedi. Partendo dalle variabili di input si fa l'albero delle operazioni (ogni nodo è una soluzione di una singola operazione). Sugli archi di indicano i coefficienti di amplificazione inerenti alle singole operazioni. Quindi si parte dalla soluzione finale, e si somma l'errore locale dell'operazione con il coefficiente di amplificazione indicato sull'arco per tutto ciò che lo precede. Si maggiora tutte le espilon con u e si trova quando diverge o quando è troppo grande per vedere se è stabile.
## Invertibilità matrice
* #### Matrice predominante diagonale
Se la matrice ha la diagonale in modulo maggione della somma dei moduli degli altri elementi sulla riga (predomaninante per righe) o sulla colonne (predominante per colonne). Nel caso non sia specificato si intende per righe, ma per quanto riguarda l'invertibilità basta una delle due.
* #### Determinante $\neq 0$
* #### $Ax = 0 \iff x = 0$
* #### Non ha autovettori $=0$
### Calcolo inversa
* #### Direttamente ponendo $AA^{-1} = I$
* #### Risolvendo le colonne con $Ax = e_j$ dove $e_j$ è il vettore con tutti $0$ eccetto un $1$ in posizione $j$
## Fattorizzazione LU
### Condizione sufficiente per l'eistenza e l'unicità della fattorizzazione LU
Se tutte le sottomatrici di testa sono invertibili allora esiste ed è unica la fattorizzazione LU
### Calcolo completo (condizione necessaria e sufficiente)
$$
\begin{bmatrix}
A_{n-1} & z \\
v^T & \alpha
\end{bmatrix} =
\begin{bmatrix}
L_{n-1} & 0 \\
x^T & 1
\end{bmatrix}
\begin{bmatrix}
U_{n-1} & y \\
0 & \beta
\end{bmatrix}
$$
$$
\begin{cases}
A_{n-1} = L_{n-1}U_{n-1} \\
z = L_{n-1}y \\
v^T = x^T U_{n-1} \\
\alpha = x^T y + \beta
\end{cases}
$$
## Determinante matrice
- #### Se è triangolare è la moltiplicazione degli elementi sulla diagonale
### Laplace
Fissata una riga $i$ di $A$
$$
detA = \sum_{j=1}^n (-1)^{i+j} * a_{ij} * detA_{ij}
$$
oppure
Fissata una colonna $j$ di $A$
$$
detA = \sum_{i=1}^n (-1)^{i+j} * a_{ij} * detA_{ij}
$$
### Fattorizzazione LU
Prendendo la fattorizzazione LU di A (se esiste) si ha che $detA = detU$
## Jacobi e Gauss-Seidel
- Jacobi prende la matrice $M$ con la diagonale di $A$
- Gauss-Seidel prende la matrice $M$ con la parte triangolare inferiore di $A$
- Il conto è $x^{k+1} = M^{-1}Nx^k + M^{-1}b = Px^k + q$
### Applicabilità del metodo $\iff M$ è invertibile
- In entrambi i casi vale se gli elementi sulla diagonale di $M$ sono diversi da $0$
### Convergenza
- #### Condizione sufficiente per la convergenza è che la matrice $P$ sia predominante diagonale
- #### Condizione sufficiente per la convergenza è che esista una norma matriciale indotta di $P$ che risulti $< 1$ (provare norma $1$ e $\infty$)
- #### Condizione necessaria e sufficiente per la convergenza è che la matrice $\rho(P)<1$ ovvero che il raggio spettrale della matrice sia minore di uno. Il raggio spettrale è il modulo dell'autovalore di modulo massimo. Per trovare gli autovalori si può anche risolvere $det(\lambda I - P)$
## Autovalori matrice
- #### Caso triangolare o diagonale
Se la matrice è triangolare o diagonale gli autovalori sono tutti e soli gli elementi sulla diagonale.
- #### Si calcola il $det(A-\lambda I)$ usando anche Laplace
- #### Si risolve il sistema $Ax = \lambda x$
- #### Si cera una fattorizzazione LU di $(A-\lambda I)$ e quindi $det(A-\lambda I) = det(U)$
## Metodo tangenti
- $f \in C^2([a, b])$
- $f(\alpha) = 0$
- $\alpha \in (a, b)$
$$
x_{k+1} = x_k - {f(x)\over f'(x)}
$$
### Localmente convergente
Si ha convergenza locale se $f'(\alpha) \neq 0$
e la convergenza è almeno quadratica:
$$
\lim_{k \rightarrow +\infty} {|x_{k+1}-\alpha| \over |x_k-\alpha|^2} = c\in \mathbb{R}
$$
### Convergenza in largo
Se possiamo trovare $\delta$ tale che valgono entrambe
- $f'(x) \neq 0$ nell'intervallo $(\alpha, \alpha + \delta]$
- $f(x)f''(x) > 0$
allora il metodo delle tangenti converge ad $\alpha$