Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
2019–2020
L AUREA IN I NGEGNERIA A EROSPAZIALE
Corso di C ALCOLO N UMERICO
Prima prova di accertamento MATLAB – aprile 2020
Prof. Luca Bergamaschi
Esercizio 1
Si scriva una function M ATLAB che implementi il metodo di Steffensen. Si risolva l’esercizio copiando
la function newton fornita in laboratorio su un file chiamato steffensen.m, e modificando opportu-
namente il metodo di Newton per ottenere quello di Steffensen (tra i parametri di input non deve
apparire la derivata della funzione).
Esercizio 2
Si implementi il metodo iterativo della bisezione. Si usi un test di arresto sul residuo pesato1 e sul
numero massimo di iterazioni. La sintassi della function sarà la seguente
f u n c t i o n [ i t e r , cnew , vres ] = b i s e z i o n e ( a , b , t o l , itmax , fun , dfun )
Esercizio 3
Si considerino le ultime 4 cifre del proprio numero di matricola e si denoti con
1. α la quartultima aumentata di 1,
2. β la terzultima aumentata di 1,
1
(a) Determina il valore dei parametri in relazione al numero di matricola. A questo scopo le
prime due istruzioni dello script dovranno essere
mat ricol a = . . . . . . . ;
[ a l f a , beta , gamma, d e l t a ] = param ( mat ricol a ) ;
dove al posto dei puntini lo studente dovrà scrivere il proprio numero di matricola. La
function param è fornita dal docente (scaricabile dalla pagina Moodle) e restituirà il valore
corretto dei 4 parametri.
(b) Traccia il grafico della funzione (1) e dell’asse x nell’intervallo I = [−2.5, 3.5].
(c) Verifica tramite il teorema degli zeri che esiste una soluzione ξ in I.
(d) Approssima ξ mediante il metodo di Newton-Raphson (tol = 10−8 e itmax = 30).
Per quanto riguarda il punto iniziale si proceda come segue: si chiami la funzione
bisezione con tolleranza tol = 1 e numero massimo di iterazioni pari a 5. Si usi
come x0 per il metodo di Newton il valore (cnew) di output del metodo di bisezione.
In riferimento al metodo di Newton lo script deve visualizzare a video, per ogni iterazione:
indice di iterazione corrente, approssimazione della soluzione e scarto (k, xk , sk = xk − xk−1 ).
Il programma dovrà inoltre visualizzare la migliore stima della costante asintotica in vir-
gola fissa con 4 cifre dopo la virgola e l’errore finale in valore assoluto (come differenza tra
la soluzione trovata e quela restituita dalla function fzero di Matlab).
(e) Approssima ξ mediante il metodo di Steffensen (tol = 10−8 e itmax = 30)
Si calcoli il punto iniziale aggiungendo alla soluzione trovata dal metodo di Newton il
valore 0.01:
x0 = xnew + 1e −2;
In riferimento al metodo di Steffensen lo script deve visualizzare a video, per ogni iterazio-
ne: indice di iterazione corrente, approssimazione della soluzione e scarto. Il programma
dovrà inoltre visualizzare la migliore stima della costante asintotica in virgola fissa con 4
cifre dopo la virgola e l’errore finale in valore assoluto.
(f) Visualizza in un UNICO grafico semilogaritmico il profilo di convergenza (valore assoluto
dello scarto rispetto all’indice di iterazione) dei metodi di Newton e Steffensen. Salva il
grafico nel file graficoes1.pdf.
(g) Mediante calcolo della costante asintotica (utilizzando come ξ la soluzione con uno dei due
metodi precedenti) si dica se il metodo della tangente fissa con lo stesso punto iniziale x0
utilizzato per il metodo di Newton, può convergere alla soluzione. In caso affermativo vi-
sualizzare a video una stima del numero di iterazioni richieste per ridurre l’errore iniziale
di 10−8 , altrimenti visualizzare la frase tangente fissa non convergente.
Esercizio 4
Si scriva una function M ATLAB che implementi il metodo di estrapolazione Aitken. Tale function
dovrà avere come parametri di input gli stessi della function che implementa il punto fisso.
Esercizio 5
1. Per risolvere l’equazione data f (x) = 0 dove f è sempre definita nella (1) si usi il seguente metodo
di punto fisso:
2αxk3 + γe2xk − 2δ
xk+1 = ≡ g(xk ).
β
2
A tale proposito si scriva uno script, scriptes2.m, che
(a) Utilizzando, come soluzione vera, la xnew di Newton, verifica se il metodo iterativo può
convergere a ξ (si commenti tale punto nella relazione finale). Solo in caso affermativo
si calcoli la soluzione dell’equazione con il metodo di punto fisso, stesso x0 usato per
il metodo di Steffensen, tol = 10−12 e itmax = 100 visualizzare a video, per ogni iterazione:
indice di iterazione corrente, approssimazione e scarto. Il programma dovrà inoltre visua-
lizzare la migliore stima della costante asintotica in virgola fissa con 4 cifre dopo la virgola
e l’errore finale.
(b) Approssima ξ mediante il metodo di estrapolazione di Aitken applicato al precedente me-
todo di punto fisso (stesso x0 di prima ma tol = 10−8 e itmax = 30) visualizzando a video, per
ogni iterazione: indice di iterazione corrente, approssimazione della soluzione e scarto. Il
programma dovrà inoltre visualizzare la migliore stima della costante asintotica in virgola
fissa con 4 cifre dopo la virgola e l’errore finale in valore assoluto.
(c) Visualizza in un grafico semilogaritmico il profilo di convergenza del metodo di Aitken e,
solo se convergente, anche del metodo di punto fisso. Salva il grafico nel file graficoes2.pdf.
1. Numero di matricola
I risultati devono essere scritti rispettando l’ordine. Se un valore non viene calcolato dal programma,
scrivere -9999. In ogni caso il file deve contenere 15 valori su 15 righe consecutive. Tale file potrà
essere compilato a mano riportando i valori restituiti dai due script oppure (meglio) direttamente
salvato dagli stessi script utilizzando l’istruzione:
f i d = fopen ( ’ output . t x t ’ , ’w ’ ) ! apre i l f i l e output . t x t ( comando da e s e g u i r e
! a l l ’ i n i z i o d i s c r i p t 1 e s .m)
Quindi ognuna delle variabili va scritta all’interno del file come nel seguente esempio:
f p r i n t f ( f i d , ’ %20.12 f \n ’ , xnew ) ! s c r i v e i l contenuto d e l l a v a r i a b i l e xnew s u l
! f i l e output . t x t
3
NOTA BENE 1: È necessario caricare sull’apposita pagina Moodle un UNICO FILE archivio:
ovvero un file con estensione .tar .zip .rar (o altre) a seconda dei sistemi operativi. Il nome di
tale file dovrà essere, se si è scelta l’estensione .rar: cognome_nome_matricola.rar. Per esempio
l’ipotetico studente Jacopo Robusti, matricola 2941594, dovrà consegnare un file dal nome
Robusti_Jacopo_2941594.rar
Questo file archivio comprenderà
1. tutti gli m-file M ATLAB utilizzati per risolvere gli esercizi (script e function),
2. i grafici prodotti
3. il file di risultati output.txt
4. una relazione in formato a sceltaa (anche solo testo oppure .doc e simili) in cui si commen-
tano i metodi impiegati, i risultati ottenuti, la convergenza o non convergenza dei metodi.
Possibilmente si alleghino alla relazione i grafici prodotti. La relazione dovrà comunque
essere esportata come file PDF e salvata con il nome relazione.pdf.
NOTA BENE 2: Ricordo che l’esercitazione deve essere individuale. Ciò significa che:
Modalità di valutazione
La valutazione dell’elaborato produrrà un bonus da 0 a 4 punti. La semplice consegna del-
l’elaborato nei tempi e modi descritti sopra basterà per la valutazione minima e quindi per
l’ammissione alla seconda prova parziale (da svolgersi a giugno-luglio nell’aula di laboratorio
con modalità ovviamente ancora da definire).
Sarà particolarmente privilegiata l’originalità della relazione finale oltre alla cor-
rettezza dei programmi. Meglio eseguire correttamente uno dei due script (relativi all’Esercizio
3 o all’Esercizio 5) piuttosto che consegnare soluzioni perfette ma copia conforme di elaborati di
altri studenti.
Infine, chi non consegna l’esercitazione entro la data stabilita, dovrà, una volta superata la
prova scritta, sostenere una prova orale di verifica delle competenze Matlab.