Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(appunti): Appunti di calcolo numerico #55

Merged
merged 37 commits into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
4327e87
import appunti da obsidian
michelevantaggi02 Aug 11, 2023
2eabf20
Update triennale/Anno 2/Calcolo Numerico/argomenti/0. Introduzione.md
michelevantaggi02 Aug 16, 2023
ed5bb87
Update triennale/Anno 2/Calcolo Numerico/argomenti/2. Error Analysis.md
michelevantaggi02 Aug 16, 2023
9a5ccfc
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
bddeca6
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
f39886e
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
3922819
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
d0899a1
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
a62fa2f
Update triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le F…
michelevantaggi02 Aug 16, 2023
a7d6e6a
Update triennale/Anno 2/Calcolo Numerico/argomenti/4. Problemi Ben Po…
michelevantaggi02 Aug 16, 2023
db5b279
Update triennale/Anno 2/Calcolo Numerico/argomenti/6. Valutazione di …
michelevantaggi02 Aug 16, 2023
8c7456b
Update triennale/Anno 2/Calcolo Numerico/argomenti/6. Valutazione di …
michelevantaggi02 Aug 16, 2023
54bcedc
Update triennale/Anno 2/Calcolo Numerico/argomenti/7. Vettori.md
michelevantaggi02 Aug 16, 2023
ced48ac
Update triennale/Anno 2/Calcolo Numerico/argomenti/7. Vettori.md
michelevantaggi02 Aug 16, 2023
367b883
Update triennale/Anno 2/Calcolo Numerico/argomenti/8. Matrici.md
michelevantaggi02 Aug 16, 2023
ff438d0
Update triennale/Anno 2/Calcolo Numerico/argomenti/9. Altre Strutture.md
michelevantaggi02 Aug 16, 2023
60c7e06
Update triennale/Anno 2/Calcolo Numerico/argomenti/9. Altre Strutture.md
michelevantaggi02 Aug 16, 2023
ecfc8b1
Update triennale/Anno 2/Calcolo Numerico/argomenti/9. Altre Strutture.md
michelevantaggi02 Aug 16, 2023
87ea94b
Update triennale/Anno 2/Calcolo Numerico/argomenti/a0. Sistemi linear…
michelevantaggi02 Aug 16, 2023
8853d4f
Apply suggestions from code review
michelevantaggi02 Aug 16, 2023
cf444d2
Apply suggestions from code review
michelevantaggi02 Aug 17, 2023
2e0530a
Apply suggestions from code review
michelevantaggi02 Aug 17, 2023
a4f52d4
Update a3a. Esercizio.md
michelevantaggi02 Aug 17, 2023
55072c6
Update a5. Curva di Bezier.md
michelevantaggi02 Aug 17, 2023
b0f2f44
Update a7. Interpolazione.md
michelevantaggi02 Aug 20, 2023
8977783
Update a0. Sistemi lineari.md
michelevantaggi02 Aug 20, 2023
c517608
Update a0. Sistemi lineari.md
michelevantaggi02 Aug 20, 2023
c338f11
Update 2. Error Analysis.md
michelevantaggi02 Aug 20, 2023
b679b97
Merge dei file modificati
michelevantaggi02 Aug 20, 2023
79efdb5
Update CalcNum-merged.md
michelevantaggi02 Oct 6, 2023
b7ba0cd
Apply suggestions from code review
michelevantaggi02 Oct 6, 2023
a705273
Modifiche varie
michelevantaggi02 Oct 23, 2023
7540600
altri fix
michelevantaggi02 Oct 23, 2023
aa0031b
pdf finale
michelevantaggi02 Oct 23, 2023
0d8da76
sistemate formule
michelevantaggi02 Oct 24, 2023
fbe1f57
fix typo
michelevantaggi02 Oct 24, 2023
f92f0a0
Rimosse dispense del prof
michelevantaggi02 Oct 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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