Sei sulla pagina 1di 17

ESEMPI DI ESERCIZI DI CALCOLO NUMERICO da svolgere in PYTHON

1. Si vuole approssimare la funzione f (x) = arctan(5x) in [3, 3].


Si richiami la definizione di polinomio interpolante della
funzione f utilizzando n + 1 nodi equispaziati.
Si costruiscano i polinomi interpolanti nel caso di 2, 6, 10
e 14 nodi equispaziati, si rappresentino tali polinomi e si
discuta il comportamento osservato al crescere del numero
di punti.
Si costruiscano i polinomi interpolanti nel caso di 2, 6, 10
e 14 nodi di Chebyshev, si rappresentino tali polinomi e si
discuta il comportamento osservato al crescere del numero
di punti.
Si consideri linterpolazione di f utilizzando polinomi lineari a tratti: si costruisca linterpolante nel caso di 2, 6,
10 e 14 nodi e si discuta il comportamento qualitativo.
Dopo aver precisato cosa si intende per ordine di convergenza dellinterpolazione polinomiale, valutare tale ordine
nel caso dellinterpolazione lineare a tratti di f utilizzando
28, 56, 112 e 224 nodi e discutere i risultati ottenuti in
relazione alle stime teoriche note.
Definire il condizionamento per il problema dellinterpolazione polinomiale e valutare tale condizionamento nei casi
in cui si usino 14 nodi di interpolazione equispaziati e di
Chebyshev.
1

2. Si consideri il sistema lineare Ax = b, con

1
A=

2
3
2
3
0 3 + 1013
1
3

2
,

b=

lo si risolva mediante fattorizzazione LU senza pivot.


Si ripeta il punto precedente utilizzando la fattorizzazione
LU con pivot parziale e si dica se `e stata effettuata qualche
permutazione (in tal caso si indichi quale). Si calcoli quindi
la norma infinito della differenza delle soluzioni ottenute
nei due casi. Giustificare i risultati ottenuti e specificare
quale delle due soluzioni approssima meglio la soluzione
esatta.
Per le due soluzioni ottenute ai punti precedenti, si calcoli
la norma del residuo e si dica se essa rappresenta un buon
indicatore dellerrore e perch`e.
3. Si applichi il metodo dei trapezi composto per calcolare
2 Z1
0 exp(x2)dx.

si confrontino i risultati riportando in tabella per


n = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
i valori dellintegrale approssimato, di una approssimazione
dellerrore assoluto EAn, il rapporto fra le approssimazioni
2

degli errori EAn/EA2n, e il logaritmo in base due del rapporto fra gli errori EAn/EA2n. Si giustifichino i risultati
ottenuti.
Si confrontino i risultati con quelli ottenuti con lalgoritmo
adattativo, imponendo tolleranze diverse legate agli errori ottenuti al variare di n con la formula composta. Si
confronti il risultato con quello ottenuto con la function
quad.
4. Si consideri lequazione non lineare tan(x) = 2x
Determinarne graficamente il numero di soluzioni nellintervallo [, ].
Detta la soluzione strettamente positiva, calcolarne una
approssimazione con tolleranza tol = 106 utilizzando il
metodo di Newton e della direzione costante, scegliendo opportunamente la direzione. Si utilizzi come valore iniziale
x0 = 1.
Si confronti il numero di iterazioni e il numero di valutazioni di funzioni richiesto dai vari metodi.
Discutere lapplicabilit`a o meno del metodo delle bisezioni
al calcolo della stessa radice.
5. Data una dimensione n e un numero di condizione (in norma
2) k costruire la seguente matrice
A = U DV T
con
3

D = diag(1, k 1/(n1), k 2/(n1), . . . , k 1) e U e V matrici


ortogonali random.
Per creare una matrice ortogonale random calcolare la fattorizzazione QR (numpy.linalg.qr) di una matrice random e
utilizzare la matrice Q.
Al variare di n = 4, 8, 16, 32, 64, 128:
1. Generare tre matrici random A1, A2, A3 di dimensione n e
numero di condizione k = 1e9, k = 1e5, k = 1e8.
2. Calcolare linversa delle matrici risolvendo n sistemi lineari
con la fattorizzazione LU con pivot parziale.
3. Siano X1, X2 X3 le matrici calcolate nel punto 2, stampare
il residuo relativo kAi Xi Ik/kIk, i = 1, 2, 3. Stampare
una stima dellerrore relativo ottenuta utilizzando il residuo.
` il residuo una buona indicazione dellerrore?
E
6. Sapendo che la derivata prima di una funzione f si pu`o approssimare utilizzando la formula alle differenze in avanti e la
formula alle difference centrali.
Data la seguente funzione:
f (x) = log(x) + x/2;
approssimare f 0(15) con entrambe le formule utilizzando i seguenti valori di h: hi = 2i, i = 1, 50. Calcolare lerrore
relativo utilizzando il valore esatto della derivata, controlla-

re se lerrore relativo nellapprossimazione diminuisce come h.


Giustificare i risultati.
Costruire, per ogni hi i polinomi interpolanti i nodi x0 = 15
2 hi, x1 = 15 hi, x2 = 15, x3 = 15 + hi, x4 = 15 + 2 hi
e calcolare una approssimazione della derivata prima f 0(15)
utilizzando la derivata del polinomio interpolante. Confrontare
i risultati con quelli trovati utilizzando le differenze in avanti e
allindietro.
Sapendo che lerrore si comporta come chp, calcolare una approssimazione di p, valutando, per ogni metodo, per i=1,9
il logaritmo in base due del rapporto fra e(hi)/e(hi+1) (utilizzare la function log2) e calcolando la costante di migliore
approssimazione ai minimi quadrati.
7. Data la seguente funzione:
f (x) := cos(10 x) + sin(5 x)

per x [0, pi/2]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo il polinomio interpolante utilizzando n=10,20,40,80,160,320
nodi equidistanti e calcolando il massimo errore assoluto valutando la differenza fra f (x) e p(x) in 500 punti equidistanti.
Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico dellerrore. Confrontare fra di loro i vari metodi
per calcolare il polinomio interpolante utilizzando tutte le basi
studiate.
5

Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
Confrontare i risultati ottenuti con quelli che si ottengono con
la spline lineare e la spline cubica interpolante gli stessi nodi.
Fare il confronto scrivendo in una opportuna tabella i risultati
ottenuti.
8. Applica il metodo dei trapezi e il metodo di Simpson composti
per calcolare
Z 1
exp(x2)dx
0
confronta i risultati riportando in tabella per
n = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
i valori dellintegrale approssimato, dellerrore assoluto e il logaritmo in base due (utilizzando la function log2) del rapporto
fra gli errori En/E2n. Giustificare i risultati.
Confrontare i risultati con quelli ottenuti con lalgoritmo adattativo.
Sapendo che la derivata prima di una funzione f si pu`o approssimare utilizzando la formula alle differenze allindietro e
la formula alle difference centrali.
Date le seguenti funzioni:
f (x) = ex;
f (x) = cos(x);
f (x) = log(x);
6

approssimare f 0(10) utilizzando 500 valori di h variabili, in


scala logaritmica, da 1 a 1e16 utilizzando entrambe le formule. Calcolare lerrore relativo utilizzando il valore esatto della
derivata, controllare se lerrore relativo nellapprossimazione
diminuisce come h. Giustificare i risultati.
Costruire il polinomio interpolante utilizzando x0 = 10 2
h, x1 = 10h, x2 = 10, x3 = 10+h, x4 = 10+2h e calcolare
una approssimazione della derivata prima f 0(10) utilizzando la
derivata del polinomio interpolante. Confrontare i risultati con
quelli trovati utilizzando le differenze in avanti e allindietro.
9. Data la seguente funzione:
f (x) := log(2 + x) + 1/(1 + x2)

per x [0.01, 2]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo il polinomio interpolante utilizzando n=10,20,40,80,160,320
nodi equidistanti e calcolando il massimo errore assoluto valutando la differenza fra f (x) e p(x) in 500 punti equidistanti.
Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico dellerrore. Confrontare fra di loro i vari metodi
per calcolare il polinomio interpolante utilizzando tutte le basi
studiate.
Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
7

Confrontare i risultati ottenuti con quelli che si ottengono con


la spline lineare e la spline cubica interpolante gli stessi nodi.
10. Vogliamo approssimare i seguenti dati
x0 = 0, f0 = e0.1,x1 = 1, f1 = e0.9,x2 = 2, f2 = e2.
` ragionevole cercare una approssimazione del tipo u(x) =
E
0e1x.
sapendo che v(x) = ln(u(x)) = ln(0) + 1x, calcolare
yi = ln(fi), trovare il la retta approssimante i dati xi, yi e
calcolare i coefficienti della funzione u(x);
stampare graficamente i risultate.
11. Applica i metodi iterativi per trovare la radice di f (x) = 2ex,
per la quale la soluzione esatta `e = ln(2). Utilizza come
punto iniziale per il metodo di Newton prima x0 = 0 e poi
x0 = 2 e per il metodo delle secanti e delle bisezioni i due
punti x0 = 0, x1 = 1. Commentare i risultati.
12. Costruire
la matrice A di dimensione n con elementi aij =
r
ij
2
(sin(
n+1
n+1 )).
Al variare di n = 4, 8, 16, 32, 64, 128:
1. Generare la matrice A;
2. Calcolare il numero di condizione della matrice in norma
infinito;
2. Risolvere il sistema lineare che si ottiene supponendo che la
soluzione esatta sia il vettore con elementi uguali a 1;
8

3. Calcolare una maggiorazione dellerrore relativo e lerrore


relativo vero in norma infinito;
4. Giustificare i risultati presentandoli in forma tabellare.
13. Data la seguente funzione:
f (x) := sin(pi x/2)

per x [0, 1]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo
il polinomio interpolante utilizzando n=10,20,40,80 nodi equidistanti e calcolando il massimo errore assoluto valutando la
differenza fra f (x) e p(x) in 500 punti equidistanti. Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico
dellerrore. Confrontare fra di loro i vari metodi per calcolare
il polinomio interpolante utilizzando tutte le basi studiate.
Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
Confrontare i risultati ottenuti con quelli che si ottengono con
la spline lineare e la spline cubica interpolante gli stessi nodi.
Fare il confronto scrivendo in una opportuna tabella i risultati
ottenuti.
14. Applica il metodo dei trapezi e il metodo di Simpson composti
(scaricare la nuova function csimp.sci) per calcolare
1 x
e dx
0

il cui valore esatto e: e1 1. Confronta i risultati riportando


in tabella per
n = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
i valori dellintegrale approssimato, dellerrore assoluto En, una
approssimazione dellerrore assoluto EAn, il rapport fra gli errori En/E2n, e il logaritmo in base due (utilizzando la function
log2) del rapporto fra gli errori En/E2n, EAn/EA2n. Giustificare i risultati. Confrontare i risultati con quelli ottenuti con
lalgoritmo adattativo.
15. Applica i metodi iterativi per trovare la radice di f (x) =
1 xe1x, per la quale la soluzione esatta `e = 1. Utilizza come punto iniziale per il metodo di Newton x0 = 0 e
per il metodo delle secanti x0 = 1, x1 = 0. Applicare anche il
seguente metodo di Newton modificato utilizzando la funzione
iteratrice:
f (xn)
xn+1 = xn 2 0
f (xn)
Commentare i risultati.
16. Costruire la matrice A di dimensione n con elementi aij =
1/(i + j 1).
Al variare di n = 4, 8, 16, 32:
1. Generare la matrice A;
2. Calcolare il numero di condizione della matrice in norma
infinito;
10

2. Risolvere il sistema lineare che si ottiene supponendo che la


soluzione esatta sia il vettore x = (123 . . . n);
3. Calcolare una maggiorazione dellerrore relativo e lerrore
relativo vero in norma infinito;
4. Giustificare i risultati presentandoli in forma tabellare.
17. Data la seguente funzione:
f (x) := log2(x)

per x [1, 2]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo
il polinomio interpolante utilizzando n=10,20,40,80 nodi equidistanti e calcolando il massimo errore assoluto valutando la
differenza fra f (x) e p(x) in 500 punti equidistanti. Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico
dellerrore. Confrontare fra di loro i vari metodi per calcolare
il polinomio interpolante utilizzando tutte le basi studiate.
Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
Confrontare i risultati ottenuti con quelli che si ottengono con
la spline lineare e la spline cubica interpolante gli stessi nodi.
Fare il confronto scrivendo in una opportuna tabella i risultati
ottenuti.

11

18. Applica il metodo dei trapezi e il metodo di Simpson composti


(scaricare la nuova function csimp.sci) per calcolare
Z

(1 x2)1/2dx

il cui valore esatto e: /2. Confronta i risultati riportando in


tabella per
n = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
i valori dellintegrale approssimato, dellerrore assoluto En, una
approssimazione dellerrore assoluto EAn, il rapporto fra gli errori En/E2n, e il logaritmo in base due (utilizzando la function
log2) del rapporto fra gli errori En/E2n, EAn/EA2n. Giustificare i risultati. Confrontare i risultati con quelli ottenuti con
lalgoritmo adattativo.
19. Applica i metodi iterativi per trovare la radice di f (x) =
1 xe1x, per la quale la soluzione esatta `e = 1. Utilizza come punto iniziale per il metodo di Newton x0 = 0 e
per il metodo delle secanti x0 = 1, x1 = 0. Applicare anche il
seguente metodo di Newton modificato utilizzando la funzione
iteratrice:
f (xn)
xn+1 = xn 2 0
f (xn)
Commentare i risultati.
20. Sapendo che la derivata prima di una funzione f si pu`o approssimare utilizzando la formula alle differenze allindietro e
la formula alle difference centrali.
12

Date le seguenti funzioni:


f (x) = ex;
f (x) = cos(x);
f (x) = log(x);
approssimare f 0(10) utilizzando 500 valori di h variabili, in
scala logaritmica, da 1 a 1e16 utilizzando entrambe le formule. Calcolare lerrore relativo utilizzando il valore esatto della
derivata, controllare se lerrore relativo nellapprossimazione
diminuisce come h. Giustificare i risultati.
Costruire il polinomio interpolante utilizzando x0 = 10 2
h, x1 = 10h, x2 = 10, x3 = 10+h, x4 = 10+2h e calcolare
una approssimazione della derivata prima f 0(10) utilizzando la
derivata del polinomio interpolante. Confrontare i risultati con
quelli trovati utilizzando le differenze in avanti e allindietro.
21. Data la seguente funzione:
f (x) := log(2 + x) + 1/(1 + x2)

per x [0.01, 2]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo il polinomio interpolante utilizzando n=10,20,40,80,160,320
nodi equidistanti e calcolando il massimo errore assoluto valutando la differenza fra f (x) e p(x) in 500 punti equidistanti.
Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico dellerrore. Confrontare fra di loro i vari metodi
13

per calcolare il polinomio interpolante utilizzando tutte le basi


studiate.
Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
Confrontare i risultati ottenuti con quelli che si ottengono con
la spline lineare e la spline cubica interpolante gli stessi nodi.
22. Vogliamo approssimare i seguenti dati
x0 = 0, f0 = e0.1,x1 = 1, f1 = e0.9,x2 = 2, f2 = e2.
` ragionevole cercare una approssimazione del tipo u(x) =
E
0e1x.
sapendo che v(x) = ln(u(x)) = ln(0) + 1x, calcolare
yi = ln(fi), trovare il la retta approssimante i dati xi, yi e
calcolare i coefficienti della funzione u(x);
stampare graficamente i risultati.
23. Applica i metodi iterativi per trovare la radice di f (x) = 2ex,
per la quale la soluzione esatta `e = ln(2). Utilizza come
punto iniziale per il metodo di Newton prima x0 = 0 e poi
x0 = 2 e per il metodo delle secanti e delle bisezioni i due
punti x0 = 0, x1 = 1. Commentare i risultati.
24. Costruire la matrice A di dimensione n con elementi:
aij = sqrt(2/(n + 1)) sin(i j /(n + 1));
Al variare di n = 8, 16, 32, 64, 128:
14

1. Generare la matrice A;
2. Calcolare il numero di condizione della matrice in norma
infinito;
3. Calcolare la fattorizzazione LU con pivot parziale e calcolare
il numero di condizione delle matrici L e U ;
4. Risolvere, usando la fattorizzazione LU con pivot parziale,
il sistema lineare che si ottiene supponendo che la soluzione
esatta sia il vettore xt = (1, 1, 1, . . . 1);
5. Calcolare una maggiorazione dellerrore relativo e lerrore
relativo vero in norma infinito;
6. Calcolare la fattorizzazione LU con pivot totale e calcolare
il condizionamento delle matrici L e U ;
7. Risolvere, usando la fattorizzazione LU con pivot totale,
il sistema lineare che si ottiene supponendo che la soluzione
esatta sia il vettore xt = (1, 1, 1, . . . 1); (usare le istrauzioni
R max.col e which.max per calcolare il massimo elemento della
matrice);
8. Giustificare i risultati presentandoli in forma tabellare.
25. Data la seguente funzione:
f (x) := log2(x)

per x [1, 2]

Verificare numericamente se il polinomio interpolante converge


alla funzione data allaumentare del numero di nodi costruendo
il polinomio interpolante utilizzando n=10,20,40,80 nodi equidistanti e calcolando il massimo errore assoluto valutando la
15

differenza fra f (x) e p(x) in 500 punti equidistanti. Memorizzare lerrore massimo calcolato in funzione di n e fare il grafico
dellerrore. Confrontare fra di loro i vari metodi per calcolare
il polinomio interpolante utilizzando tutte le basi studiate.
Confrontare i risultati ottenuti con quelli che si ottengono utilizzando i nodi di Chebyschev. Come cambia la funzione di
Lebesgue se si utilizzano i nodi di Chebyshev?
Confrontare i risultati ottenuti con quelli che si ottengono con
la spline lineare e la spline cubica interpolante gli stessi nodi.
Fare il confronto scrivendo in una opportuna tabella i risultati
ottenuti.
26. Applica il metodo dei trapezi e il metodo di Simpson composti
per calcolare
2 Z1
0 exp(x2)dx.

Confronta i risultati riportando in tabella per


n = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
i valori dellintegrale approssimato, di una approssimazione
dellerrore assoluto EAn, il rapporto fra le approssimazioni degli errori EAn/EA2n, e il logaritmo in base due (utilizzando
la function log2) del rapporto fra gli errori EAn/EA2n. Giustificare i risultati. Confrontare i risultati con quelli ottenuti
con lalgoritmo adattativo.
27. Applica i metodi iterativi per trovare la radice di f (x) =
1 xe1x, per la quale la soluzione esatta `e = 1. Uti16

lizza come punto iniziale per il metodo di Newton x0 = 0 e


per il metodo delle secanti x0 = 1, x1 = 0. Applicare anche il
seguente metodo di Newton modificato utilizzando la funzione
iteratrice:
f (xn)
xn+1 = xn 2 0
f (xn)
Commentare i risultati.

17