Skip to content

Commit

Permalink
feat(appunti): Appunti di calcolo numerico (Typing-Monkeys#55)
Browse files Browse the repository at this point in the history
Aggiunti appunti in Markdown dell'esame di Calcolo Numerico.
Gli appunti sono composti da differenti file Markdown che poi vengono uniti (tramite Obsidian, perchè sono scritti con questo software) in un unico Markdown ed esportati in PDF.
  • Loading branch information
ncvescera authored Oct 25, 2023
2 parents 1357620 + f92f0a0 commit b0ee6ca
Show file tree
Hide file tree
Showing 21 changed files with 3,242 additions and 0 deletions.
1,665 changes: 1,665 additions & 0 deletions triennale/Anno 2/Calcolo Numerico/CalcNum-merged.md

Large diffs are not rendered by default.

Binary file not shown.
67 changes: 67 additions & 0 deletions triennale/Anno 2/Calcolo Numerico/argomenti/0. Introduzione.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Branca della matematica che si occupa di dare strumenti per il calcolo numerico di quantità continue (soluzioni di un'equazione)

```ad-example
$x^2=2$ soluzione $\alpha > 0$
$\alpha = \sqrt 2$ (soluzione simbolica)
$\alpha$ limite dell'iterazione
$$x_{k+1} = \frac {x^2_k + 2 }{2x_k}$$
```

# Calcolo Simbolico VS Calcolo Numerico

```ad-example
collapse: open
$P(x) = 0$ con $p(x) = x^3 + x^2 -x + 1$ ha un'unica soluzione $\alpha$
- $\alpha = \frac 13(-1 - \frac 4{\sqrt[3]{19 - 3\sqrt{33}}} - \sqrt[3]{19 - 3\sqrt{33}})$ soluzione simbolica
- $\alpha$ è il limite dell'iterazione:$$x_{k+1} = x_k - \frac {p(x_k)}{p'(x_k)}, \quad x_0 = 2$$
```

```ad-example
collapse: open
Eq: $x^5 + x^4 - x + 1 = 0$ unica soluzione $\alpha$
- $\alpha$ non esprimibile in forma chiusa con simboli noti (soluzione simbolica)
- $\alpha$ è il limite dell'iterazione:$$x_{k+1} = x_k - \frac {p(x_k)}{p'(x_k)}, \quad x_0 = -2$$
```

Quasi tutte le civiltà hanno una formula per le equazioni di 2° grado.

Nel XVI secolo sono state trovate per le equazioni di 3° e 4° grado (Tartaglia, Cardano, Ferrari).

```ad-important
Teorema di Ruffini-Abel:
Non esiste una formula per le equazioni di 5° grado
```

La materia si occupa di dare strumenti teorici (teorie matematiche) per il calcolo numerico di quantità continue.

Si cerca di trovare una soluzione ai problemi continui che sia utilizzabile. Non basta una formula, ma serve un algoritmo che fornisca una soluzione in un tempo ragionevole tenendo conto che il calcolatore lavora in quantità finite. Vogliamo quindi trattare __quantità infinite__ con __strumenti finiti__.

# Quantità Continue

- Una o più equazioni non lineari, radici di polinomi
- Calcolo quantità algebra lineare, soluzione di sistemi lineari
- Determinanti, autovalori/vettori, rango, nucleo, immagine
- Calcolo degli integrali
- Approssimazione di funzioni

Per ogni problema esistono una o più soluzioni.

## Efficienza

Gli algoritmi devono avere importanti requisiti:
- Basso costo computazionale
- [[1. Stabilità numerica|Stabilità numerica]]

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
```ad-example
title: Esempio
## Sviluppo in serie di Taylor di $e^x$ con resto di Lagrange
$$e^x=1+ \frac x{1!} + \frac {x^2}{2!} + \frac {x^3}{3!} + ... = \sum_{k=0}^n {\frac {x^k}{k!}} = e^{\epsilon} \frac{x^n+1}{n+1}!$$
Si hanno due algoritmi per il calcolo di $e^x$
$$e^x \approx \sum_{k=0}^n {\frac {x^k}{k!}}$$
$$e^x \approx \frac 1{e^{-x}} \approx \frac 1{\sum_{k=0}^n {\frac {(-x)^k}{k!}}}$$
Il primo funziona meglio con esponente positivo, il secondo con esponente negativo
```

# Relazioni Con Altre Discipline

## Matematica Discreta

Si cerca di utilizzare una sola formula per la risoluzione di problemi, mentre qua ci servono più formule

# Algoritmi E Strutture Dati

Si occupa dello studio di problemi discreti, mentre qui ci si occupa di problemi continui

# Relazione Con Il Mondo Reale

I problemi del mondo reale possono essere __modellizzati__ in teorie matematiche.

Le soluzioni matematiche vengono __applicate__ nel mondo reale.

![[Modellizzazione.png]]
143 changes: 143 additions & 0 deletions triennale/Anno 2/Calcolo Numerico/argomenti/2. Error Analysis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@

I numeri reali per la maggior parte contengono infinite informazioni, a parte i pochi numeri razionali che ne contengono di limitate.

# Numeri Razionali

Sono dei numeri che rispettano la descrizione di un determinato teorema, e che non rispettano altri teoremi come, ad esempio, il teorema degli zeri o quello di Lagrange.

I numeri razionali sono infiniti, ma noi possiamo lavorare solo con insiemi finiti di numeri.

```ad-question
title: Problema
Selezionare un numero finito di valori che possano rappresentare i numeri reali.
## Distribuzione uniforme
Scegliere $\varepsilon > 0$, N pari:
$$\varepsilon = \{\varepsilon k: - \frac N2 < k \leq \frac N2, k \in \mathbb{Z}\}$$
Possiamo rappresentare i numeri reali con l'insieme:
$$ S = \{-\varepsilon\frac N2<x \leq \varepsilon\frac N2\} \subset N
```

# Errore Assoluto Vs Relativo

- Errore assoluto: $\tilde x - x$
- Errore relativo: $\frac {\tilde x - x}x, x \neq 0$

## Problemi Con L'errore Assoluto

La qualità dell'approssimazione dell'errore assoluto non è sempre la stessa, ad esempio per i numeri più piccoli c'è un errore più grande rispetto a quelli più grandi.

Con l'errore relativo le cifre errate nella rappresentazione dei numeri sono sempre le stesse.

A noi serve sapere solo alcune cifre, quindi è meglio utilizzare una rappresentazione dei numeri con l'errore relativo migliore.

# Numeri Reali

Limiti di sequenze di numeri razionali che possono essere approssimate.

Data una base di numerazione $\beta \geq 2$ posso prendere un numero reale tra 0 e 1 e le sequenze di cifre

$$\mathbb{R} \iff \{d_i\}_{i=1,2,3....}, \quad d_i \in \{0,...,\beta -1\}$$

```ad-important
title: Teorema Della Rappresentazione In Basi
Dato $x \in\mathbb{R}\backslash \{0\}$ e data una base di numerazione $\beta \geq 2$ esiste un unico $p \in Z$ e una sequenza $\{d_i\}_{i=1,2,3,...}$ tali che:
1. $d_i \in \{0,1,...,\beta - 1\}$
2. $d_1 \neq 0$
3. $d_i$ non è definitivamente uguale a $\beta - 1$ così che $$x = sign(x) \beta^p \sum_{i=1}^\infty {\beta^{-i}d_i}$$
Il numero $\sum_{i=1}^\infty {\beta^{-i}d_i}$ si dice __mantissa__
```

## Floating Point

Data una base di numerazione $\beta \geq 2$, il numero $t>0$ di cifre della mantissa $m$, $M$ numeri positivi, definiamo un insieme di __floating point numbers__

$$F(\beta, t, m, M) = \{0\} \cup \{\pm \beta^p\sum_{i=1}^t {\beta^{-i}d_i}, \; -m \leq p \leq M\}$$
$$\text {con} \; 0 \leq d_i < \beta \text{ intero per } i=1,...,t, \; d_1 \neq 0$$

```ad-example
title: Esempio
collapse: open
$F := F(10, 2, 2, 3)$
Cardinalità: $1 + 2(m+M+1)(\beta - 1)\beta^{t-1}$
Max(F): $\Omega=\beta^M\sum_{i=1}^t{\beta^{-i}(\beta - 1)} = \beta^M(1- \beta^{-t})$
MinPositivo(F): $\omega = \beta^{-m}\beta^{-1} = \beta^{-m-1}$
Per $x \geq \Omega$ i numeri non possono essere rappresentati, mentre per $0 < x < \omega$ c'è un grande errore relativo
```

```ad-example
title: Esempio 2 (Utile per dopo)
collapse: open
$F(2,2,1,1)$ è composto da 13 numeri
Questi numeri __non sono uniformi__. Tra $\frac 12$ e $\frac 14$ e tra $\frac 12$ e 1 c'è lo stesso numero di elementi di $F$.
![[Pasted image 20230125111411.png]]
Data $S = \{x \in\mathbb{R}: \omega \leq x \leq \Omega\}$ costruiamo una __funzione di rappresentazione__
$$fl :\mathbb{R}\to F \cup\{\pm \infty\}$$
Con una delle due regole, dato $x=\beta^p \sum_{i=1}^\infty {\beta^{-i}d_i} \in S$:
- Troncamento: $\tilde x = fl(x) = \beta^p \sum_{i=1}^t {\beta^{-i}d_i}$
- Arrotondamento: $\tilde x = fl(x)$ il troncamento di $x + \frac{\beta^{p-t-1}}2$
Se $x > \Omega$ impostiamo $fl(x) = \infty$ (__overflow__), se $0\leq x \leq \omega$ impostiamo $fl(x) = 0$ (__underflow__), stesso ragionamento per i numeri negativi.
```

^59010a

Definiamo la __precisione macchina__ come $u=\beta^{-t+1}$ per il troncamento e $u=\frac{\beta^{-t+1}}2$ per l'arrotondamento.

```ad-important
title: Teorema
Dato $x \in S$ abbiamo il seguente limite per l'errore relativo:
$$|\frac{fl(x) - x}x| < u$$
```

__$F$ deve seguire determinate proprietà algebriche__:

$$x,y \in F \centernot \implies x + y \in F$$

Dobbiamo definire delle __operazioni__ con i numeri a virgola mobile.

Assumendo che esiste una somma a virgola mobile $\oplus$ tale che se $x,y \in F$ (se non avviene overflow):

$$x\oplus y \in F, \quad x \oplus y = (x+y)(1 + \varepsilon), \quad |\varepsilon| < u$$

Similmente definiamo $\otimes, \ominus, \oslash$.

Un'idea è quella di definire $x \oplus y = fl(x+y)$ ma i dettagli sono più complicati.

Infatti le varie operazioni seguono solo alcune delle proprietà delle operazioni elementari:

- commutatività della somma
- commutatività del prodotto
- $x \oslash x = 1$

Non seguono infatti:

- associatività di somma e prodotto
- proprietà distributiva
- semplificazione
- potrebbe succedere che $x \otimes y = z \otimes y, \quad y \neq 0, \quad x \neq z$

[[3. Errore Per Le Funzioni Razionali]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@


Data una funzione razionale $f: \mathbb{R}^2 \to \mathbb{R}$ che sia $f = \frac pq$ con $p$ e $q$ polinomi.

Dall'analisi matematica sappiamo che $f$ è definita e differenziabile per $q \neq 0$ (assumendo che $p$ e $q$ siano primi).

Ci sono due tipi di errori nella valutazione di $f$ con i valori in virgola mobile

## Errore Inerente

Non valutiamo $f(x)$ ma valutiamo $f(\tilde x)$ dove $\tilde x = fl(x)$ [[2. Error Analysis#^59010a|funzione approssimata]]

$$\varepsilon_{IN} = \frac{f(\tilde x) -f(x)}{f(x)}, \quad f(x) \neq 0$$

Se l'errore inerente è relativamente piccolo possiamo dire che il problema è __ben condizionato__, altrimenti che è __mal condizionato__.

L'errore inerente può essere definito anche per funzioni __non razionali__

## Errore Algoritmico

Non si valuta $f(\tilde x)$ ma si valuta $\tilde f (\tilde x)$

$$\varepsilon_{ALG} = \frac{\tilde f (\tilde x ) - f (\tilde x )}{f(\tilde x )}, \quad f(\tilde x ) \neq 0$$

Se l'errore algoritmico è relativamente piccolo possiamo dire che l'algoritmo $f$ è __numericamente stabile__, altrimenti che è __numericamente instabile__.

L'errore algoritmico può essere definito anche per le funzioni elementari che vengono trattate come operazioni.

## Errore Totale

$$\varepsilon_{TOT} = \frac {\tilde f(\tilde x ) - f(x)}{f(x)}, \quad f(x) \neq 0$$
Dà una misura genuina dell'errore nella valutazione.

La situazione ideale è $|\varepsilon_{tot}| < u$, ma in pratica è sufficiente $|\varepsilon_{tot}| < Mu$ con $M$ costante.

```ad-important
title: Teorema
Dato $x \in \mathbb{R}^n \backslash \{0\}$ e $f : \mathbb{R}^n \to \mathbb{R}$ razionale con $f(x) \neq 0$, dove $\tilde x = fl(x)$, allora
$$\varepsilon_{TOT} = \varepsilon_{IN} + \varepsilon_{ALG} + \varepsilon_{IN}\varepsilon_{ALG}$$
```

Se $\varepsilon_{IN}$ e $\varepsilon_{ALG}$ tendono a 0 con $u \to 0$, abbiamo
$$\varepsilon_{TOT} = \varepsilon_{IN} + \varepsilon_{ALG} + o(u) = \varepsilon_{IN} + \varepsilon_{ALG}$$

``````ad-example
collapse: open
Sia $\tilde x = fl(x) = x(1 + \varepsilon_1), \quad |\varepsilon_1| < u$ ottenuto come
$$\frac {\tilde x - x}x = \varepsilon_1 \iff \tilde x - x = x\varepsilon_1 \iff \tilde x = x(1 + \varepsilon_1)$$
Abbiamo per $x \neq 0$:
$$\varepsilon_{IN} = \frac {\tilde x^2 - x^2}{x^2} = \frac{[x(1+\varepsilon_1)]^2 - x ^2}{x^2} = \frac{x^2(1 + \varepsilon_1)^2 - x^2}{x^2} = \frac{x^2[(1 + \varepsilon_1)^2 - 1]}{x^2} = $$
$$ = 2 \varepsilon + \varepsilon^2$$
Dato che a noi interessa quello che succede con $u \to 0$, possiamo considerare solo i termini più lenti.
$$ |\varepsilon_{IN}| = |2\varepsilon + \varepsilon^2| \leq 2|\varepsilon| + |\varepsilon^2| < 2u + u^2 = 2u, \quad u \to 0$$
è [[4. Problemi Ben Posti#^3243f8|ben condizionato]].
__Esiste un'altra formula__ per calcolare l'errore inerente:
$$\varepsilon_{IN} = \frac x{f(x)}f'(\xi)\varepsilon_x$$
Dove $\varepsilon_x = \varepsilon_1$ è la rappresentazione dell'errore in $x$ se $f \in C^2(conv(x, \tilde x))$ allora:
$$\varepsilon_{IN} = \frac x{f(x)} f'(x)\varepsilon_x + o(u) = \frac {x \cdot 2x}{x^2}\varepsilon_x = 2\varepsilon_x$$
```ad-done
title: Dimostrazione
Uso il teorema di Lagrange applicato alla funzione in un intorno di 0
$$f(x) = f(0) + f'(0)x + o(x) \doteq f(0) + f'(0)x$$
```
```ad-important
Il termine $\varepsilon_{IN} = \frac{f(\tilde x) - f(x)}{f(x)} \doteq \frac x{f(x)}f'(x)\varepsilon_x$ si chiama __fattore di amplificazione__ e misura l'amplificazione dell'errore
```
``````

^f13037

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Un problema è composto di tre parti:

- Dati
- Incognite
- Condizioni
```ad-example
Sistemi lineari
Data una matrice $A$ (coefficienti) e un vettore $b$ (lato destro), trovare tutti i vettori $x$ (incognite) tali che $Ax = b$
```

Le incognite sono funzioni dei dati e nella pratica, possono essere presentate solo delle approssimazioni.

```ad-important
title: Problemi ben posti
- Hanno una soluzione
- La soluzione è unica
- La soluzione dipende continuamente dai dati
La dipendenza continua dai dati è meno ovviamente importante:
- I dati nei problemi reali sono affetti da errori
- I calcoli vengono eseguiti da un'aritmetica finita e ci sono errori di arrotondamento
```

^3243f8

# Dipendenza Continua Dai Dati

Loading

0 comments on commit b0ee6ca

Please sign in to comment.