Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
CALCOLO NUMERICO
Nel calcolo numerico siamo interessati all'accuratezza dei dati, questo perché in calcolatore elettronico opera mediante l'aritmetica di precisione finita.
Errore assoluto: sia x ∈ ℝ e x̄ ∈ ℝ un'approssimazione di x.
ea = |x - x̄| (errore sempre positivo, al più nullo)
Dipende dall'ordine di grandezza dei dati
Errore relativo: er = |x - x̄| / |x|, x ≠ 0
Nella pratica, in generale, ea e er non sono noti, dato che non conosciamo x ma solo x̄.
Sarà necessario trovare delle limitazioni superiori all'errore relativo (o assoluto).
- Es1: x = 10000, x̄ = 10001, er < 10-4 se è più accurato
- x = 10, x̄ = 11, er > 10-1
Rappresentazione in virgola mobile normalizzata dei numeri reali (floating point): β-base del sistema di numerazione
x ∈ ℝ, x = ±0.a1a2 ... anβj, a1 ≠ 0
- β ∈ { 2, 3, ... } e ai ∈ { 0, 1, ..., β-1}
- mantissa caratteristica
- Standard per definire unicamente un numero reale
Es2: x = 25.35 = 0.2535·102 = 253.2·10-1
rappresentazione floating point
Es3: x = 58594 = 0.58594·105
- 58590 = 0.58590·105 4 cifre esatte
- 58594 ≠ 7·105 < 104
Es4: x = 10000
x̄ = 9999
0 cifre esatte
er = 1 / 10000 = 10-4
Cifre significative: siano x e x̄ espressi in virgola mobile normalizzata. Allora se er = |x - x̄| / |x| ≤ 10-k,
- k ∈ ℤ
- x̄ ha almeno k cifre significative (certe o altrimenti esatte)
Es x = 0,42563
er = 4.10-3 < 10-2 → x ha 2 cifre significative
Norme di vettori:
||x||2 x ∈ ℝn = √xi = √∑i=1nxi2
Una norma in ℝn
- ||x||:ℝn→ℝ che associa ad ogni x ∈ ℝn un numero ||x|| tale che:
- 1) ||x|| ≥ 0 ∀ x ∈ ℝn
- ||x|| = 0 ↔ x = 0 vectore nullo → xi = 0, i = 1, ..., n
- 2) ||α x|| = |α| · ||x|| ∀ α ∈ ℝ ∀ x ∈ ℝn
- 3) ||x + y|| ≤ ||x|| + ||y|| ∀ x, y ∈ ℝn, disuguaglianza triangolare
sono proprietà naturali quando si vuole misurare una lunghezza
- 1) sempre positiva e si annulla solo quando il vettore è nullo
- 2) una lunghezza di un vettore doppio è il doppio di quella di partenza
- 3) la lunghezza di un lato non può essere maggiore della somma degli altri due (in un triangolo)
La norma 2 (euclidea) definita come ||x||2 = (∑i=1n xi2 )1/2 soddisfa le 3 proprietà
Norma p, p ∈ ℤ, p ≥ 1: ||x||p = (∑i=1n |xi|p)1/p |(x1, x2, ..., xn)|p)1/p
x = (x1, x2, ..., xn) oppure
p > 1 la funzione ||· ||2: ℝn → ℝ è una norma su ℝn
Norme più usate:
- p = 1, ||x||1 = ∑i=1n |xi|
- p = 2, ||x||2 = √ ∑i=1n xi2
- p = ∞ ||x||∞ = limp → ∞ ||x||p limp → ∞ (∑i=1n |xi|p)1/p = max |xi| i : 1, 2, ..., n
Boccia: (insieme dei vettori la cui norma è uguale a un numero)
Norma 2: n - 1 somme
n prodotti
1 radice quadrata
la più costosa
Norma 1: n - 1 somme, la meno costosa
Norma ∞: n - 1 confronti
Algoritmo del prodotto:
dati n numeri a1,...,an calcola S=∏ai
- S=1
- for i=1,...,n
- S=S*ai
Algoritmo del massimo:
dati a1,...,an calcola M=max ai
- M=a1
- for i=2,...,n
- if M<ai
- M=ai
Con M=0 l'algoritmo si potrebbe applicare a vettori non negativi, l'algoritmo sarebbe non generale, cioè non applicabile a tutta una classe di problemi.
Algoritmo per ||A||1=max ∑|aij|:
- M=0
- for j=1,...,n
- S=0
- for i=1,...,n
- S=S+|aij|
- if M<S
- M=S
Algoritmo del prodotto matrice-vettore:
dati A∈ℝm×n, x∈ℝn calcolare y=A*x
- for i=1,...,m
- S=0
- for j=1,...,n
- S=S+aij*xj
- yi=S
Mantissa per gli standard IEEE:
1) Precisione semplice:
- ho a disposizione m = 23 bit per la mantissa. Tuttavia il primo bit è sempre uguale a 1 (bit noto, bit fantasma).
- si guadagna un bit (24 cifre in tutto).
Tecnica di approssimazione: "rounding to even"
- Es, β = 2, m = 6
-
- 0.1010011 · 22 → 0.101010 · 22 rounding=round to even
- 0.1010012 · 22 → 0.101000 · 22 rounding=round to even pari (quindi si lascia così)
- Anche per il rounding to even, εs = 1, β–m + 1 · 2–24 = 2–24 ≈ 5.96 · 10–8
2) Precisione doppia:
- εn–1/2–53 = 2–53 ≈ 1.1 · 10–16
Operazioni in macchina:
- Somma algebrica fra due numeri reali: x ⊕ y, x ⊗ y
-
- L1 si trasforma il numero con caratteristica minore in modo che le caratteristiche dei due numeri coincidano (uno dei due perderà la forma in virgola mobile normalizzata).
- L2 si sommano le mantisse.
- L'operazione di floating del risultato (si normalizza il risultato e lo si tronca/arrotonda ove necessario).
E5
- β = 10, m = 5, arrotondamento
- x = 0.64937 · 105
- y = 0.53726 · 104
- L1(x) = 0.64937 · 105
- L1(y) = 0.53726 · 104
- 0.64937(0.0053726) · 10[0.00053726] = 0.64985276 · 105 → 0.64986 · 105 arrotondamento
E5
- β = 10, m = 5, arrotondamento
- x = 0.64937 · 105
- y = 0.53726 · 104
- x ⊕ y = 1.18663 · 105 ≈ 0.118663 · 10−8 = 0.11863 · 102 arrotondamento
E5
- β = 10, m = 4, troncamento
- x = ∗10* · 0.1000 · 100
- y = 0.00054
Esempio
(x-1)4 = 0 x=1 radice con molteplicità 4
(x-1)4 - 10-8
x = 1 ± 10-2; 1 ± i10-2
εr| x | = 1 = 10-2
εx > 10-1; 0.1 - 0.1 (perturbazione su dati)
εx > εr Il problema è mal condizionato
Sistemi Lineari
A x = b A ∈ ℝnxn b ∈ ℝn det(A) ≠ 0 ⇒ A x = b ammette una ed una sola
soluzione x = A-1 b
- Perturbazione alla soluzione
A (x + δx) = b + δb
- Perturbazione su dati
A = (835 667)(333 266) b = (168)(67)
b + δb = (168)(66)
∣∣b - (b + δb)∣∣∞ = ∣∣(1)
∣∣b∣∣∞ (1)
≥ 168
x = A-1b = (1)(-1)
x + δx = A-1(b + δb) = (-666)(834)
∣∣x - (x + δx)∣∣∞ = 835 ≥ 835
∣∣x∣∣∞ 1
≥ 1 Il problema è mal condizionato
Vogliamo trovare una relazione tra
∣∣x - (x + δx)∣∣⇒ ∣∣b - (b + δb)∣∣ ∣∣x∣∣ ∣∣b∣∣
Non è nota in generale
Teorema (Condizionamento di un sistema lineare)
Si consideri A x = b sistema lineare con A ∈ ℝnxn b ∈ ℝn det(A)≠0
Si consideri il sistema perturbato A (x + δx) = b + δb Allora,
∣∣∣Δx∣∣∣≤ κ(A) ∣∣∣A-1∣∣∣∣∣∣∣Δb∣∣∣ Δ sulla soluzione
∣∣∣x | x∣∣∣ εx su dati
dove ∣∣∣. nel caso, qualsiasi norma vattoriale sia che consideri un vettore, mentre indica la norma matriciale indotta e applicata ad una matrice
Numero di condizionamento: κ(A) ≥ κ(A) ≥1 ∀ A ∈ ℝnxn