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
Risoluzione di sistemi lineari
Anx=b con A∈ℝn*m
Dati un vettore b∈ℝn e una matrice A∈ℝm×n, si cerca X∈ℝn t.c. Ax=b.
CNS per avere un'unica soluzione → A non singolare, cioè det A ≠ 0 quindi A invertibile.
Soluzione: X=A-1b COSTOSO
Non si calcola se non è necessario, A-1 ma si cerca di risolvere il sistema. Questo è molto costoso. Nel caso di alcune matrici si hanno però dei costi contenuti -> Di seguito sono mostrate le soluzioni di tali matrici:
- Matrice A diagonale
- A =[ d11 0 ... ][ 0 d22 ... ][ ... dmm ]
Sistema costituito da m equazioni indipendenti tra di loro:
- xa = b1/d11
- xm = bm/dmm
- → xk = bk/dkk
Costo: m ops
- A Triangolare superiore
- A =[ u11 u12 u13 ... u1m ][ 0 u22 u23 ... u2m ][ 0 0 u33 ... ][ 0 0 0 umm ]
Sistema
- x1 = (b1 − ∑ mj=2 lijxj)/ u1m
- ...
- xm = bm/umm
- Inversione
- A =[ ℓ11 0 0 ... ][ ℓ21 ℓ22 0 ... ][ ℓ31 ℓ32 ℓ33 ... ][ ℓm1 ... ℓmm ]
Sistema
- x2 = bn/ln
- x2 = (b2 − l21x1)/l22
- xm = (bm − ∑ m-1j=1 lijxj) / lmm
Si parte dall'ultima equazione
Si parte dalla prima equazione.
ξk = bT
ξk = T
Il costo per il calcolo del generico termine k è dato da
Nel caso di una generica matrice A si potrebbe
metodo di Cramer
usare il metodo di Cramer che permette di trovare la
data da
dove Ai è ottenuta sostituendo alla colonna i il
vettore dei termini noti. Il costo per il calcolo
di un determinante è O(m!). In questo caso si
devono calcolare m+1 determinanti (A, A1, A2, ..., Am)
costo = (m+1)
Metodo molto costoso, usato solo per sistemi al massimo
4x4.
MEG
riduco la matrice A ad una matrice triangolare
Costo = O(m3⁄3) + M(m+1)
I metodi visti sopra servono per risolvere sistemi del tipo Ax = b evitando di calcolare esplicitamente A-1. Se si volesse calcolare esplicitamente i coefficienti di A-1, si potrebbe utilizzare tale metodo.
A-1 = [c(1) c(2) ... c(m)]
per definizione AA-1 = I
Sostituisco ad A-1 il vettore delle colonne e ottengo il seguente sistema:
- Ac(n) = e(n)
- Ac(2) = e(2)
- Ac(m) = e(m)
con e(n) = [1 0 ... 0]Tcon e(2) = [0 1 0 ... 0]Tcon e(m) = [0 0 ... 1]T
Ogni equazione mi dà una colonna della matrice. Da una equazione all'altra varia solo il vettore dei termini noti, si può quindi usare MFG e calcolare un'unica volta le 2 matrici L e U, il costo di fattorizzazione si fa quindi una volta sola.
Costo = O(M3⁄3) ➔ M(m+1) ➔ Mper ogni equazione
≈ M3⁄3 + M3 + M2 ≈ 4⁄3 m3 + m2
Studio della stabilità del problema
Un problema è stabile o ben condizionato se a piccoli errori sui dati corrispondono piccoli errori sul risultato.Dato il problema Ax = b
I metodi iterativi necessitano di un test di arresto che serve per decidere quando fermare la successione e considerare abbastanza buono il risultato ottenuto. Ci sono diversi test:
- test ideale: |x^(m) - x| < ε → Problema: x non è noto;
- test sulle iterate: |x^(m) - x^(m+1)| <= εQuesto test va bene per metodi con convergenza rapida. In caso contrario si avrebbe uno scostamento tra le iterate troppo piccolo e il metodo rischierebbe di interrompersi troppo presto.
- test sul residuo: ||b - Ax^(m)|| / ||b|| = ||A*e^(m)|| / ||b|| <= ε
Generalmente si usa il secondo metodo ad ogni iterazione e se il test ha successo si verifica un controllo col test sul residuo (che è più costoso).
Calcolo manuale N O(m²): Prodotto matrice vettore N O(m²) (costo per ogni iterazione = O(m²))
Conviene utilizzare un metodo iterativo invece di uno diretto se il numero di iterazioni è << M/3.
- Sistema sottodimensionatoAx = b con b ∈ Rᵐ, A ∈ Rᵐˣⁿ con m < n. In questo caso è necessario fissare a priori m-n incognite e poi risolvere normalmente il sistema.
- Sistema sovradimensionatoAx = b con b ∈ Rᵐ, A ∈ Rᵐˣⁿ con m > n. Un sistema di questo tipo può avere uno, nessuna o infinite soluzioni a seconda di A e b. Sia A ∈ Rᵐˣⁿ, m > n, se A ha rango pieno, il sistema normale ha un'unica soluzione detta soluzione del sistema nel senso dei minimi quadrati.
Consideriamo il sistema normale Aᴵ A x = Aᴵ b
Si ottiene quindi il sistema
AAn = E
con
- Q = [a1, ..., aN]T
- E = [b1, ..., bn] con bi = ∫ab f(x) φi(x) dx
- A = [ai,j] con ai,j = ∫ab φi(x) φj(x) dx
Ma siccome φi(x) e φj(x) sono ortogonali si ha:
ai,j = { 0 se i ≠ j∫ab φi²(x) dx se j = i
Sistema:
- ∫ab φ1²(x) dx
- ...
- ∫ab φN²(x) dx
Siccome AK è diagonale, il sistema è costituito da N equazioni indipendenti che si risolvono nel seguente modo:
aK = ∫ab f(x) φK(x) dx / ∫ab φK2(x) dx = (f, φK)L²(a,b) / ‖φK‖²L²(a,b)
detti coefficienti da Fourier di f
Se {φK} è una base ortonormale (‖φK‖ = 1), allora ak = (f, φK) e valgono le seguenti proprietà:
→ fN è la proiezione sullo spazio S di f cioè si ha:(f - fN, V) = 0 ∀ V ∈ S.
Se \(d^k = d^{opt}\), l'espressione dell'errore è:
E \((x^{(m+1)}) = (1 - \gamma_k) E (x^{(m)})
Metodo del gradiente
Si prende come direzione di discesa il residuo:
\(\rho^{(m)} = y_c^{(m)} - \nabla F (x^{(m)})\)
L'espressione dell'errore è:
E \((x^{(m+1)}) = \left[ \frac{\kappa(A)-1}{\kappa(A)+1} \right]^2 E (x^{(m)})
Se \(A\) è mal condizionata \((\kappa(A) \gg 1)\) la convergenza è molto lenta.
Costo per ogni iterazione: \(O(m^2)\)
Metodo del gradiente coniugato
IDEA: Se \(d^k = d^{opt}\) allora \((x^{(m)}, \rho^{(m-1)}) = 0\). Dato \(\rho^{(m-1)}\) si cerca \(\rho^{(m)}\) nel piano
\(span\{x^{(m)}, \rho^{(m-1)}\}\).
\(\rho^{(m)} = y_c^{(m)} + \beta_k \rho^{(m-1)}\)
con \(\beta_n\) da scegliere in modo che la riduzione dell'errore sia massima. Si trova che:
\(\beta_k = - \frac{(A \rho^{(m-1)}, y_c^{(m)})}{(A \rho^{(m-1)}, \rho^{(m-1)})}\)
L'espressione dell'errore è:
E \([x^{(m)}] \leq 4 \left( \frac{\sqrt{\kappa(A)} - 1}{\sqrt{\kappa(A)} + 1} \right)^2 E (x^{(m-1)})
Il numero di iterazioni necessarie per ridurre di \(\epsilon\) l'errore iniziale è proporzionale a \(\sqrt{\kappa(A)}\), mentre
nel metodo del gradiente a \(\kappa(A)\).