Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica...

34
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

Transcript of Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica...

Page 1: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 2: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 3: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−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

Page 4: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 5: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 6: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 7: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 8: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 9: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 10: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 11: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 12: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 13: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 14: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 15: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 16: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 17: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 18: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 19: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 20: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 21: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 22: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 23: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 24: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 25: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 26: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 27: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 28: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 29: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 30: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 31: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 32: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 33: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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

Page 34: Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. … · 2014-01-12 · Aritmetica Finita Esercizio 1: Assegnati i numeri reali a = 20 7, b = 1 2 10 2, c = 64 10−1

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