Estratto del documento

1 Slides 1

Avvalendosi di un calcolatore si lavora con una aritmetica finita che dà luogo ad errori.

  • Errore inerente: Si commettono errori rappresentando i dati del problema con un numero finito di cifre.
  • Errore algoritmico: Si commettono errori eseguendo le operazioni aritmetiche richieste dal processo di calcolo con una aritmetica finita.

Un problema è malcondizionato se piccole variazioni sui dati inducono grandi variazioni sui risultati.

Definizione: la complessità di calcolo, detta anche complessità computazionale o costo computazionale, viene misurata in funzione delle dimensioni del problema che si sta trattando e dà indicazione del numero di operazioni aritmetiche che necessitano per ottenere il risultato.

2 Slides 2

2.1 Rappresentazione floating point

q·x = p N.

Dove: p ∈ R è un numero reale; N è la base del sistema di numerazione scelto; q è un intero positivo → p mantissa, q esponente.

Esempio: x = 0.12345 = 12345 · 10−5.

Dove “12345” è la mantissa (p) e “-5” è l’esponente (q). Quindi ad x si associa la coppia (p,q).

La rappresentazione normalizzata, cioè −1 ≤ |p|N < 1, conduce alla rappresentazione unica di un numero x = 0 mediante la coppia (p, q).

Lo spazio riservato alla rappresentazione di un numero reale può essere visto come: segno (s), esponente (q), mantissa (|p|).

Si avrà che: per la singola precisione ci saranno a disposizione 32 bit quindi: 1 bit per il segno, 8 bit per l’esponente e 23 bit per la mantissa.

Per la doppia precisione ci saranno a disposizione 64 bit quindi: 1 bit per il segno, 11 bit per l’esponente e 52 bit per la mantissa.

−127 ≤ q ≤ 128 (semplice precisione).

−1023 ≤ q ≤ 1024 (doppia precisione).

Definizione: x ∈ R è detto numero macchina.

q ∈ / m, M. Se q < m si associa zero ad x ed il sistema segnala la situazione di underflow.

Se q > m, x non viene rappresentato ed il sistema segna la situazione di overflow.

q q ∈ ±pN ∈ ℑ.

Se q ∈ [m, M] ma x = / allora si usa l’approssimazione x = p Ne ee.

2.2 Troncamento o chopping

Nella mantissa p vengono escluse le cifre dopo la t-esima.

p = 0.a1 a2 a3 ... at at+1...

pe = 0.a1 a2 a3 ... at.

Errore assoluto: εA = xe − x.

Errore relativo: εR = (xe − x) / x.

A| < N−t+q.

R| < N−t+1.

2.3 Arrotondamento

xe = arr(x), xe = peNq.

trn(p) se at+1 < N/2.

trn(p + N−t) se at+1 ≥ N/2.

A| < 1/2 N−t+q.

R| < 1/2 N−t+1.

Il valore che limita superiormente l’errore relativo (eps) è detto precisione di macchina.

eps = N−t+1 troncamento.

eps = 1/2 N−t+1 arrotondamento.

2.4 Operazioni di macchina

Se si effettua un’operazione su due numeri di macchina, il risultato non per forza lo è. Bisogna approssimare affinché: x, y ∈ ℑ → x op y / ∈ ℑ ma fl(x op y) ∈ ℑ.

εR = fl(x op y) − x op y / x op y.

R| < eps.

Definizione: fl(x op y) = (1 + εR)(x op y).

In aritmetica non è detto che valgano le proprietà dell’aritmetica:

fl(fl(x · y) · z) ≠ fl(x · fl(y · z)).

fl(fl(x + y) + z) ≠ fl(x + fl(y + z)).

Esempi da pagina 18 Slides 2.

2.5 Errore inerente

Errore relativo alla rappresentazione.

εIn = f(xe) − f(x) / f(x).

Sviluppo in serie di Taylor al primo ordine f(x):

f(xe) = f(x) + δf(x)/δxi (xei − xi) + ... + δf(x)/δxn (xen − xn).

f(xe) − f(x) = δf(x)/δxi (xei − xi) + ... + δf(x)/δxn (xen − xn).

Divido entrambi i membri per f(x) e moltiplico e divido il secondo membro per xi ottenendo:

εIN = Σi=1n (xei − xi) / xi · xi / f(x) · δf(x)/δxi.

Sapendo che εri = (xei − xi) / xi si può scrivere:

εIN = Σi=1n εri xi / f(x) · δf(x)/δxi.

Ponendo Ci = xi / f(x) · δf(x)/δxi si ottiene:

εIN = Σi=1n εri Ci.

Dove Ci è l’indice di condizionamento.

2.6 Errore algoritmico

εALG = Σi=1M θi (x1, x2, x3, ..., xn) γi.

Dove M è il numero di operazioni che compongono l’algoritmo in uso.

γi := εRi, i = 1, 2, 3, ..., M.

2.7 Errore totale

εTOT ≈ εIN + εALG.

Esempio da pagina 33 Slides 2.

3 Slides 3

a11x1 + a12x2 + ... + a1nxn = b1.

a21x1 + a22x2 + ... + a2nxn = b2.

........................................................................................

am1x1 + am2x2 + ... + amnxn = bm.

Da cui si può ottenere la matrice A associata al sistema, il vettore x delle incognite, e il vettore b dei termini noti. Quindi si può scrivere il sistema come: Ax = b.

Esempi da pagina 4 Slides 3.

3.1 Norma di un vettore

La norma di un vettore è un’applicazione che a un vettore associa un numero reale.

|| · || : Cn −→ R+0.

Definizione:

  • 1. ||x|| ≥ 0 ∀x ∈ Cn, ||x|| = 0 ↔ x = 0.
  • 2. ||αx|| = |α| ||x|| ∀x ∈ Cn, ∀α ∈ C.
  • 3. ||x + y|| ≤ ||x|| + ||y|| ∀x, y ∈ Cn.

Le funzioni norma più comunemente usate sono:

||x||1 = Σi=1n |xi|, norma 1.

||x|| = max1 ≤ i ≤ n |xi|, norma infinito.

||x||2 = √(Σi=1n |xi|2), norma 2.

Algoritmo pagina 12 Slides 3.

3.2 Norma di una matrice

La norma di una matrice è un’applicazione che a una matrice associa un numero reale.

|| · || : Cn×n −→ R+0.

Definizione:

  • 1. ||A|| ≥ 0 ∀A ∈ Cn×n, ||A|| = 0 ↔ x = Ω.
  • 2. ||αA|| = |α| ||A|| ∀A ∈ Cn×n, ∀α ∈ C.
  • 3. ||A + B|| ≤ ||A|| + ||B|| ∀A, B ∈ Cn×n.

Le funzioni norma più comunemente usate sono:

||A||1 = max1 ≤ j ≤ n Σi=1n |aij|, norma 1.

||A|| = max1 ≤ i ≤ n Σj=1n |aij|, norma infinito.

||A||2 = √(ρ(ATA)), norma 2.

Dove ρ è il raggio spettrale cioè il massimo tra gli autovalori in modulo.

Algoritmo pagina 12 Slides 3.

3.3 Relazioni tra norma di vettore e di matrice

Compatibilità tra norma di vettore e di matrice:

||Ax|| ≤ ||A|| ||x||.

Norma di vettore 1, 2 e ∞ sono compatibili con una norma 1, 2 e ∞ di una matrice.

3.4 Condizionamento di un sistema lineare

K(A) = ||A|| ||A−1||.

In MATLAB, cond(A) fornisce in output l’indice di condizionamento del sistema Ax = b.

Da pagina 19 Slides 3.

3.5 Metodi numerici per la risoluzione di sistemi di equazioni lineari

Da pagina 22 Slides 3.

3.6 Metodi diretti per la risoluzione di sistemi lineari

Sono dei metodi basati sulla trasformazione del sistema in uno equivalente che ha una struttura più semplice, e quindi è più facile calcolare la soluzione in un numero finito di passi.

Vengono usati per sistemi di dimensioni non troppo grandi e con la matrice del sistema piena, cioè con la maggior parte degli elementi diversi da zero.

3.7 Metodo di eliminazione di Gauss (MEG)

Il Metodo di eliminazione di Gauss trasforma in n-1 passi il sistema lineare A x = b, A ∈ Rn×n, x, b ∈ Rn×1, det(A) ≠ 0, in una matrice dei coefficienti triangolare superiore. Ha un costo computazionale O(n3/3).

Formule generali:

Per k = 1, 2, ..., n-1 e i = k+1, k+2, ..., n.

mik = aik(k) / akk(k).

aij(k+1) = aij(k) − mik akj(k).

bi(k+1) = bi(k) − mik bk(k).

Esempio da pagine 16 Slides 4.

Algoritmo Gauss (prima versione).

Input: A, n.

Output: An, bn.

  • Ripetere per k = 1, n-1.
  • Ripetere per i = k+1, n.
  • mik = aik / akk.
  • Ripetere per j = k+1, n.
  • aij = aij − mik akj.
  • bi = bi − mik bk.

3.8 Metodo di Gauss con pivoting parziale

Se akk(k) = 0 si cerca un r ≥ k tale che |ark(k)| = maxk≤s≤n |ask(k)|.

Cioè si scambia la riga k-esima con la riga r-esima. Conviene, ad ogni passo k, usare questa tecnica, anche se akk(k) ≠ 0 perché aumenta la stabilità numerica.

Esempio da pagina 34 Slides 4. Codice pagina 36 Slides 4.

4 Slides 4

4.1 Fattorizzazioni

Il sistema Ax = B viene risolto operando una fattorizzazione della matrice A = BC.

Questo significa che BCx = b e cioè che: Cx = y e By = b.

4.2 Fattorizzazione LU

La scelta delle matrici B e C caratterizza la fattorizzazione LU. Avremo che:

B = L, L è triangolare inferiore.

C = U, U è triangolare superiore.

A = LU.

La matrice A, con elementi a11, a12, a13, ..., a1n; a21, a22, a23, ..., a2n; ...; an1, an2, an3, ..., ann, viene espressa come prodotto tra la matrice L e la matrice U.

La matrice L ha elementi 1 sulla diagonale principale, elementi l21, l31, l32, ..., ln1, ln2, ln3, ..., e la matrice U ha elementi u11, u12, u13, ..., u1n; u22, u23, ..., u2n; u33, ..., u3n; ...; unn.

Si può notare che la matrice L ha tutti uno sulla diagonale principale e che la prima riga della matrice U è uguale alla prima riga della matrice A.

Questa fattorizzazione è possibile se det(Ak) ≠ 0. Dove Ak è la sottomatrice di ordine k.

Gli elementi di L e U si ottengono dall’uguaglianza A = LU.

Come si procede con il calcolo?

Essendo che prima riga di U è sempre uguale alla prima riga di A. Per la seconda riga si avrà:

a21 = l21u11 → l21 = a21 / u11.

a22 = l21u12 + l22u22 → u22 = a22 − l21u12.

a2n = l21u1n + l22u2n → u2n = a2n − l21u1n.

Iterando si arriva alla conclusione che l’elemento amn è dato dalla somma dei prodotti degli elementi della riga m della matrice L per gli elementi della colonna n della matrice U, il normale prodotto riga per colonna.

In definitiva possiamo dire che:

uij = aij − Σk=1n−1 likukj.

Quindi in generale si avrà che:

uij = aij − Σk=1i−1 likukj, j = i, ..., n.

lij = (aij − Σk=1j−1 likukj) / ujj, j = 1, ..., i − 1.

4.3 Applicazioni della fattorizzazione

Soluzione di un sistema lineare.

Ax = b −→ LUx = b.

Ly = b, sistema triangolare inferiore.

Ux = y, sistema triangolare superiore.

Una volta fattorizzata A la soluzione del sistema si ottiene risolvendo i due sistemi triangolari.

Se si devono risolvere più sistemi lineari aventi la stessa matrice dei coefficienti, si fattorizza una sola volta A e per ogni vettore b si risolvono i due sistemi triangolari.

Calcolo del determinante di A.

det(A) = det(LU) = det(L) det(U), teorema di Binet.

Sapendo che det(L) = 1 si avrà che:

det(A) = det(LU) = det(U) = Πk=1n ukk = a11(1) a22(2) ... ann(n).

4.4 Applicazioni della fattorizzazione pt. 2

La matrice inversa di una matrice A non singolare è la matrice A−1 tale che:

A A−1 = I.

Si ricordi che I = E1, E2, ..., En, dove Ei sono vettori della base canonica.

Quindi:

A−1 = X1, X2, ..., Xn.

A Xi = Ei.

Dove Xi sono le colonne di X che è la matrice inversa.

Conoscendo la fattorizzazione di A basta risolvere gli n sistemi lineari, cioè:

L Yi = Ei, U Xi = Yi, i = 1, 2, ..., n.

4.5 MEG e fattorizzazione LU

Il metodo di eliminazione gaussiana si basa sull’idea di ridurre il sistema Ax = b ad un sistema equivalente della forma Ux = b, dove U è triangolare superiore e b è un nuovo termine noto. Questo sistema può essere risolto con il metodo delle sostituzioni all’indietro.

Indichiamo il sistema originario come A(1)x = b(1). Per ottenere il sistema equivalente utilizzeremo il metodo di Gauss.

Consideriamo una matrice A ∈ R, non singolare, e supponiamo che l’elemento diagonale a11 sia non nullo.

Quindi:

mi1 = ai1(1) / a11(1), i = 1, 2, ..., n.

Dove aij(1) sono gli elementi di A(1). È possibile eliminare l’incognita x1 da tutte le righe successive alla prima sottraendo dalla riga i-esima con i = 2, 3, ..., n la prima riga moltiplicata per mi1, eseguendo la stessa operazione per il termine noto. In generale si avrà che:

aij(2) = aij(1) − mi1a1j(1), i = 2, 3, ..., n.

bi(2) = bi(1) − mi1b1(1), i = 2, 3, ..., n.

Dove bi(1) sono le componenti di b(1) si avrà un sistema:

a11(1)x1 + a12(1)x2 + ... + a1n(1)xn = b1(1).

0x1 + a22(2)x2 + ... + a2n(2)xn = b2(2).

...

0x1 + an2(2)x2 + ... + ann(2)xn = bn(2).

Che indicheremo con A(2)x = b(2), equivalente a quello di partenza.

In modo analogo, possiamo trasformare il sistema in modo da eliminare l’incognita xi dalla righe i + 1, ..., n.

In generale si otterrà:

A(k)x = b(k), 1 ≤ k ≤ n.

Assunto che aii(i) ≠ 0 per i = 1, ..., k − 1. È evidente che per k = n si otterrà un sistema triangolare superiore.

A(n)x = b(n).

a11(1)x1 + a12(1)x2 + ... + a1n(1)xn = b1(1).

0x1 + a22(2)x2 + ... + a2n(2)xn = b2(2).

0x1 + 0x2 + ... + ann(n)xn = bn(n).

Possiamo indicare con U la matrice triangolare superiore A(n). Gli akk(k) vengono detti elementi pivotiali e devono essere non nulli. Per evidenziare le formule che consentono di trasformare il sistema k-esimo in quello k+1-esimo, per k = 1, ..., n-1 si assume che akk(k) ≠ 0 e definiamo il moltiplicatore:

mik = aik(k) / akk(k), i = k + 1, ..., n.

Quindi:

aij(k+1) = aij(k) − mikakj(k), i, j = k + 1, ..., n.

bi(k+1) = bi(k) − mikbk(k), i = k + 1, ..., n.

In generale:

M1A(1) = A(2).

M2A(2) = A(3).

A(3) = M2A(2) = M2M1A(1).

...

U = A(n) = Mn−1Mn−2...M1A(1).

Quindi si può scrivere:

U = A(n) = (Mn−1Mn−2...M1)A.

(Mn−1Mn−2...M1)−1 U = (Mn−1Mn−2...M1)−1 (Mn−1Mn−2...M1)A(1).

(Mn−1Mn−2...M1)−1 U = A(1).

Ponendo (Mn−1Mn−2...M1)−1 = L si ottiene:

LU = A(1).

Esempio da pagina 17 Slides 4.

4.6 Matrice simmetrica definita positiva

Sia A ∈ M(n, R), una matrice di ordine n a coefficienti reali e sia x ∈ Rn un generico vettore riga. La matrice è definita positiva se il prodotto xTAx è un numero positivo per ogni x diverso dal vettore nullo.

A = AT e xTAx > 0, ∀x ∈ Rn, x ≠ 0.

4.7 Criterio di Sylvester

Una matrice simmetrica è definita positiva se e solo se det(Ak) per k = 1,2,...,n e dove Ak sono le sottomatrici principali dell’ordine k.

4.8 Fattorizzazione di Cholesky

Data A = AT definita positiva, si avrà che:

A = L LT.

Per questo algoritmo basta fare il prodotto e uguagliare il risultato all’elemento aij.

Formule generali:

ljj = √(ajj − Σk=1j−1 ljk2).

lij = (aij − Σk=1j−1 likljk) / ljj.

Esempio da pagina 22 Slides 4.

Codice pagina 25 Slides 4.

4.9 Matrici sparse

Le matrici sparse sono matrici con predominanza di elementi nulli. Non esiste una definizione rigorosa di sparsità, la precedente è solo qualitativa.

La sp

Anteprima
Vedrai una selezione di 10 pagine su 45
Appunti Metodi numerici Pag. 1 Appunti Metodi numerici Pag. 2
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 6
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 11
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 16
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 21
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 26
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 31
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 36
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Metodi numerici Pag. 41
1 su 45
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher CiccioLagXCVIII di informazioni apprese con la frequenza delle lezioni di Metodi numerici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Palermo o del prof Francomano Elisa.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community