|
|
| << | < | > | >> |IndicePrefazione vii Capitolo 1 Analisi dell'errore 1 1.1 L'aritmetica floating point 1 1.2 Stabilità degli algoritmi 5 Capitolo 2 Risoluzione di sistemi lineari 29 2.1 Metodi diretti e decomposizione di matrici 30 2.2 Il condizionamento di matrici 42 2.3 Metodi iterativi 51 2.4 Minimi quadrati 69 Capitolo 3 Autovalori e autovettori 77 3.1 Il metodo delle potenze 77 3.2 I cerchi di Gerschgorin 87 3.3 Trasformazioni di Householder e il metodo QR 93 Capitolo 4 Zeri di equazioni non lineari 111 4.1 Il metodo di bisezione 111 4.2 Il metodo di Newton 115 4.3 Metodi di punto fisso 121 4.4 Sistemi di equazioni non lineari 138 Capitolo 5 Approssimazione 143 5.1 Interpolazione polinomiale 143 5.2 Minimi quadrati 159 5.3 Interpolazione mediante spline 165 5.4 Interpolazione trigonometrica 177 Capitolo 6 Integrazione numerica 185 6.1 Formule di Newton-Cotes 186 6.2 Approssimazione di integrali impropri 205 6.3 Costruzione di formule di quadratura 210 6.4 Quadrature gaussiane 215 Capitolo 7 Equazioni differenziali ordinarie 227 7.1 Consistenza e convergenza 227 7.2 Stabilità 243 7.3 Sistemi di equazioni differenziali 256 Bibliografia 269 |
| << | < | > | >> |Pagina VIIIl presente testo è stato redatto per essere supporto didattico ai corsi introduttivi di Calcolo Numerico, secondo una metodologia didattica ed espositiva, sperimentata dagli autori già da diversi anni - che ha come obiettivo quello di fissare i concetti fondamentali dell'Analisi numerica attraverso un processo induttivo stimolato da interessanti problemi. Il percorso di apprendimento tracciato dagli autori permetterà al lettore di avvalersi delle conoscenze acquisite per risolvere in modo critico problemi numerici spesso legati alla soluzione di modelli ingegneristici. Lo schema seguito nel proporre e nel risolvere gli esercizi si basa sull'uso sinergico del binomio analisi teorica - verifica sperimentale che permette di cogliere appieno il duplice aspetto della disciplina. Ogni capitolo comprende delle sezioni il cui titolo sintetizza l'informazione centrale che i problemi di quella sezione intendono offrire. In alcuni capitoli, al lettore saranno proposti esercizi nei quali viene discussa la risoluzione di un problema fisico-ingegneristico: essi si propongono di mostrare una possibile applicazione delle tecniche insegnate nei corsi di Calcolo Numerico, senza avere, comunque, la pretesa di essere esaustivi di tutte le problematiche che il modello potrebbe generare. Nella soluzione degli esercizi vi saranno raramente richiami a concetti teorici e soltanto in quelle situazioni in cui sono necessari per comprendere la successiva soluzione. Si lascerà, invece, al lettore l'onere di rivedere, qualora non rammenti le definizioni ed i metodi seguiti, i concetti necessari facendo riferimento alla bibliografica in coda al testo. Lo strumento software prescelto ed utilizzato nel libro è MATLAB nella versione 6.x.; risulta, tuttavia, opportuno rilevare che esistono innumerevoli programmi (in ambiente DOS-Windows e in ambiente UNIX-Linux) sia in formato proprietario sia di dominio pubblico che possiedono analoghe funzioni e che possono essere facilmente impiegati, una volta compresi gli algoritmi numerici che vi sono alla base (si vedano ad esempio Octave, SciLab, Mathcad, Mathematica, Maple, ecc.). | << | < | > | >> |Pagina 1L'argomento affrontato in questo capitolo è fondamentale e peculiare di ogni processo numerico. La sorgente primaria delle problematiche discusse concerne la rappresentazione dei numeri reali sul calcolatore. Infatti, prima di ogni possibile elaborazione, insorgono piccoli errori, noti come errori di arrotondamento, non determinati dall'inesattezza dei dati ma imputabili alla capacità finita del calcolatore di memorizzarli. Numerose elaborazioni numeriche, inoltre, vengono eseguite con dati sperimentali affetti da errori di misurazione a cui si sommano gli errori di memorizzazione sopra citati: l'ambiente numerico è perciò un sistema contaminato da errori ed è, quindi, importante saper controllare e limitare la loro propagazione. Nel capitolo viene studiata la stabilità degli algoritmi utilizzati nella risoluzione dei problemi proposti e viene mostrato che algoritmi matematicamente equivalenti possono non esserlo dal punto di vista numerico. Dopo aver trattato alcune delle problematiche relative all'insieme floating point F e alle differenze con l'insieme dei numeri reali R, sono esaminate le operazioni elementari e gli errori che esse producono in F. Successivamente viene condotta, nei casi più semplici, l'analisi teorica degli algoritmi numerici proposti, per giustificare l'accuratezza o meno dei risultati prodotti. | << | < | > | >> |Pagina 29Innumerevoli problemi del calcolo scientifico si riconducono alla risoluzione di un sistema lineare; si pensi, nell'ambito della teoria dell'approssimazione, alla costruzione di spline interpolanti e nel senso dei minimi quadrati, oppure alle tecniche di risoluzione basate sulle differenze finite o sugli elementi finiti per le equazioni differenziali. Numerosi algoritmi per la risoluzione di sistemi lineari sono stati costruiti e studiati per adattarsi alla struttura particolare della matrice, per garantire un'alta accuratezza dei risultati e per minimizzare il tempo di calcolo. In questo capitolo vengono esaminati, innanzitutto, i metodi diretti, che in assenza di errori di arrotondamento forniscono la soluzione esatta in un numero finito di operazioni. L'algoritmo di Gauss viene presentato nella sua versione matriciale, la decomposizione LU, e ne vengono studiate le condizioni di applicabilità. Viene, poi, analizzata la decomposizione di Cholesky, che riveste un ruolo di notevole importanza per le matrici definite positive. Il calcolo e l'analisi del condizionamento di matrici è trattato in modo approfondito per evidenziare i problemi legati a matrici mal condizionate. In seguito, si propongono alcuni classici metodi iterativi stazionari per la risoluzione di un sistema lineare, esaminandone a fondo le condizioni di convergenza e accennando alle relative tecniche di accelerazione. Il capitolo, infine, si conclude con alcuni esercizi di introduzione alla tecnica di risoluzione di sistemi lineari nel senso dei minimi quadrati. | << | < | > | >> |Pagina 185Nel presente capitolo viene affrontato il problema del calcolo numerico dell'integrale definito che, come è ben noto, non sempre è possibile calcolare in forma chiusa, ricercando una primitiva della funzione integranda e valutando poi la differenza dei valori che essa assume agli estremi dell'intervallo d'integrazione. In altre circostante, la primitiva, anche se nota, non è facilmente calcolabile agli estremi dell'intervallo d'integrazione. In tutti questi casi si utilizzano, per il calcolo dell'integrale, delle formule di quadratura di tipo interpolatorio, costruite a partire dalla conoscenza della funzione integranda in nodi interni all'intervallo d'integrazione. Inizialmente si affronta il problema più semplice dell'integrazione di funzioni regolari su intervalli limitati; per questo tipo di integrali si esaminano le proprietà di convergenza, di accuratezza ed il costo computazionale di alcune note formule di quadratura derivate dall'interpolazione polinomiale della funzione integranda (formule di Newton-Cotes). Viene esaminata, inoltre, una classe importante di metodi noti come "formule di quadratura adattative" con i quali è possibile stimare automaticamente il valore di un integrale entro una prefissata tolleranza. Al lettore verrà, poi, mostrata la costruzione di formule di quadratura interpolatorie non standard utilizzando i vincoli sull'accuratezza.
Il capitolo si conclude affrontando il calcolo dell'integrale definito nei
casi in cui la funzione integranda presenta singolarità nell'intervallo
d'integrazione o l'intervallo di integrazione è illimitato. In tale sezione
vengono presentate due diverse strategie risolutive: una basata ancora sulle
formule di Newton-Cotes ed una seconda basata sulle formule di quadratura
gaussiane.
|