Calcolo Numerico - Paternoster

annuncio pubblicitario
Programma del corso di:
Calcolo Numerico
Corso di laurea in Matematica
a.a. 2005-06
Prof. B.Paternoster
Richiami di analisi degli errori. Rappresentazione dei numeri in un calcolatore. Operazioni di macchina.
Errori e loro propagazione. Procedimenti stabili e instabili. Condizionamento di problemi numerici.
Approssimazione di dati e funzioni. Richiami sull’interpolazione polinomiale.
Approssimazione nel senso dei minimi quadrati: caso discreto. Retta di regressione. Sistema della equazioni
normali e sua risoluzione.
Risoluzione numerica di equazioni non lineari. Metodi iterativi: metodo di bisezioni, delle secanti, metodo di
Newton o delle tangenti. Ordine di convergenza e teoremi di convergenza.
Calcolo delle radici di polinomi algebrici: metodo di Newton-Horner.
Risoluzione numerica di sistemi di equazioni non lineari.
Integrazione numerica. Quadratura interpolatoria. Grado di precisione. Formule di Newton - Cotes.
Espressione dell’ errore. Formule composite e loro errore.
Polinomi ortogonali. Formule di quadratura Gaussiane. Stima dell’errore.
Integratori automatici basati su schemi fissi e schemi adattativi.
Autovalori di matrici. Localizzazione di autovalori: teorema di Gerschgorin.
Metodi iterativi: metodo delle potenze e delle potenze inverse.
Metodi basati su trasformazioni di similitudine. Fattorizzazione QR di matrice. Il metodo QR per il calcolo
degli autovalori.
Sviluppo di codici Matlab relativi ai principali algoritmi trattati.
Elenco dei programmi da sviluppare in Matlab:
§
§
§
Calcolo delle soluzioni di equazioni non lineari con il metodo di Newton (con esempi test significativi in merito alla
convergenza) e delle secanti.
Calcolo delle radici di polinomi algebrici col metodo di Newton-Horner.
Calcolo di un integrale con la formula composita di Simpson (con esempi test significativi): schema fisso e adattivo
Testi consigliati:
G.Monegato, Fondamenti di Calcolo Numerico, CLUT
V. Comincioli - Analisi Numerica - Ed. Mc Graw Hill
J.F.Epperson – Introduzione all’analisi numerica: teoria, metodi algoritmi – McGraw-Hill
Modalita’ d’esame
L’esame consiste in una prova orale, che comprenderà anche una discussione sul software matematico
sviluppato in ambiente Matlab, secondo le specifiche di seguito riportate.
I Parte della Prova di Laboratorio
Sviluppo, test e valutazione dei codici Matlab per il calcolo numerico di:
− radici di equazioni non lineari mediante il metodo delle tangenti e delle secanti;
− radici reali di polinomi algebrici mediante il metodo di Newton-Horner.
La correzione avverrà in Laboratorio.
Suggerimenti per il test e la valutazione del software:
Le radici vanno calcolate con differenti accuratezze (ed anche con la massima accuratezza possibile),
giustificando la scelta dell'approssimazione iniziale e confrontando l’efficienza dei diversi metodi.
Considerare anche il caso delle radici doppie. Qualora la convergenza del metodo di Newton non risulti
quadratica, riapplicare opportunamente il metodo di Newton in modo tale che la convergenza torni ad
essere quadratica.
Alcuni esempi di equazioni non lineari da risolvere:
cos x=log x
exp (-2x-1)=1-x
5- 2 cos2 x- 4 sin x = 2 cos2 x
x4 +30 x3 +263 x2 + 644 x - 490=0
Consegnare:
− un dischetto con i codici Matlab; può accadere che si proceda a verificarne il funzionamento il
laboratorio, anche su funzioni differenti da quelle già utilizzate;
− la stampa su carta dei codici Matlab sviluppati;
− i risultati ottenuti sugli esempi utilizzati.
Algoritmo basato sul metodo delle tangenti
Begin
% Inizializzazioni
% Si assegnano x 0, toll, Nmax, f, f’, …….
f0=f(x0); df0=f ‘(x0)
Niter=0
Stimaerrore= ………
while (Niter < Nmax) and (stimaerrore > toll)
x=x0-f(x0)/ f’(x0)
stimaerrore = ……
Niter = Niter + 1
x0=x;
end
If Niter >= Nmax
errore (‘Non è possibile ottenere l’accuratezza
richiesta in Nmax iterazioni’)
end
Specifiche d’uso
function [x, Niter, iflag,…] = tangenti(funz,derfunz,x0,toll,Nmax,…)
Tra i parametri c’è anche la derivata della funzione
% funz e derfunz sono parametri formali.
% Per valutare la funzione in input e la sua derivata nel punto x all’interno della function di Matlab si usa il
comando feval
…… feval(funz,x)
In ambiente comando Matlab
>> tangenti(‘funzionemia’,derfunzionemia, x0, toll, Nmax, …)
% funzionemia.m e derfunzionemia.m sono le functions scritte dall’utente che contengono gli algoritmi
per il calcolo della funzione e della sua derivata prima
II Parte della Prova di Laboratorio
− Sviluppo, test e valutazione dei codici Matlab per il calcolo di un integrale definito mediante la formula
di quadratura composta trapezoidale e/o di Cavalieri-Simpson, utilizzando per la scelta dei nodi sia uno
schema fisso, che uno schema adattivo. Per lo schema adattico, utilizzare, a scelta, una strategia locale
e/o globale.
La correzione avverrà in Laboratorio.
Suggerimenti per il test e la valutazione del software:
I comandi Matlab per la quadratura sono quad e quad8.
Utilizzare differenti accuratezze (ed anche la massima accuratezza possibile), verificando che l’accuratezza
richiesta sia stata realmente ottenuta, ovvero confrontare la stima dell’errore con l’errore vero . Se non
è stata ottenuta l’accuratezza richiesta, provare a spiegarne il motivo, ed eventualmente modificare la
strategia di stima dell’errore utilizzata nell’algoritmo.
Confrontare l’efficienza dei due schemi, ad es. confrontando il numero di valutazioni di funzione effettuate
dai due schemi a parità di accuratezza. Potrebbe essere utile annotare anche, ad es., il numero di iterazioni
utilizzate dall’algoritmo a schema fisso, ed il numero di livelli di suddivisione utilizzati dall’algoritmo adattivo.
Osservare e confrontare anche la scelta dei nodi effettuata dai due algoritmi.
Verificare che il grado di precisione della formula usata sia quello previsto dalla teoria (ovvero ………)
Alcuni esempi di integrali da calcolare (è possibile aggiungerne altri):
∫− 3 a tan (10 x ) dx = 4 a tan( 40) + 3 a tan ( −30) − 1 / 20 log( 16 / 9)
4
3
∫1
100 10
sin dx
x
x2
Consegnare:
− un dischetto con i codici Matlab;
− la stampa su carta dei codici Matlab sviluppati;
− i risultati ottenuti sugli esempi utilizzati;
− la documentazione esterna dei programmi sulla quadratura.
Documentazione esterna di una routine
o Scopo
Descrizione sintetica dello scopo della routine
o Specifiche d'uso
Testata della routine
o Descrizione
Descrizione sintetica della routine e del metodo utilizzato
o Bibliografia
Eventuali riferimenti bibliografici
o Parametri
Descrizione dei parametri: nome variabile, tipo, funzione (in
input e/o
o Routines ausiliarie
Descrizione di eventuali routines ausiliarie
o Indicatori di errori
Eventuali segnalatori di errori o anomalie
o Accuratezza
Ordine di accuratezza assicurato all'utente
o Complessità computazionale Ordine di complessità dell'algoritmo utilizzato
o Esempio test
Esempio test, con dati ed risultati
Scarica