Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica...
Transcript of Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica...
Svolgimento di alcuni esercizi del corso di Calcolo Numerico
A.A. 2012-2013
Prof. R. Morandi
Versione in aggiornamento (5 gennaio 2013):ogni segnalazione di imprecisioni e gradita
Aritmetica FinitaEsercizio 1: Assegnati i numeri reali a = 20
7 , b = 12 102, c = 64 10−1 siano a, b, c, i loro float-
ing su un elaboratore ideale che utilizza la base β = 10 ed m = 2 cifre per la rappresentazionedella mantissa (senza limiti sulla caratteristica) che operano per arrotondamento. Si chiede dieffettuare la somma a⊕ b⊕ c scegliendo opportunamente l’ ordine di esecuzione e motivandonela scelta.
Svolgimento:
Siano a = 207 , b = 1
2 102, c = 64 10−1;
fl(a) = a = 0.29 101, fl(b) = b = 0.50 102, fl(c)c = 0.64 101
Dato che a e c hanno la stessa caratteristica la somma deve essere effettuata nell’ ordine seguente
a⊕ b⊕ c = (a⊕ c)⊕ b
cioe0.93 102 + 0.50 102 = fl(0.09 3 102) + 0.50 102 = 0.59 102
Esercizio 2: Su un elaboratore ideale che utilizza m = 3, β = 10, opera per arrotondamento enon ha limitazioni sulla rappresentazione della caratteristica, si consideri la matrice A floatingdi
A =
[9000 .000090 1.717
].
Nell’ aritmetica dell’ elaboratore si calcoli l’ errore ∥A−A∥1∥A∥1 .
Svolgimento:
Per calcolare A si devono calcolare i floating di tutti gli elementi, cioe
A =
[0.900 104 0.900 10−4
0 0.172 101
], A− A =
[0 00 0.3 10−3
]
Usando l’ aritmetica dell’ elaboratore in questione∥A− A∥1∥A∥1
=0.300 10−3
0.900 104= 0.333 10−7
Esercizio 3: Su un elaboratore ideale che utilizza m = 3, β = 10, opera per arrotondamento enon ha limitazioni sulla rappresentazione della caratteristica, si consideri la matrice A floatingdi
A =
[3000 .000030 1.414
].
Nell’ aritmetica dell’ elaboratore si calcoli l’errore ∥A−A∥1∥A∥ , e si confronti con la precisione di
macchina dell’ elaboratore di cui sopra.
Svolgimento:
Per calcolare A si devono calcolare i floating di tutti gli elementi, cioe
A =
[0.300 104 0.300 10−4
0 0.141 101
],
1
A− A =
[3000− 0.300 104 0.00003− 0.300 10−4
0− 0 1.1414− 0.141 101
]=
[0 00 0.400 10−3
]Calcoliamo l’ errore relativo ∥A∥1 = 0.300 104
∥A− A∥1∥A∥1
=0.4 10−3
0.3 104=
4
310−7 < εm =
1
210−2
Esercizio 4: Consideriamo un elaboratore operante con rappresentazione in base β = 10, arit-metica floating-point e tecnica di arrotondamento. Siano m = 4 le cifre a disposizione dellamantissa e n = 1 le cifre per la caratteristica.
i) Si rappresentino in macchina i seguenti vettori
x = (45.69364, −0.02), y = (45.698, −0.02), z = (−0.036 10−8, 0.01 10−9)
ii) Usando l’ aritmetica dell’ elaboratore e la norma 1, si calcoli l’errore relativo a meno delquale y approssima x.
Svolgimento:
i) Dato che l’ elaboratore opera per arrotandamento, la precisione di macchina e ϵm = 12β
1−m =1210
−3 = 5.0 10−4.
ii) Rappresentiamo in macchina i vettori assegnati:
x = (0.4569364 102, −0.2 10−1) ⇒ fl(x) = (0.4569 102, −0.2000 10−1)
y = (0.45698 102, −0.2 10−1) ⇒ fl(y) = (0.4570 102, −0.2000 10−1)
z = (−0.36 10−9, 0.1 10−10) ⇒ fl(z) = (−0.3600 10−9, 0.1 10−10︸ ︷︷ ︸underflow
)
iii) Ricordiamo che la norma 1 del vettore z ∈ IRn, z = (z1, z2, . . . , zn) e ∥z∥1 =∑n
i=1 |zi| e l’errore relativo a meno del quale y approssima x e
eR =∥x− y∥1∥x∥1
Usando l’ aritmetica dell’ elaboratore otteniamo
eR =∥fl(x)⊖ fl(y)∥1
∥fl(x)∥1=
∥(0.4569 102, −0.2000 10−1)⊖ (0.4570 102, −0.2000 10−1)∥1∥(0.4569 102, −0.2000 10−1)∥1
=∥(−0.1000 10−1, 0.0000)∥1
∥(0.4569 102, −0.2000 10−1)∥1= 0.1000 10−1 ⊘ (0.4569 102 ⊕ 0.2000 10−1)
= 0.1000 10−1 ⊘ (0.4569 102 ⊕ 0.0002 102)
= 0.1000 10−1 ⊘ 0.4571 102 = 0.2188 10−3
Esercizio 5: Consideriamo un elaboratore operante con rappresentazione in base β = 10, arit-metica floating-point e tecnica di arrotondamento. Siano m = 4 le cifre a disposizione dellamantissa e n = 1 le cifre per la caratteristica.
2
i) Si rappresentino in macchina i seguenti vettori
x = (1.25, −0.076987), y = (1.25, −0.077), z = (−126.46 107, 16.836)
ii) Usando l’ aritmetica dell’ elaboratore e la norma 1, si calcoli l’ errore relativo a meno delquale y approssima x.
Svolgimento:
i) Dato che l’ elaboratore opera per arrotandamento, la precisione di macchina e ϵm = 12β
1−m =1210
−3 = 5.0 10−4.
ii) Rappresentiamo in macchina i vettori assegnati:
x = (0.125 101, −0.76987 10−1) ⇒ fl(x) = (0.1250 101, −0.7699 10−1)
y = (0.125 101, −0.77 10−1) ⇒ fl(y) = (0.1250 101, −0.7700 10−1)
z = (−0.12646 1010, 0.16836 102) ⇒ fl(z) = (0.1265 1010︸ ︷︷ ︸overflow
, 0.1684 102)
iii) Usando l’ aritmetica dell’ elaboratore otteniamo
eR =∥fl(x)⊖ fl(y)∥1
∥fl(x)∥1=
∥(0.1250 101, −0.7699 10−1)⊖ (0.1250 101, −0.7700 10−1)∥1∥(0.1250 101, −0.7699 10−1)∥1
=∥(0.0000 100, 0.1000 10−4)∥10.1250 101 ⊕ 0.7699 10−1
= 0.1000 10−4 ⊘ (0.1250 101 ⊕ 0.0077 101)
= 0.1000 10−4 ⊘ 0.1327 101
= 0.7535 10−5
Esercizio 6: Consideriamo un elaboratore operante con rappresentazione in base β = 10, arit-metica floating-point e tecnica di arrotondamento. Siano m = 3 le cifre a disposizione dellamantissa e n = 1 le cifre per la caratteristica.
i) Assegnati vettori
x = (−56.8765, 0.003, 1.2811), y = (−0.1 1012, −4.7654),
si rappresentino in macchina.
ii) Dopo aver definito ∥x∥1,∥x∥2 e ∥x∥∞, si calcolino ∥x∥1, ∥x∥∞ usando l’ aritmetica dell’ elab-oratore.
iii) Si definisca la precisione di macchina ϵm e si indichi il valore di ϵm per l’elaboratore sopradescritto.
Svolgimento:
i) Rappresentiamo in macchina i vettori assegnati:
x = (−0.568765 102, 0.3 10−2, 0.12811 101) ⇒ fl(x) = (−0.569 102, 0.300 10−2, 0.128 101)
y = (−0.1 1012, −0.47654 101) ⇒ fl(y) = (−0.100 1012︸ ︷︷ ︸overflow
, −0.477 101)
3
ii) Posto x ∈ IRn, x = (x1, x2, . . . , xn), si ha
∥x∥1 =n∑
i=1
|xi|, ∥x∥2 =
√√√√ n∑i=1
x2i , ∥x∥∞ = max1≤i≤n
|xi|.
Usando l’ aritmetica dell’ elaboratore abbiamo
∥fl(x)∥1 = 0.569 102 ⊕ 0.300 10−2 ⊕ 0.128 101
= 0.569 102 ⊕ 0.000 102 ⊕ 0.128 101
= 0.569 102 ⊕ 0.013 102 = 0.582 102
e ∥fl(x)∥∞ = 0.569 102.
iii) La precisione di macchina ϵm e la limitazione superiore all’ errore relativo commesso nelrappresentare un numero x in macchina:
|x− fl(x)||x|
≤ ϵm, x ∈ IR, x = 0
Il valore di ϵm per l’ elaboratore descritto e ϵm = 12β
1−m = 0.5 10−2
4
Sistemi Lineari: Metodi Diretti (Metodo di Gauss)Esercizio 1: Sia assegnata la matrice A
A =
1 2 30 1 21 0 1
,
si chiede di:i) calcolare K1(A), essendo K1(A) il numero di condizionamento della matrice A in norma 1;
ii) si commenti il risultato ottenuto.
Svolgimento:
Si ricorda che K1(A) = ∥A∥1.∥A−1∥1.
i) Sia A =
1 2 30 1 21 0 1
, ∥A∥1 = 6
Dobbiamo calcolare la matrice A−1 e la sua norma 1. Impostiamo i tre sistemi con i vettori deitermini noti uguali ai primi tre vettori canonici ed applichiamo il metodo di Gauss per risolverei sistemi.
1 2 3 1 0 00 1 2 0 1 01 0 1 0 0 1
−→1 2 3 1 0 00 1 2 0 1 00 −2 −2 −2 0 1
−→1 2 3 1 0 00 1 2 0 1 00 0 2 −1 2 1
Risolvendo i tre sistemi lineari determiniamo le colonne della matrice inversa:
a−131 =
−1
2, a−1
21 + 2a−131 = 0 −→ a−1
21 = 1, a−111 + 2a−1
21 + 3a−131 = 1 −→ a−1
11 =1
2
a−132 = 1, a−1
22 + 2a−132 = 1 −→ a−1
22 = −1, a−112 + 2a−1
22 + 3a−132 = 0 −→ a−1
12 = −1
a−133 =
1
2, a−1
23 + 2a−133 = 0 −→ a−1
23 = −1, a−113 + 2a−1
23 + 3a−133 = 0 −→ a−1
13 =1
2
A−1 =
12 −1 1
21 −1 −1−12 1 1
2
.
La norma 1 della matrice inversa e quindi ∥A−1∥1 = 3.
Il numero di condizionamento in norma 1 risulta essere
K1(A) = ∥A∥1 · ∥A−1∥1 = 6× 3 = 18
Esercizio 2: Sia assegnata la matrice A
A =
1/2 1 3/20 1/2 11/2 0 1/2
;
5
si chiede di calcolare K∞(A), essendo K∞(A) il numero di condizionamento della matrice A innorma ∞.
Svolgimento:
Si ricorda che K∞(A) = ∥A∥∞.∥A−1∥∞.Sia
A =
1/2 1 3/20 1/2 11/2 0 1/2
;
∥A∥∞ = 3
Dobbiamo calcolare la matrice A−1 e la sua norma ∞. Impostiamo i tre sistemi con i vettori deitermini noti uguali ai primi tre vettori canonici ed applichiamo il metodo di Gauss per risolverei sistemi.
12 1 3
2 1 0 00 1
2 1 0 1 012 0 1
2 0 0 1−→
12 1 3
2 1 0 00 1
2 1 0 1 00 −1 −1 −1 0 1
−→12 1 3
2 1 0 00 1
2 1 0 1 00 0 1 −1 2 1
Risolvendo i tre sistemi lineari determiniamo le colonne della matrice inversa:
A−1 =
1 −2 12 −2 −2−1 2 1
La norma ∞ della matrice inversa e quindi ∥A−1∥∞ = 6.
Il numero di condizionamento in norma ∞ risulta essere:
K∞(A) = 3× 6 = 18
Esercizio 3: Assegnati la matrice A ed un parametro reale α, con:
A =
α/2 1 01 3 −20 −2 0
,
si chiede di:i) stabilire per quali valori del parametro α e possibile fattorizzare la matrice A;
ii) fattorizzarla per il valore di α = 1;
iii) calcolare il determinante di A con il valore di α = 1;
iv) calcolare K∞(A) con il valore di α = 1.
Svolgimento:
i) Per il teorema di fattorizzazione, la matrice A e fattorizzabile se i determinanti dei minoriprincipali di testa di una matrice A ∈ IRn × IRn, Ak con k = 1, 2, ...n − 1 sono diversi da zero,ovvero, in questo caso deve essere
6
det(A1) = α = 0; det(A2) =3α2 − 1 = 0 ; quindi deve essere α = 0 e α = 2
3
ii) Poniamo α = 1
12 1 0 1 0 01 3 −2 0 1 00 −2 0 0 0 1
−→12 1 0 1 0 00 1 −2 −2 1 00 −2 0 0 0 1
−→12 1 0 1 0 00 1 −2 −2 1 00 0 −4 −4 2 1
Quindi, considerando che la matrice L e costituita dai moltiplicatori e cioe
L =
1 0 0m21 1 0m31 m32 1
abbiamo
L =
1 0 02 1 00 −2 1
U =
12 1 00 1 −20 0 −4
iii) det(A) = det(L)× det(U) = 1
∏3i=1 uii = −2
iv) A−1 =
2 0 10 0 −1
21 −1
2 −14
, K∞(A) = 3× 6 = 18
Esercizio 4: Assegnati la matrice A ed un parametro reale α, con:
A =
α 2 02 6 −40 −4 0
,
si chiede di:i) stabilire per quali valori del parametro α e possibile fattorizzare la matrice A;
ii) fattorizzarla per il valore di α = 2;
iii) calcolare il determinante di A con il valore di α = 2;
iv) calcolare K∞(A) con il valore di α = 2.
Svolgimento:
i) Per il teorema di fattorizzazione tutti i minori principali di testa della matrice devono averedeterminante diverso da zero fino all’ ordine 2, quindi i valori di α che consentono la fattoriz-zazione sonoα = 0 e 6α− 4 = 0; ovvero α = 0 e α = 2
3 ,
ii) Poniamo α = 2
2 2 0 1 0 02 6 −4 0 1 00 −4 0 0 0 1
−→2 2 0 1 0 00 4 −4 −1 1 00 −4 0 0 0 1
−→2 2 0 1 0 00 4 −4 −1 1 00 0 −4 −1 1 1
L =
1 0 01 1 00 −1 1
U =
2 2 00 4 −40 0 −4
7
iii) Per il teorema di Binet
det(A) = det(L) det(U) = 1×3∏
i=1
uii
e quindi det(A) = −32
iv) Per il calcolo della matrice inversa e del numero di condizionamento si veda, ad esempio l’esercizio n.1.
In questo caso abbiamo A−1 =
12 0 10 0 −1
414 −1
4 −14
K∞(A) = 12× 34 = 9
Esercizio 5: Assegnata la matrice 4 4 60 0 2−4 0 0
i) se ne determini l’ inversa ed il determinante (utilizzando il metodo di Gauss con pivot senecessario);
ii) si calcoli il numero di condizionamento in norma 1 della matrice di cui sopra.
Svolgimento:
Dobbiamo calcolare la matrice A−1 e la sua norma 1. Impostiamo i tre sistemi con i vettori deitermini noti uguali ai primi tre vettori canonici ed applichiamo il metodo di Gauss per risolverei sistemi con tecnica di pivot parziale al secondo passo.
A =
4 4 60 0 2−4 0 0
4 4 6 1 0 00 0 2 0 1 0−4 0 0 0 0 1
−→4 4 6 1 0 00 0 2 0 1 00 4 6 1 0 1
con il pivot parziale−→4 4 6 1 0 00 4 6 1 0 10 0 2 0 1 0
Risolvendo i tre sistemi otteniamo le colonne della matrice inversa A−1 =
0 0 −14
14 −3
414
0 12 0
.Si ricorda che in presenza di pivot parziale/totale il determinante della matrice cambia segnoper ogni scambio di righe/colonne effettuato. Quindi
det(A) = (−1)1 × 4× 4× 2 = −32
e
K1(A) = 8× 5
4= 10
Esercizio 6: Assegnati la matrice A ed un parametro reale α, con: α 2 02 6 −40 −4 0
8
si chiede di:i) stabilire per quali valori del parametro α e possibile fattorizzare la matrice A;
ii) fattorizzarla per il valore di α = 2;
iii) calcolare il determinante di A con il valore di α = 2;
iv) calcolare K∞(A) con il valore di α = 2.
Svolgimento:
i) Per il teorema di fattorizzazione tutti i minori principali di testa della matrice devono averedeterminante diverso da zero fino all’ ordine 2, quindi i valori di α che consentono la fattoriz-zazione sono α = 0 e 6α− 4 = 0, ovvero α = 0 e α = 2
3
ii) Poniamo α = 2:
2 2 0 1 0 02 6 −4 0 1 00 −4 0 0 0 1
−→2 2 0 1 0 00 4 −4 −1 1 00 −4 0 0 0 1
−→2 2 0 1 0 00 4 −4 −1 1 00 0 4 −1 1 1
U =
2 2 00 4 −40 0 4
L =
1 0 01 1 00 −1 1
iii) Per il teorema di Binet
det(A) = det(L) det(U) = 1×3∏
i=1
uii
e quindi det(A) = 2× 4× 4 = 32
iv) Per il calcolo della matrice inversa e del numero di condizionamento si veda ad esempioesercizio n.1.In questo caso abbiamo
A−1 =
12 0 1
40 0 −1
414 −1
4 −14
, K∞(A) = 12× 3
4= 9
Esercizio 7: Assegnato il sistema lineare −2 0 10 1 1−3 0 −1
x1x2x3
=
−10−4
,
i) se ne determini la soluzione utilizzando il metodo di Gauss con la variante del pivoting totale
ii) si calcoli il determinante della matrice dei coefficienti.
Svolgimento:
Applichiamo il metodo di Gauss con pivot totale ed otteniamo:
−2 0 1 −10 1 1 0−3 0 −1 −4
con il pivot totale−→−3 0 −1 −40 1 1 0−2 0 1 −1
−→−3 0 −1 −40 1 1 00 0 5
353
9
La soluzione del sistema e x3 = 1, x2 = −1, x1 = 1
Ricordando uno scambio di riga al primo passo di Gauss abbiamo det(A) = (−1)1×(−3)× 53 = 5
Esercizio 8: Assegnata la matrice A ed il vettore b
A =
1 −1 02 0 10 −1 0
b =
03−1
i) fattorizzare la matrice A;
ii) calcolare il determinante della matrice A;
iii) risolvere il sistema Ax = b con il metodo di Gauss con pivot parziale.
Svolgimento:
i)1 −1 02 0 10 −1 0
−→1 −1 00 2 10 −1 0
−→1 −1 00 2 10 0 1
2
U =
1 −1 00 2 10 0 1
2
, L =
1 0 02 1 00 −1
2 1
ii) det(A) = 1× 2× 1
2 = 1
iii)
1 −1 0 02 0 1 30 −1 0 −1
con il pivot parziale−→2 0 1 31 −1 0 00 −1 0 −1
−→2 0 1 30 −1 −1
2 −32
0 −1 0 −1−→
2 0 1 30 −1 −1
2 −32
0 0 12
12
x =
111
Esercizio 9: Assegnato il sistema lineare −2 0 1
0 1 1−3 0 −1
x1x2x3
=
−10−4
,
se ne determini la soluzione utilizzando il metodo di Gauss con la variante del pivoting totale.Si calcoli quindi il determinante della matrice dei coefficienti.
Svolgimento:
Applichiamo il metodo di Gauss con pivot totale ed otteniamo:
−2 0 1 −10 1 1 0−3 0 −1 −4
con il pivot totale−→−3 0 −1 −40 1 1 0−2 0 1 −1
−→−3 0 −1 −40 1 1 00 0 5
353
10
La soluzione del sistema e x3 = 1, x2 = −1, x1 = 1.Ricordando uno scambio di riga al primo passo di Gauss abbiamo det(A) = (−1)1×(−3)× 5
3 = 5
Esercizio 10: Assegnata la matrice A −2 0 10 1 1−3 0 −1
se ne determini il numero di condizionamento K∞(A) = ∥A∥∞ · ∥A−1∥∞. Si calcoli l’ inversacon il metodo di Gauss. Si discuta il condizionamento ottenuto.
Svolgimento:
Per la spiegazione si veda, ad esempio esercizio n.1.
−2 0 1 1 0 00 1 1 0 1 0−3 0 −1 0 0 1
−→−2 0 1 1 0 00 1 1 0 1 00 0 −5
2 −32 0 1
A−1 =
−15 0 −1
5−3
5 1 25
35 0 −2
5
∥A∥∞ = 4∥A−1∥∞ = 2K∞(A) = 4× 2 = 8
Esercizio 11: Assegnato il sistema lineare 1 1 10 1 03 −1 1
x1x2x3
=
311
i) se ne determini la soluzione utilizzando il metodo di Gauss con la tecnica del pivoting parziale
ii) si stabilisca se la matrice dei coefficienti e fattorizzabile e se ne determini quindi la fattoriz-zazione LR.
Svolgimento:
i) Applichiamo il metodo di Gauss che serve per ottenere la fattorizzazione e la soluzione delsistema lineare.
1 1 1 30 1 0 13 −1 1 1
con il pivot parziale−→3 −1 1 10 1 0 11 1 1 3
−→3 −1 1 10 1 0 10 4
323
83
con il pivot parziale−→
3 −1 1 10 4
323
83
0 1 0 1−→
3 −1 1 10 4
323
83
0 0 −12 −1
11
La soluzione ex3 = 2, x2 = 1, x1 = 0
ii) Fattorizzazione:1 1 10 1 03 −1 1
−→1 1 10 1 00 −4 −2
−→1 1 10 1 00 0 −2
L =
1 0 00 1 03 −4 1
, U =
1 1 10 1 00 0 −2
Esercizio 12: Data la matrice
A =
−1 1 −11 −2 00 1 0
se ne determini K∞(A).
Svolgimento:
Applichiamo il metodo di Gauss. Per la spiegazione si veda,ad esempio esercizio n.1.
−1 1 −1 1 0 01 −2 0 0 1 00 1 0 0 0 1
−→−1 1 −1 1 0 00 −1 −1 1 1 00 1 0 0 0 1
−→−1 1 −1 1 0 00 −1 −1 1 1 00 0 −1 1 1 1
A−1 =
0 1 20 0 1−1 −1 −1
K∞(A) = 3× 3 = 9
Esercizio 13: Dato il sistema lineare −1 1 −11 −2 00 1 0
x1x2x3
=
−210
se ne determini la soluzione utilizzando il metodo di Gauss con pivoting totale.
Svolgimento:
Applichiamo il metodo di Gauss:
−1 1 −1 −21 −2 0 10 1 0 0
con il pivot totale−→1 −1 −1 −2−2 1 0 11 0 0 0
con il pivot totale−→−2 1 0 11 −1 −1 −21 0 0 0
−→
−2 1 0 10 1
2 −1 −32
0 12 0 1
2
con il pivot totale−→−2 1 0 10 −1 −1
2 −32
0 0 12
12
12
La soluzione del sistema ottenuto con gli scambi del pivot totale e
y3 = 1, y2 = 1, y1 = 0.
Dovendo necessariamente riordinare le incognite, la soluzione del sistema iniziale e
x2 = y1, x3 = y2, x1 = y3 −→ x = (1, 0, 1)T .
Esercizio 14: Assegnata la matrice A ed il vettore f
A =
2 k 0−1 3 10 1 4
, f =
264101
si chiede di:
i) determinare i valori di k per cui la matrice non e fattorizzabile;
ii) se per k = −1 la matrice e fattorizzabile, fattorizzarla con il metodo di Gauss;
iii) calcolare det(A); iv) calcolare la soluzione del sistema Ax = f .
Svolgimento:
Per le spiegazioni si veda ad esempio esercizio n.6.i) Per 6 + k = 0, ovvero k = −6, e fattorizzabile.
ii) k = −1
2 −1 0 1−1 3 1 00 1 4 1
−→2 −1 0 10 5
2 1 12
0 1 4 1−→
2 −1 0 10 5
2 1 12
0 0 185
45
L =
1 0 0−1
2 1 00 2
5 1
, U =
2 −1 00 5
2 10 0 18
5
iii) det(A) = 2× 5
2 × 185 = 18.
iv) Soluzione del sistema
x3 =2
9, x2 =
1
9, x1 =
5
9.
13
Sistemi lineari: Metodi Iterativi(Metodi di Jacobi e Gauss-Seidel)
Esercizio 1: Dato il sistema 4x1 + 3x2 − x3 = 1−2x1 − 4x2 + 5x3 = 2x1 + 2x2 + 6 x3 = 3
i) si scriva la matrice di iterazione PGS del metodo di Gauss-Seidel e la condizione che assicurala convergenza delle iterate
ii) si parli della scelta del vettore iniziale
iii) sapendo che gli autovalori di PGS sono {0, 0.3750, −0.4167} si chiede di stabilire se e pos-sibile applicare il metodo di Gauss-Seidel
iv) se la risposta alla domanda precedente e affermativa, eseguire due iterazioni del metodo.
Svolgimento:
i) Sia A una matrice invertibile. Posto A = (aij) ∈ IRn×n, aii = 0 ∀i, b = (b1, b2, . . . , bn)T , il
metodo di Gauss-Siedel e un procedimento iterativo che genera una successione di iterate{x(k)
}che in caso di convergenza approssimano la soluzione del sistema lineare a partire da un vettoreiniziale x(0) ∈ IRn scelto in modo arbitrario.Le iterazioni del metodo di Gauss-Seidel possono essere espresse in forma matriciale introducendotre matrici L, D, U tali che A = L+D + U :
L =
0 0 · · · · · · 0a21 0 · · · · · · 0a31 a32 0 · · · 0...
......
an1 an2 . . . an−1n 0
, D =
a11 0 0 · · · 00 a22 0 · · · 00 0 a33 0...
.... . .
...0 0 0 ann
,
U =
0 a12 a13 · · · · · · a1n0 0 a23 · · · · · · a2n...
... 0 a34 · · · a3n...
0 0 . . . 0
,
Si chiama matrice di iterazione del metodo di Gauss-Seidel la matrice PGS = −(L+D)−1U ede facile verificare che, dato x(0) ∈ IRn, x(k+1) = PGSx
(k) + (L+D)−1b per k ≥ 0.
Il metodo di Gauss-Seidel e convergente alla soluzione x∗ del sistema lineare se e solo se
ρ(PGS) = max1≤i≤n
|λi(PGS)| < 1
cioe il piu grande autovalore in modulo di PGS e minore di 1. La convergenza del metodo nondipende dalla scelta del vettore iniziale.
14
La matrice di iterazione del metodo di Gauss-Seidel e in questo caso
PGS = −(L+D)−1U dove L =
0 0 0−2 0 01 2 0
, D =
4 0 00 −4 00 0 6
, U =
0 3 −10 0 50 0 0
cioe
PGS = −
14 0 0−1
8 −14 0
0 − 112
16
0 3 −10 0 50 0 0
=
0 −34
14
0 38
98
0 0 512
Il metodo di Gauss-Siedel e convergente se e solo se
ρ(PGS) = max1≤i≤n
|λi(PGS)| < 1
e la convergenza non dipende dalla scelta del vettore iniziale.
ii) Dato che ρ(PGS) = 0.4167, il metodo di Gauss-Seidel e convergente.
iii) Prendiamo
x0 =
000
⇒
x(1)1 = 1−3×0+1×0
4 = 14
x(1)2 =
2+2× 14−5×0
−4 = −58
x(1)3 =
3−1× 14+2× 5
86 = 2
3
, x(1) =
14
−5823
Il secondo passo del metodo di Gauss-Seidel e il seguente
x(2)1 =
1+3× 58+1× 2
34 = 85
96
x(2)2 =
2+2× 8596
−5× 23
−4 = − 764
x(2)3 =
3−1× 8596
+2× 764
6 = 718
x(2) =
8596− 7
64718
Esercizio 2: Dato il sistema 2x1 − 6x2 + 4x3 = 1−4x1 + 7x2 + x3 = 28x1 − 10 x3 = 3
i) si scriva la matrice di iterazione PJ
ii) si dica se il metodo di Jacobi e convergente
iii) in caso di risposta affermativa relativamente al punto precedente eseguire due iterazioni delmetodo di Jacobi.
Svolgimento:
i) Sia A = (aij) ∈ IRn×n una matrice invertibile, b = (b1, b2, . . . , bn)T .
Si chiama matrice di iterazione del metodo di Jacobi la matrice PJ = −D−1(L+ U). Il metododi Jacobi e convergente se e solo se
ρ(PJ) = max1≤i≤n
|λi(PJ)| < 1
15
cioe il piu grande autovalore in modulo di PJ e minore di 1. La convergenza del metodo nondipende dalla scelta del vettore iniziale.
i) La matrice di iterazione del metodo di Jacobi e
PJ = −
0 3 −247 0 −1
745 0 0
ii)
ρ(PJ) = max1≤i≤n
|λi(PJ)| ∼= 0.7542 < 1
e quindi il metodo e convergente
iii) Fissato in modo arbitrario il vettore iniziale x(0) ∈ IR3, l’ iterata (k + 1)-esima e tale chex(k+1) = PJx
(k) +D−1b, k ≥ 0, ovvero
x(k+1) =
x(k+1)1
x(k+1)2
x(k+1)3
dove
x(k+1)1 =
b1−a12 x(k)2 −a13 x
(k)3
a11
x(k+1)2 =
b2−a21 x(k)1 −a23 x
(k)3
a22
x(k+1)3 =
b3−a31 x(k)1 −a32 x
(k)2
a33
Ponendo ad esempio
x0 =
000
⇒
x(1)1 = 1+6×0−4×0
2 = 12
x(1)2 = 2+4×0−1×0
7 = 27
x(1)3 = 3−8×0
−10 = − 310
, x(1) =
1227
− 310
Il secondo passo del metodo e :
x(2)1 =
1+6× 27+4× 3
102 = 137
70
x(2)2 =
2+4× 12+1× 3
107 = 43
70
x(2)3 =
3−8× 12
−10 = 110
, x(2) =
137704370110
Esercizio 3: Dato il sistema
2x1 + 4x2 − 6x3 = 1x1 + 5x2 + 3x3 = 3x1 + 3x2 + 2 x3 = 3
i) sapendo che gli autovalori della matrice di iterazione del metodo di Gauss-Seidel sono {0, 0.35+0.691 i, 0.35− 0.691 i}, stabilire se il metodo di Gauss-Siedel e convergente
ii) in caso di risposta affermativa relativamente al punto precedente eseguire un’ iterazione delmetodo di Gauss-Seidel
Svolgimento:
i) La matrice di iterazione e
PGS = −(L+D)−1U dove L =
0 0 01 0 01 3 0
, D =
2 0 00 5 00 0 2
, U =
0 4 −60 0 30 0 0
16
Quindi
PGS = −
12 0 0
− 110
15 0
− 110 − 3
1012
0 4 −60 0 30 0 0
=
0 −2 30 2
535
0 25
310
Dato che ρ(PGS) = 0.7746, il metodo di Gauss-Seidel e convergente.
ii) Dato che il vettore iniziale si puo scegliere in modo arbitrario prendiamo, ad esempio,
x0 =
123
⇒
x(1)1 = 1−4×1+6×3
2 = 152
x(1)2 =
3−1× 152−3∗3
5 = −2710
x(1)3 =
3−1× 152+3× 27
102 = 9
5
, x(1) =
152
−271095
17
Equazioni Non LineariEsercizio 1: Assegnata l’ equazione f(x) = 0, con
f(x) = 2x2 + 4x− 6
si chiede di:
i) localizzare le radici dell’ equazione;
ii) determinare un intervallo che contiene la radice α = 1 in cui sono verificate le condizioni diconvergenza del metodo di Newton;
iii) eseguire due passi del metodo di Newton nell’ intervallo di cui al punto ii).
Svolgimento:
i) Per localizzare le radici bisogna trovare intervalli [a, b] tali che f(a)f(b) < 0 valutando il segnodella funzione. In questo caso due possibili intervalli possono essere [−4,−2] e [0, 2].
ii) Nell’ intervallo [0, 2], con 2 come estremo di Fourier, sono verificate le condizioni sufficientiper la convergenza di Newton, cioef e derivabile due volte con continuita in un intervallo [a, b] e soddisfa le seguenti condizioni in[a, b]:
• il segno di f ′(x) e costante per x ∈ [a, b];
• il segno di f ′′(x) e costante per x ∈ [a, b];
• l’ approssimazione iniziale x0 e tale che f(x0)f′′(x0) > 0 (estremo di Fourier)
iii) Applicando la formula di Newton otteniamo:
x1 = 2− 10
12=
7
6= 1.17,
x2 = 1.0067
Esercizio 2: Verificato che il valore π puo essere calcolato valutando la radice dell’ equazionef(x) = 0, con f(x) = sin(x), compresa nell’ intervallo [3, 3.3], si chiede di:
i) stabilire teoricamente se per calcolare la radice compresa nell’ intervallo [3, 3.3] dell’equazionef(x) = 0 suddetta puo essere utilizzato il metodo di Newton;
ii) in ogni caso, verificare sperimentalmente la risposta di cui al punto precedente, scegliendocome innesco il valore x0 = 3, eseguendo due passi del metodo ed ottenendo x1 e x2. Si consid-erino 4 cifre dopo il punto decimale;
iii) stimare infine l’ errore che si commette calcolando x1 in un calcolatore che lavora in baseβ = 10 con 3 cifre per la mantissa e la caratteristica compresa tra −3 e 4 e che opera pertroncamento.
Svolgimento:
i) Dato che sin(3) = 0.1411, sin(3.3) = −0.1577, π = 3.1416 e sin(π) = 0, possiamo concludere
18
che π e una radice contenuta nell’ intervallo [3, 3.3].
In questo intervallo non e verificata la condizione sufficiente di segno costante della derivataseconda (vedi esercizio n.1).
ii) Applicando la formula di Newton
xk+1 = xk −f(xk)
f ′(xk)
a partire da x0 = 3 otteniamo x1 = 3.1425, x2 = 3.1416
iii) Indichiamo con x il floating di un numero x. In aritmetica finita scriviamo la formula diNewton nella forma seguente:
xk+1 = xk −f(xk)
f ′(xk)
Quindi operando con m = 3 e troncamento otteniamo:
x1 = 0.300 101 − 0.141 100
−0.990 100
ovverox1 = 0.300 101 + 0.142 100
ex1 = 0.300 101 + 0.014 101 = 0.314 101
con un errore relativo|x1 − x1|/|x1| = 8.103 . . . 10−4
Esercizio 3: Verificato che il valore π/2 puo essere calcolato valutandolo come la radice com-presa nell’ intervallo [1.5, 1.8], dell’ equazione f(x) = 0, con f(x) = cos(x), si chiede di:
i) stabilire teoricamente se per calcolare la radice compresa nell’ intervallo [1.5, 1.8] dell’ equazionef(x) = 0 suddetta puo essere utilizzato il metodo di Newton;
ii) in ogni caso, verificare sperimentalmente la risposta di cui al punto precedente, scegliendocome innesco il valore x0 = 1.5, eseguendo due passi del metodo ed ottenendo x1 e x2. Siconsiderino 4 cifre dopo il punto decimale;
iii) stimare infine l’ errore che si commette calcolando x1 in un calcolatore che lavora in baseβ = 10 con 3 cifre per la mantissa e la caratteristica compresa tra −3 e 4 e che opera pertroncamento.
Svolgimento:
i) Dato che cos(1.5) = 0.0707, cos(1.8) = −0.2272, π/2 = 1.5708 e cos(pi/2) = 0, possiamoconcludere che π/2 e una radice contenuto nell’ intervallo [1.5, 1.8].In questo intervallo non e verificata la condizione sufficiente di segno costante della derivataseconda (vedi esercizio n.1).
ii) Applicando la formula di Newton
xk+1 = xk −f(xk)
f ′(xk)
19
a partire da x0 = 1.5 otteniamo x1 = 1.5709 . . . , x2 = 1.5708 . . ..
iii) Indichiamo con x il floating di un numero x. In aritmetica finita scriviamo la formula diNewton nella forma seguente:
xk+1 = xk −f(xk)
f ′(xk).
Quindi operando con m = 3 e troncamento otteniamo:
x1 = 0.150 101 − 0.707 10−1
−0.997 10
ovverox1 = 0.150 101 + 0.709 10−1
ex1 = 0.150 101 + 0.007 101 = 0.157 101
con un errore relativo|x1 − x1|/|x1| = 5.7292 . . . 10−4
Esercizio 4: Sia assegnata l’ equazione f(x) = 0, con
f(x) = x2 + x− 6,
i) determinare opportuni intervalli in cui il metodo di Newton converge alle radici di f(x) = 0,x = −3 e x = 2
ii) eseguire una iterazione del metodo per approssimare ciascuna delle radici.
Svolgimento:
i)La forma della successione {xk}, xk ∈ IR, generata dal metodo di Newton applicato al problemaf(x) = 0 e:
scelta l’approssimazione iniziale x0, xk+1 = xk −f(xk)
f ′(xk), f ′(xk) = 0.
ii) f(x) = x2 + x− 6
f ′(x) = 2x+ 1, x > −12
f ′′(x) = 2 > 0 sempre.Dal momento che f ′′(x) = 2 > 0 l’ estremo di Fourier e il valore per cui la f(x) e positiva.
Esercizio 5: Assegnata l’ equazione f(x) = 0, con
f(x) = x2 + 2x− 3
si chiede di:i) localizzare le radici dell’equazione;
ii) determinare un intervallo che contiene la radice α = 1 in cui sono verificate le condizioni diconvergenza del metodo di Newton;
20
iii) eseguire due passi del metodo di Newton nell’ intervallo di cui al punto ii).
Svolgimento:
i) Le radici possono essere localizzate negli intervalli [−4,−2] e [0, 2].
ii) Nell’ intervallo [0, 2] sono verificate le condizioni sufficienti (si veda Esercizio 1) per la con-vergenza del metodo di Newton ed il valore x0 = 2 puo essere preso come estremo di Fourier.
Otteniamo quindi
iii)
x1 = 2− 5
6=
7
6= 1.166
x2 = 1.0064
Esercizio 6: Data la funzionef(x) = x3 − x+ 2
i) si localizzi la radice negativa e si eseguano due iterazioni del metodo di bisezione;
ii) stabilire quanti passi sono necessari per localizzare lo zero in un intervallo di ampiezza 10−3.
Svolgimento:
i) Localizzare una radice negativa di f consiste nel determinare un intervallo [a, b] contenenteα < 0. Osservando che f(−1) > 0 e f(−2) < 0, possiamo concludere che una radice negativaappartiene all’ intervallo [−2, −1].
Noto [ak−1, bk−1], l’ iterazione k-esima del metodo di bisezione ha la forma:
• Calcola il punto medio xk−1 di [ak−1, bk−1]: xk−1 =ak−1+bk−1
2 ;
• Se f(ak−1) f(xk−1) < 0, poni [ak, bk] = [ak−1, xk−1];
• Se f(ak−1) f(xk−1) > 0, poni [ak, bk] = [xk−1, bk−1];
• Se f(ak−1) f(xk−1) = 0, allora α = xk−1.
Poniamo [a0, b0] = [−2, −1]. Al primo passo abbiamo
x0 = −3
2, f(−3
2) > 0 ⇒ f(−2)f(−3
2) < 0, [a1, b1] = [−2, −3
2]
La seconda iterazione e la seguente
x1 = −7
4, f(−7
4) < 0 ⇒ f(−2)f(−7
4) > 0, [a2, b2] = [−7
4, −3
2]
ii) Per determinare il numero k dei passi necessari per localizzare lo zero in un intervallo diampiezza 10−3, poniamo |bk − ak| ≤ 10−3. Quindi
|bk − ak| =|b0 − a0|
2k≤ 10−3, ⇒ k ≥ log2
|b0 − a0|10−3
= 9.96
Pertanto sono necessarie 10 iterazioni.
21
Esercizio 7: Data la funzionef(x) = log(x)− 5 + x,
si localizzi la radice e individui un punto x0 che soddisfa le condizioni sufficienti per la conver-genza del metodo di Newton. Quindi si esegua una iterazione del metodo di Newton.
Svolgimento:
Si noti che f(3) < 0 e f(4) > 0. Allora una radice di f appartiene all’ intervallo [3, 4].Le condizioni sufficienti per la convergenza del metodo di Newton possono essere applicate inquesto caso perche:
• f ∈ C2([3, 4]),• f ′(x) = 1
x + 1 > 0, ∀x ∈ [3, 4] ⇒ il segno di f ′(x) e costante per x ∈ [3, 4];• f ′′(x) = − 1
x2 < 0, ∀x ∈ [3, 4] ⇒ il segno di f ′′(x) e costante per x ∈ [3, 4].
Una approssimazione iniziale che assicura la convergenza della successione {xk} e
x0 = 3 dato che f(x0)f′′(x0) > 0
Posto x0 = 3, si ha
x1 = x0 −f(x0)
f ′(x0)= 3− log(3)− 5 + 3
13 + 1
≃ 3.6760
Per calcolare la seconda iterata si pone
x2 = x1 −f(x1)
f ′(x1)= x1 −
log(x1)− 5 + x11x1
+ 1≃ 3.6934
Esercizio 8: Data la funzionef(x) = 10− ex − ex
2,
si localizzi la radice negativa e si eseguano due iterazioni del metodo di bisezione.
Svolgimento:
Localizzare una radice negativa di f consiste nel determinare un intervallo [a, b] contenenteα < 0. Osservando che f(−2) < 0 e f(0) > 0, possiamo concludere che una radice negativaappartiene all’ intervallo [−2, 0].Poniamo [a0, b0] = [−2, 0]. Al primo passo abbiamo
x0 = −1, f(−1) > 0 ⇒ f(−2)f(−1) < 0, [a1, b1] = [−2, −1]
La seconda iterazione e la seguente
x1 = −3
2, f(−3
2) > 0 ⇒ f(−2)f(−3
2) < 0, [a2, b2] = [−2, −3
2]
(vedi esercizio n.6)
22
Interpolazione e ApprossimazioneEsercizio 1: Assegnate le coppie di valori {xi, fi}2i=0, con x0 = −2, x1 = −1, x2 = 1 ef0 = 2, f1 = 1, f2 = −1si chiede di costruire:
i) la retta che meglio approssima, nel senso dei minimi quadrati, i dati assegnati;
ii) calcolare l’ errore dell’approssimazione.
Svolgimento:
i) Dati m punti {(xi, fi)}mi=1, per determinare il polinomio P1(x) = a0+a1x di migliore approssi-mazione nel senso dei minimi quadrati si calcolano i coefficienti a0, a1 in modo da minimizzareil quadrato della norma 2 del vettore errore e cioe ponendo a zero il gradiente della funzioneottenendo il seguente sistema lineare:( ∑m
i=1 1∑m
i=1 xi∑mi=1 xi
∑mi=1 x
2i
)(a0a1
)=
( ∑mi=1 fi∑m
i=1 xifi
)I coefficienti del polinomio di migliore approssimazione risolvono il sistema:{
3a0 − 2a1 = 22a0 + 6a1 = −6
Otteniamo quindia0 = 0, a1 = −1, P1(x) = −x
ii) La norma del vettore errore e
E =√
(2− 2)2 + (1− 1)2 + (−1 + 1)2 = 0
Il risultato e corretto dal momento che in questo caso la migliore approssimazione di primo gradocoincide con il polinomio interpolante.Esercizio 2: Considerato il seguente insieme di dati (xi, fi), i = 0, . . . , 3, x = (−2,−1, 0, 1) e
f = (1, 0,−1, 0), si costruisca la parabola di migliore approssimazione ai minimi quadrati risol-vendo il sistema lineare con il metodo di Gauss. Si calcoli l’errore nel punto x = 0.
Svolgimento:
Dati m punti {(xi, fi)}mi=1, per determinare il polinomio P2(x) = a0 + a1x + a2x2 di migliore
approssimazione nel senso dei minimi quadrati si calcolano i coefficienti a0, a1, a2 in modo daminimizzare il quadrato della norma 2 del vettore errore e cioe ponendo a zero il gradiente dellafunzione ed ottenendo il seguente sistema lineare: ∑m
i=1 1∑m
i=1 xi∑m
i=1 x2i∑m
i=1 xi∑m
i=1 x2i
∑mi=1 x
3i∑m
i=1 x2i
∑mi=1 x
3i
∑mi=1 x
4i
a0a1a2
In questo caso il sistema lineare da risolvere con il metodo di Gauss e
A =
4 −2 6−2 6 −86 −8 18
, b =
0−24
23
Quindi abbiamo
4 −2 6 0−2 6 −8 −26 −8 18 4
−→4 −2 6 00 5 −5 −20 −5 9 4
−→4 −2 6 00 5 −5 −20 0 4 2
a2 =12 , a1 =
110 , a0 = − 7
10 .
La parabola di migliore approssimazione e
P2(x) = − 7
10+
1
10x+
1
2x2.
L’ errore nel punto x = 0 e
−1− P2(0) =−3
10.
Esercizio 3: Assegnati i punti {(xi, fi)}5i=0 con x = (−3, −2, −1, 0, 1, 2) ed f = (−2, 0, 0, 0, 0, 2)si determini:
i) il polinomio interpolante nella forma di Newton;
ii) il polinomio interpolante nella forma di Lagrange (e sufficiente impostarlo).
Svolgimento:
i) Il polinomio interpolante nella forma di Newton e definito come segue:
Nn(x) = A0 +A1ω1(x) +A2ω2(x) + . . .+Anωn(x), (1)
doveAj = f [x0, . . . , xj ] , per j = 0, 1, . . . , n (2)
eωj(x) = Πj−1
i=0 (x− xi) , per j = 1, 2, . . . , n. (3)
Quindi per il calcolo del polinomio interpolante nella forma di Newton si costruisce la tavoladella differenze divise:
xi fi−3 −2 ↘
2 ↘−2 0 ↗
↘ −1 ↘
0 ↗↘
13 ↘
1 0 ↗↘ 0 ↗
↘− 1
34 = − 1
12 ↘
0 ↗↘ 0 ↗
↘165 = 1
30
0 0 ↗↘ 0 ↗
↘134 = 1
12↗
0 ↗↘
13
↗
1 0 ↗↘ 1 ↗
2 ↗
2 2 ↗
24
ottenendo
P5(x) = −2 + 2(x+ 3)− (x+ 3)(x+ 2) +1
3(x+ 3)(x+ 2)(x+ 1)− 1
12(x+ 3)(x+ 2)(x+ 1)x(x− 1) +
1
30(x+ 3)(x+ 2)(x+ 1)x(x− 1)(x− 2)
ii) Il polinomio interpolante nella forma di Lagrange e definito come segue:
P (x) = l0(x)f0 + l1(x)f1 + . . .+ ln(x)fn
con
li(x) =n∏
k=0k =i
x− xkxi − xk
=(x− x1)(x− x2)(x− xi−1)(x− xi+1)(x− xn)
(xi − x1)(xi − x2)(xi − xi−1)(xi − xi+1)(xi − xn), i = 0, . . . , n
Nel caso particolare, dato che solo i valori f0 e f5 sono diversi da zero, basta calcolare le due basi
l0(x) =(x+ 2)(x+ 1)(x− 1)(x− 2)
(−3 + 2)(−3 + 1)(−3− 1)(−3− 2)
l5(x) =(x+ 3)(x+ 2)(x+ 1)(x− 1)
(2 + 3)(2 + 2)(2 + 1)(2− 1)
iii). Esercizio 4: Assegnate le coppie di valori {xi, fi}3i=0, con x0 = −2, x1 = −1, x3 = 2, x4 =
3 e f0 = −2, f1 = −1, f3 = 2, f4 = 4si chiede di costruire:
i) il polinomio p(x) che interpola le coppie di valori assegnati;
ii) il polinomio p(x) che interpola oltre alle coppie di valori assegnati anche il punto (0, 0).
Svolgimento:
i) Il polinomio interpolante n+ 1 punti {(xi, fi)}ni=0, e il polinomio P (x) di grado al piu n taleche P (xi) = fi, i = 1, ..., n. Il polinomio interpolante esiste ed e unico quando i nodi xi sonodistinti. Tenendo in mente anche la domanda successiva conviene utilizzare la formulazione diNewton. Costruiamo quindi la tavola delle differenze divise considerando tutte le coppie di puntiassegnati:
xi fi−2 −2 ↘
−1+2−1+2 = 1 ↘
−1 −1 ↗↘ 0 ↘
2+12+1 = 1 ↗
↘14 · 1
5 = 120 ↘
2 2 ↗↘
2−13+1 = 1
4↗↘
112
− 120
0+2 = 160
4−23−2 = 2 ↗
↘13− 1
40+1 = 1
12↗
3 4 ↗↘
43−2
0−2 = 13
↗
0−40−3 = 4
3↗
0 0 ↗
25
dove e stato aggiunto anche il punto (0, 0) con le relative differenze divise.
P3(x) = −2 + (x+ 2) +1
20(x2 − 4)(x+ 1)
ii) P4(x) = P3(x) +160(x− 3)(x− 2)(x+ 1)(x+ 2)
Esercizio 5: Considerato il seguente insieme di dati (xi, fi), i = 0, . . . , 3, x = (−1, 0, 1, 3) ef = (0, 1, 2, 3), si costruisca il polinomio interpolante tali dati. Si calcoli quindi l’ errore nelpunto x = 2.
Svolgimento:
Anche se non espressamente richiesto, conviene utilizzare la formulazione di Newton per calco-lare il polinomio interpolante dal momento che successivamente viene anche richiesto di calcolarel’ errore in un punto. Scriviamo quindi la tavola della differenze divise:
xi fi−1 0 ↘
1−00+1 = 1 ↘
0 1 ↗↘ 0 ↘
2−11−0 = 1 ↗
↘− 1
6−0
3+1 = − 124
1 2 ↗↘
12−1
3−0 = −16
↗
3−23−1 = 1
2↗
3 3 ↗
L’ espressione del polinomio interpolante risulta essere
P3(x) = 0 + (x+ 1)− 1
24(x+ 1)x(x− 1) = 1 +
25
24x− 1
24x3
Per dare una stima dell’ errore nel punto x = 2, punto diverso dai punti fondamentali dell’interpolazione, possiamo utilizzare la formulazione di Newton. A tale scopo occorre approssi-mare il valore f(x). Ad esempio possiamo approssimarlo con il valore della retta passante per(xi, f(xi)), (xi+1, f(xi+1)), dove x ∈ [xi, xi+1]. L’ espressione di tale retta puo essere determinatamediante la seguente tavola delle differenze divise:
xi fi1 2 ↘
3−23−1 = 1
2
3 3 ↗
ed ottenere l’ approssimazione f(x) = 2 + (x− 1)1
2= 2 +
1
2=
5
2.
Aggiungiamo ora la coppia x = 2, f(x) = 52 nella tavola delle differenze divise:.
26
xi fi−1 0 ↘
1−00+1 = 1 ↘
0 1 ↗↘ 0 ↘
2−11−0 = 1 ↗
↘− 1
6−0
3+1 = − 124 ↘
1 2 ↗↘
12−1
3−0 = −16
↗↘
112
+ 124
2+1 = 124
3−23−1 = 1
2↗↘
162 = 1
12↗
3 3 ↗↘ 0 ↗
52−3
2−3 = 12
↗
2 52
↗
A questo punto siamo in grado di stimare l’ errore in x. Si ricorda che si tratta di una stimapoiche il valore f(x) e stato approssimato.
En(x) = f(x)− Pn(x) = (x− x0)(x− x1) · · · (x− xn)f [x0, x1, . . . , xn, x]
= (2 + 1)(2− 0)(2− 1)(2− 3)1
24= −1
4
Esercizio 6: Assegnati i punti {(xi, fi)}5i=0 con x = (−3, −2, −1, 0, 1, 2) ed f = (−1/2, 0, 0, 0, 0, 1/2)si determini:
i) il polinomio interpolante nella forma di Newton;
ii) il polinomio interpolante nella forma di Lagrange (e sufficiente impostarlo);
Svolgimento:
i) Per il calcolo del polinomio interpolante nella forma di Newton si costruisce la tavola delladifferenze divise:
xi fi−3 −1
2 ↘12 ↘
−2 0 ↗↘ −1
4 ↘
0 ↗↘
112 ↘
−1 0 ↗↘ 0 ↗
↘ − 148 ↘
0 ↗↘ 0 ↗
↘1245 = 1
120
0 0 ↗↘ 0 ↗
↘148
↗
0 ↗↘
112
↗
1 0 ↗↘
14
↗
12
↗
2 12
↗
27
ottenando
P5(x) = −1
2+
1
2(x+ 3)− 1
4(x+ 3)(x+ 2) +
1
12(x+ 3)(x+ 2)(x+ 1)− 1
48(x+ 3)(x+ 2)(x+ 1)x+
1
120(x+ 3)(x+ 2)(x+ 1)x(x− 1)
ii) Per il calcolo del polinomio interpolante nella forma Lagrange e sufficiente calcolare l0(x) el5(x), dato che solo f0 e f5 sono diversi da zero.
l0(x) =(x+ 2)(x+ 1)x(x− 1)(x− 2)
(−3 + 2)(−3 + 1)(−3)(−3− 1)(−3− 2)
l5(x) =(x+ 3)(x+ 2)(x+ 1)x(x− 1)
(2 + 3)(2 + 2)2(2 + 1)(2− 1)
Esercizio 7: Assegnate le coppie di valori {xi, fi}3i=0, con:
x0 = −1, x1 = 0, x2 = 1, x3 = 2, f0 = −1, f1 = 0, f2 = 1, f3 = 8,
si chiede di costruire:
i) il polinomio P (x) che interpola le coppie di valori assegnati;
ii) il polinomio P (x) che interpola le coppie di valori assegnati ed il punto (1/2, 1/8);
iii) verificare la correttezza del polinomio interpolante.Svolgimento:
i)Costruiamo la tabella delle differenze divise
xi fi−1 −1 ↘
0+10+1 = 1 ↘
0 0 ↗↘ 0 ↘
1−01−0 = 1 ↗
↘ 1
1 1 ↗↘ 3 ↗
8−12−1 = 7 ↗
2 8 ↗
P3(x) = −1 + (x+ 1) + 0(x+ 1)x+ (x+ 1)x(x− 1) = x3
ii) Se si aggiunge il punto (1/2, 1/8) il risultato non cambia. Infatti i punti stanno tutti sullacubica
P3(x) = x3
iii) Per verificare la correttezza del risultato dobbiamo controllare se sono verificate tutte lecondizione di interpolazione, ovvero P3(xi) = fi, i = 0, · · · , 3. Infatti abbiamo P3(−1) = −1 =f0;P3(0) = 0 = f1;P3(1) = 1 = f2;P3(2) = 8 = f3.
Esercizio 8: Assegnate le coppie di valori {xi, fi}3i=1, con:
x0 = 0; x1 = 1; x2 = 2;
28
e con:f0 = 1; f1 = 3; f2 = 11
si chiede di:
i) costruire la retta di migliore approssimazione ai minimi quadrati dei dati assegnati;
ii) costruire il polinomio interpolante i dati assegnati.
Svolgimento:
Per le spiegazioni dell’ approssimazione ai minimi quadrati si veda ad esempio esercizio n.1.i)
∑xi = 3,
∑x2i = 5,
∑fi = 15,
∑xifi = 25
Si tratta di risolvere il sistema [3 33 5
] [a0a1
]=
[1525
][1 13 5
] [a0a1
]=
[525
]La soluzione e
a0 = 0, a1 = 5 −→ P1(x) = 5x.
ii) Si usa la formulazione di Newton per calcolare il polinomio interpolante. Costruiamo latavola delle differenze divise:xi fi0 1 ↘
2 ↘1 3 ↗
↘ 3
8 ↗
2 11 ↗
L’ espressione del polinomio interpolante risulta
P2(x) = 1 + 2(x− 0) + 3(x− 0)(x− 1) = 1− x+ 3x2
Esercizio 9: Assegnato l’ insieme dei nodi (−1, 0, 1, 2) si costruisca la spline di grado m = 1
interpolante le coppie (−1, 0), (0, 1), (1, 0), (2, 0). Si risolva il sistema lineare con il metodo diGauss con pivoting parziale.
Svolgimento:
L’ espressione di una funzione spline di primo grado con due nodi interni, 0, 1, e
a0 + a1x+ a2x+ + a3(x− 1)+.
Per essere interpolante deve essere soluzione del sistemaa0 − 11 = 0
a0 = 1a0 + a1 + a2 = 0
a0 + 2a1 + 2a2 + a3 = 0
29
Applichiamo Gauss:
1 −1 0 0 01 0 0 0 11 1 1 0 01 2 2 1 0
−→
1 −1 0 0 01 0 0 0 10 2 1 0 00 3 2 1 0
con il pivot parziale−→
1 −1 0 0 00 3 2 1 00 2 1 0 00 1 0 0 1
−→
1 −1 0 0 00 3 2 1 00 0 −1
3 −23 0
0 0 −23 −1
3 1
con il pivot parziale−→
1 −1 0 0 00 3 2 1 00 0 −2
3 −13 1
0 0 −13 −2
3 0
−→
1 −1 0 0 00 3 2 1 00 0 −2
3 −13 1
0 0 0 −12 −1
2
La soluzione del sistema e a3 = 1, a2 = −2, a1 = 1, a0 = 1.
Quindi l’ espressione della spline e
s(x) = 1 + x− 2x+ + (x− 1)+.
Esercizio 10: Considerato il seguente vettore di nodi y = (−3,−2,−1, 0) si determini la splinedi grado 1 di nodi y interpolante nei nodi i valori f = (0, 1,−1, 0) risolvendo il sistema linearecon il metodo di eliminazione di Gauss.
Svolgimento:
La spline di primo grado con due nodi interni ha l’ espressione
s(x) = a0 + a1x+ a2(x+ 2)+ + a3(x+ 1)+.
Imponendo le condizioni di interpolazione otteniamo il sistema linearea0 − 3a1 = 0a0 − 2a1 = 1
a0 − a1 + a2 = −1a0 + 2a2 + a3 = 0
che risolviamo usando il metodo di Gauss:
1 −3 0 0 01 −2 0 0 11 −1 1 0 −11 0 2 1 0
−→
1 −3 0 0 00 1 0 0 10 2 1 0 −10 3 2 1 0
−→
1 −3 0 0 00 1 0 0 10 0 1 0 −30 0 2 1 3
−→
1 −3 0 0 00 1 0 0 10 0 1 0 −30 0 0 1 3
La soluzione ea0 = 3, a1 = 1, a2 = −3, a3 = 3.
e quindi l’ espressione della spline risulta essere
s(x) = 3 + x− 3(x+ 2)+ + 3(x+ 1)+.
Esercizio 11: Assegnate le coppie di valori {xi, fi}2i=0:
{xi}2i=0 = (−π, 0, π),
30
con fi = f(xi), con f(x) = sin(x), si chiede di:
i) stabilire se e possibile costruire la funzione spline s(x) di grado 1 e nodi [−π, 0, π] che interpolale coppie di valori assegnati;
ii) nel caso in cui la risposta alla domanda precedente sia affermativa, calcolare la spline s(x).
Svolgimento:
i) L’ espressione di una funzione spline di primo grado e con 0 come unico nodo interno e
s(x) = a0 + a1x+ a2(x)+.
I parametri da determinare sono 3 ed abbiamo 3 condizioni date dall’ interpolazione. Quindipossiamo impostare il sistema:
a0 − πa1 = 0a0 = 0a0 + πa1 + πa2 = 0
ii) La soluzione e la spline nulla.
Esercizio 12: Assegnate le coppie di valori {xi, fi}2i=0:
{xi}2i=0 = (−π/2, 0, π/2),
con fi = f(xi), con f(x) = cos(x), si chiede di:
i) stabilire se e possibile costruire la funzione spline s(x) di grado 1 e nodi [−π/2, 0, π/2] cheinterpola le coppie di valori assegnati;
ii) nel caso in cui la risposta alla domanda precedente sia affermativa, calcolare la spline s(x).
Svolgimento:
i) L’ espressione di una funzione spline di primo grado e con 0 come unico nodo interno e
s(x) = a0 + a1x+ a2(x)+.
I parametri da determinare sono 3 ed abbiamo 3 condizioni date dall’ interpolazione. Quindipossiamo impostare il sistema:
a0 − π2a1 = 0
a0 = 0a0 + π
2a1 + π2a2 = 0
ii) La soluzione e la spline
s(x) = 1 +2
πx+
−4
πx+.
Esercizio 13: Assegnate le coppie di valori {xi, fi}2i=0:
{xi}2i=0 = (−1, 0, 1),
31
con{fi}2i=0 = (0, 1, 0),
si chiede di:
i) stabilire se e possibile costruire la funzione spline s(x) di grado 1 e nodi [−1, 0, 1] che interpolale coppie di valori assegnati;
ii) nel caso in cui la risposta alla domanda precedente sia affermativa, calcolare la spline s(x);ii) verificare le proprieta della spline interpolante.Svolgimento:
i) L’ espressione di una funzione spline di primo grado e con 0 come unico nodo interno e
s(x) = a0 + a1x+ a2(x)+.
I parametri da determinare sono 3 ed abbiamo 3 condizioni date dall’ interpolazione. Quindipossiamo impostare il sistema:
a0 − a1 = 0a0 = 1a0 + a1 + a2 = 0
ii) La soluzione es(x) = 1 + 1x− 2(x)+.
iii) Per verificare le proprieta della spline dobbiamo controllare se e interpolante e se nel nodo
interno e continua. Per l’ interpolazione
s(−1) = 0; s(0) = 1; s(1) = 0
Per la continuita dobbiamo verificare che
s(0)− = s(0)+ = 1.
Infatti, rispetto al nodo 0, abbiamo s(x)− = 1 + x che calcolata in 0 e uguale a 1 e s(x)+ =1 + x− 2(x) che calcolata in 0 e ancora uguale 1.
Esercizio 14: Considerato il seguente vettore di nodi y = (−2, 0, 1)i) calcolare, se possibile, la spline di grado 2 di nodi y interpolante in x = (−2,−1, 0, 1) i valorif = (0, 1,−1, 0);ii) verificare le proprieta della spline interpolante.Svolgimento:
i)La funzione spline di secondo grado con un nodo interno ha l’ espressione
s(x) = a0 + a1x+ a2x2 + a3x
2+.
Imponendo le condizioni di interpolazione otteniamo il sistema linearea0 − 2a1 + 4a2 = 0
a0 − a1 + a2 = 1a0 = −1
a0 + a1 + a2 + a3 = 0
32
La soluzione del sistema e
a0 = −1, a1 = −7
2, a2 = −3
2, a3 = 6.
L’ espressione della spline risulta essere
s(x) = −1− 7
2x− 3
2x2 + 6(x− 0)2+.
ii) Per verificare le proprieta della spline dobbiamo controllare se e interpolante e se nel nodo
interno e continua fino alla derivata prima (la spline e di secondo grado). Per l’ interpolazioneabbiamo
s(−2) = 0; s(−1) = 1; s(0) = 0; s(1) = 0
quindi s(x) e interpolante. Per la continuita dobbiamo verificare che
s(0)− = s(0)+ = 1
es(0)′− = s(0)′+ = 1
Infatti, rispetto al nodo 0, abbiamo
s(x)− = −1− 7
2x− 3
2x2
che calcolata in 0 e uguale a −1 e
s(x)+ = −1− 7
2x− 3
2x2 + 6(x− 0)2
che calcolata in 0 e ancora uguale −1.Inoltre
s′(x)− = −7
2− 3x
che calcolata in 0 e uguale a −72 e
s′(x)+ = −7
2+ 9x
che calcolata in 0 e ancora uguale a −72 .
33