forked from Typing-Monkeys/AppuntiUniversita
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(appunti): Appunti di calcolo numerico (Typing-Monkeys#55)
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
Showing
21 changed files
with
3,242 additions
and
0 deletions.
There are no files selected for viewing
1,665 changes: 1,665 additions & 0 deletions
1,665
triennale/Anno 2/Calcolo Numerico/CalcNum-merged.md
Large diffs are not rendered by default.
Oops, something went wrong.
Binary file not shown.
67 changes: 67 additions & 0 deletions
67
triennale/Anno 2/Calcolo Numerico/argomenti/0. Introduzione.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]] | ||
|
31 changes: 31 additions & 0 deletions
31
triennale/Anno 2/Calcolo Numerico/argomenti/1. Stabilità numerica.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
143
triennale/Anno 2/Calcolo Numerico/argomenti/2. Error Analysis.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]] |
92 changes: 92 additions & 0 deletions
92
triennale/Anno 2/Calcolo Numerico/argomenti/3. Errore Per Le Funzioni Razionali.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
32 changes: 32 additions & 0 deletions
32
triennale/Anno 2/Calcolo Numerico/argomenti/4. Problemi Ben Posti.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
Oops, something went wrong.