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
TEORIA + MATLAB
- ARITMETICA - ERRORI
- SISTEMI LINEARI
- METODI PER RISOLUZIONE SISTEMI LINEARI
- APPROSSIMAZIONE DI DATI E DI FUNZIONI
- CRITERI DI INTERPOLAZIONE
- CONVERGENZA
- EQUAZIONI DIFFERENZIALI ORDINARIE
Lezioni Soudieri
Lezione 12 - Aritmetica Errori
Consideriamo il sitema di num. decimale, ovvero in base N=10
Es. a = 109,34 = 1x102 + 0x101 + 9x100 + 3x10-1 + 4x10-2
Si def. Rappresentazione Floating-Point di un numero reale a la rappresentazione
a = pNq p reale, q intero
Es. a = 0.015 x 10-1 0.15 x 10-2 = 0.0015 100
La rappr. floating-point non è unica.
È univocamente determinata se si impone la condizione:
- N-1 ≤ |p| < 1 ( => per N=10 , 0.1 ≤ |p| <1)
Nell'es. precedente l'unica che soddisfa questa condizione è 0.15x10-2 (perchè la cifra dopo la virgola è ≠0)
Se la condizione è soddisfatta allora si dice che la rapp. floating point è NORMALIZZATA
a = pNq → | in questo caso p=mantissa di aq= esponente o caratteristica di a
Es. Per N=100 : intero
Fissato m0, al posto di q il calcolatore memorizzaq* = q - m0 ≥ 0esponente normalizzato
Non tutti i numeri reali sono rappresentabili su un calcolatore.
Definiano numeri macchina quei numeri le cui p e q sono esattamente rappresentabili, negli spazi loro riservati
Es: N=10, t = 5, m = -124, M = 128
a = 1.58291.10-2 è num. di macchina perchè abbiamo 6 cifre e t è massima 5.
y = 1 - cos(x)/x2 con x ≠ 0
Eelimino la caus. num. (dovuta a sottrazione tra 1 e cos x, evitando si nulii e autocondiz.)
1 - cos x = 2sin2(x/2)
y = 2 sin2(x/2)/x2 = 1/2 ( sin (x/2)/x/2 )
y = x - sin x/lax x x ≠ 0
Utilizziamo Taylor → y = x ( x3/3! - x5/5! + ... )
= x3/3! - x5/5! + ...
fenomeno dei numeri num. molto min.
autoc sottrazioni
PROBLEMA NUMERICO = descrizione chiara e non ambigua di una connessione funzionale
x → y
↑ ↑
dati input dati output
∞ x ∞
f(x) f(x)
Studiare CONDIZIONAMENTO di un problema.
Se x ≈ x̃ e f(x) ≈ f(x̃) → ben condizionato
(piccole perturbazioni nei dati → piccole perturb.
nei risultati)
Se x ≈ x̃ e f(x) ≠ f(x̃) → mal condizionato
(piccole perturb. nei dati → grandi perturb. su ris.)
Per lo studio del condizionamento dei relazioni del tipo:
* ||f(x)- β(x̃)||/f(x) ≈ K (f, x) ||x - x̃||
oppure ||f(x)- β(x̃)||/f(x) ||x - x̄/|x|
Example: y = x1 + x2, x1, x2∈ℝ
|x1 + x2 - (x1 + x2)| = |x1(1 + ϵ1) - x2(1 + ϵ2)|
[x1 x2] [x1 x2]
x1 = 3x - xⱼ/2
|x - x̄/|x|
Comandi MatLab per implementare questo algoritmo
A: [ . . . ; . . . ; ] b: [ . ; . ; . ] m: length(b) x: zeros(m,1) x(1) = b(1) / A(1,1) for i = 2:m s = A(i,1) * x(1,i-1) + x(i-1) x(i) = (b(i)-s) / A(i,i) end end
Metodo di eliminazione di Gauss
Assegniato Ax = b di ordine m, il Gauss trasforma in m-1 passi il sistema Ax = b in uno equivalente Ux = B, con U matrice Δ sup.
Ax = b ⇔ Ux = B ⇔ x Equivalenti (cioè stessa soluzione)
Proprietà del metodo
- Soluzione invariata se scambiamo tra loro due equazioni del sistema.
- Se sostituiamo a un’equ. del sistema una c.f. dell’equ. stessa.
Consideriamo il sistema di ordine m+1 non singolare e cioè det ≠ 0.
Ax = b →
- a11x1 + a12x2 + a13x3 + a14x4 = b1
- a21x1 + a22x2 + a23x3 + a24x4 = b2
- ....
- Come lo trasformiamo in Ux = b? 1. Lascia nella I colonna solo il 1' elemento 2. Eliminiamo x2 da III e IV equazione 3. Eliminiamo xu da IV equazione
Passo k = 1
- Poniamo: a(1)ij = aij e b(1)j (notazione)
- Supponiamo c(1)11 ≠ 0, altrimenti SCAMBIO le 1° eq. con la k-esima ke c(k)k1 ≠ 0
- Eliminiamo x nelle eq. i = 2,3,4
In generale si considera la riga 2 come riga i-esima - quindi faccio la stessa cosa per i = 3 e 4.
Alla fine ottengo la matrice →
Alcune app della fattorizzazione PA=LU
1) Risoluzione del sistema lineare Ax=b
Ax=b ↔ PAx=Pb ↔ LUx=Pb
Ly=Pb => n.b. m2/2 operazioni
Ux=y => n.b. m2/2 operazioni
Costo risoluzione (O m3)
Costo fabbricazione m3 oper.
⇓ nnz (numero non zeri di L+U)
φ (m3/3) operazioni moltiplicazioni
Lezione 5-6
PA=LU
P: matrice di permutazione → memorizza gli scambi richiesti dal pivoting
A: matrice di partenza
L: matrice a tc che contiene i moltiplicatori
U: matrice SυD usata x risolvere il sistema Ax=b
Altre applicazioni:
- Calcolo del determinante di A
⇓
Calcolo PA=LU e poi det(A)= (-1)s∏i=1m uii
Calcolo fatto da MATLAB quando calcoliamo det(A)
prodotto della diagonale u11 ... unn
s=n. totale degli scambi effettuati
- Calcolo dell'inversa di A (costo m3)
A-1=?
Ricorda: (AB)-1 = B-1 A-1 ⇐ moltiplico per P x eliminare P-1
PA=LU
↔ P-1(PA)= P-1(LU) ↔ A= L'U ↔ A-1P= P-1 P-1 = -1 L-1U-1 P
↔ A-1 = U-1 L-1 P
→ Costo computazionale ottimale (O m3) ma si può fare con costo inferiore
In MATLAB inv(A) esegue questo algorítmo
- Risoluzione di p systemi lineari aventi la stessa matrice dei coeff.
A1x1 = b1 → x1 = A\ b1 (da Matlab) O (m3)
A2x2 = b2 → x2 = A\ b2 O (m3)
A3x3 = b3 → x3 = A b3 O (m3)
&O (m3) = costo totale
- P A xi = Pbi →
Lyi = Pbi ⊕ U xi = yi i=1,2,3
Funzionallo?
Esiste algorítmo che calcola questi vettori incogniti con costo minore? Si.
PA=LU ⊕ m3