18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.4. Strategie <strong>di</strong> pivoting<br />

Si vanno quin<strong>di</strong> a cercare i più piccoli interi q e r tali che<br />

|a qr<br />

(i−1) | = max<br />

i≤k,j ≤n |a(i−1) j k<br />

|<br />

Si opera, quin<strong>di</strong>, uno scambio non solo <strong>di</strong> righe ma anche <strong>di</strong> colonne in modo da portare l’elemento<br />

pivotale dalla riga e colonna qr al posto i i . Di questo scambio <strong>di</strong> colonne bisogna conservare<br />

traccia perchè vengono scambiate anche le componenti del vettore soluzione, in modo da effettuare lo<br />

scambio inverso una volta risolto il sistema.<br />

Il maggiore sforzo computazionale garantisce maggiore accuratezza e stabilità nei risultati, nel senso che<br />

gli errori <strong>di</strong> arrotondamento non sono così amplificati come potrebbe succedere senza l’adozione <strong>di</strong> una<br />

tecnica <strong>di</strong> pivoting.<br />

Esempio<br />

Esempio 7.4.1 Consideriamo il sistema<br />

x 1 + x 2 +x 3 = 1<br />

x 1 + 1.0001x 2 + 2x 3 = 2<br />

x 1 + 2x 2 + 2x 3 = 1<br />

L’esatta soluzione, corretta a 4 cifre decimali, è x = (1, −1.0001, 1.0001) T .<br />

L’eliminazione <strong>di</strong> Gauss senza pivoting porta al sistema<br />

x 1 + x 2 +x 3 = 1<br />

0.0001x 2 + 1x 3 = 1<br />

1x 2 + 1x 3 = 0<br />

e, infine, a<br />

x 1 + x 2 +x 3 = 1<br />

0.0001x 2 + 1x 3 = 1<br />

−9999x 3 = −10000<br />

Se usiamo un’aritmetica in base 10 con 3 cifre decimali, allora la sostituzione all’in<strong>di</strong>etro ci darà<br />

x 3 = −10000<br />

−9999 = 1.000, x 2 = 1 − 1<br />

0.0001 = 0, x 1 = 0.<br />

La soluzione è completamente sbagliata.<br />

Se, invece, facciamo lo scambio della seconda e terza riga adottando il pivoting parziale, allora avremo<br />

il sistema:<br />

x 1 + x 2 +x 3 = 1<br />

1x 2 + 1x 3 = 0<br />

0.0001x 2 + 1x 3 = 1<br />

103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!