Matematica Numerica Esercizi, Laboratori e Progetti
Carlo D Angelo Alfio Quarteroni Matematica Numerica Esercizi, Laboratori e Progetti
Carlo D Angelo MOX Politecnico di Milano carlo.dangelo@polimi.it Alfio Quarteroni MOX Politecnico di Milano and EPFL, Lausanne alfio.quarteroni@epfl.ch ISBN 978-88-470-1639-2 ISBN 978-88-470-1640-8 DOI 10.1007/978-88-470-1640-8 (ebook) Springer-Verlag Italia 2010 Quest opera è protetta dalla legge sul diritto d autore e la sua riproduzione è ammessa solo ed esclusivamente nei limiti stabiliti dalla stessa. Le fotocopie per uso personale possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto dall art. 68. Le riproduzioni per uso non personale e/o oltre il limite del 15% potranno avvenire solo a seguito di specifica autorizzazione rilasciata da AIDRO, Corso di Porta Romana n. 108, Milano 20122, e-mail segreteria@aidro.org e sito web www.aidro.org. Tutti i diritti, in particolare quelli relativi alla traduzione, alla ristampa, all utilizzo di illustrazioni e tabelle, alla citazione orale, alla trasmissione radiofonica o televisiva, alla registrazione su microfilm o in database, o alla riproduzione in qualsiasi altra forma (stampata o elettronica) rimangono riservati anche nel caso di utilizzo parziale. La violazione delle norme comporta le sanzioni previste dalla legge. L utilizzo in questa publicazione di denominazioni generiche, nomi commerciali, marchi registrati, ecc. anche se non specificatamente identificati, non implica che tali denominazioni o marchi non siano protetti dalle relative leggi e regolamenti. Layout copertina: Beatrice., Milano Impaginazione: PTP-Berlin, Protago TEX-Production GmbH, Germany (www.ptp-berlin.eu) Stampa: Grafiche Porpora, Segrate (MI) Stampato in Italia Springer-Verlag Italia S.r.l., Via Decembrio 28, I-20137 Milano Springer-Verlag fa parte di Springer Science+Business Media (www.springer.com)
Prefazione La Matematica Numerica è la disciplina che consente di tradurre un problema matematico (nell ambito di campi quali l analisi, l algebra lineare, la teoria dell approssimazione, la teoria delle equazioni funzionali, l ottimizzazione, le equazioni differenziali ordinarie e alle derivate parziali, etc.), in algoritmi efficienti che ne permettano la risoluzione mediante calcolatore. Essa rappresenta la base fondativa del Calcolo Scientifico per la modellistica e risoluzione di problemi nei più svariati ambiti applicativi, quali quelli dell Ingegneria, delle Scienze della Vita, delle Scienze Economiche e Sociali. È, per vocazione, una disciplina che si sviluppa in simbiosi con il calcolatore, appoggiandosi a linguaggi di programmazione che consentano di tradurre gli algoritmi in programmi eseguibili. Questo testo si propone di aiutare lo studente nella transizione fra i concetti teorici e metodologici della Matematica Numerica e la loro implementazione al computer. Con questo obiettivo vengono proposti Esercizi da risolvere con carta e penna, atti a far comprendere meglio al lettore la teoria, e Laboratori, in cui per un dato problema si debbono scegliere gli algoritmi più adatti, realizzare un programma in linguaggio Matlab per la loro implementazione, rappresentare graficamente in maniera idonea i risultati ottenuti dal calcolatore, infine interpretarli ed analizzarli alla luce delle conclusioni che avremmo potuto trarre a priori grazie alla teoria. Per ogni Esercizio e ogni Laboratorio si presenta una risoluzione dettagliata, completata da una ampia discussione critica. Esercizi e Laboratori vengono proposti per ognuno dei capitoli classici della Matematica Numerica: l algebra lineare numerica (per la soluzione di sistemi lineari e l approssimazione di autovalori e autovettori), le equazioni non lineari, l interpolazione polinomiale, l integrazione numerica, i problemi differenziali. Per una migliore fruizione degli argomenti sviluppati, il testo si apre con un introduzione all ambiente di programmazione Matlab: il software, le variabili e le operazioni, la manipolazione di vettori e matrici, il controllo di flusso, gli script ele function, la grafica, la manipolazione di polinomi. Inoltre, ogni capitolo inizia con un richiamo alle definizioni, agli algoritmi e alle proprietà fondamentali che faranno da traccia alla risoluzione di Esercizi e Laboratori. Per una approfondita esposizione di tali richiami, si rimanda a [1]. Inoltre, si farà riferimento ai programmi Matlab utilizzati per il corso di Matematica Numerica tenuto al Politecnico di Milano. Si v
vi Prefazione tratta di file disponibili alla pagina web del corso [2], i quali implementano i metodi numerici studiati. Sono riconoscibili dal fatto che il nome comincia sempre per qss (ad esempio, qssnewton.m è il file che implementa il metodo di Newton). [1] A. Quarteroni, R. Sacco e F. Saleri, Matematica Numerica, 3a Ed., Springer, Milano, 2008. [2] http://www1.mate.polimi.it/cn/annum/programmiqss.zip Il testo contiene infine alcuni Progetti. Si tratta di temi di indagine riguardanti applicazioni rilevanti del Calcolo Scientifico, in cui gli strumenti della Matematica Numerica devono essere utilizzati per risolvere problemi specifici. In particolare, tratteremo nel primo progetto i metodi che sono alla base degli algoritmi di page ranking dei moderni motori di ricerca e vedremo come i problemi da risolvere possano essere trattati mediante metodi numerici per il calcolo di autovettori o alternativamente con metodi iterativi per sistemi lineari. Oggetto di studio del secondo progetto saranno alcuni problemi legati al campo elettrico fra due conduttori e il calcolo della capacità di un condensatore e in generale le equazioni integrali di seconda specie. La loro risoluzione numerica richiede l uso di tecniche di interpolazione e quadratura numerica. Il terzo progetto concerne lo studio di sistemi dinamici oscillanti di grande rilevanza in applicazioni elettroniche (ad esempio nel caso dell oscillatore di van der Pol) e biologiche (come nei modelli di FitzHugh-Nagumo per le correnti neuronali). La risoluzione di questo progetto ci condurrà ad applicare i metodi numerici di discretizzazione di sistemi di equazioni differenziali ordinarie, nonché ad utilizzare opportune tecniche di approssimazione per sistemi di equazioni algebriche non lineari. I progetti richiedono di sviluppare questi temi con una buona dose di creatività a partire dalle nozioni di base trattate in questo volume, fornendo indirettamente ulteriore evidenza al fatto che le tecniche numeriche studiate siano necessarie in vari ambiti delle Scienze e dell Ingegneria. Questo testo è scritto per studenti dei corsi di laurea di primo livello in Matematica, Ingegneria, Fisica e Informatica. Molti fra gli Esercizi e Laboratori proposti sono derivati da esercizi e temi d esame dei corsi di Matematica Numerica insegnati presso il Politecnico di Milano e l EPFL (Ecole Polytechnique Fédérale) di Losanna. Ringraziamo pertanto i numerosi colleghi e collaboratori i quali, avendo insegnato questi corsi, hanno contribuito, direttamente o indirettamente, a selezionare il materiale proposto. In particolare, un contributo importante allo sviluppo degli Esercizi e Laboratori va riconosciuto a Marco Discacciati, Edie Miglio e Paolo Zunino. Infine, un ricordo speciale lo rivolgiamo a Fausto, coautore del testo di riferimento [1], per essersi prodigato con la generosità che lo ha sempre contraddistinto anche nella preparazione di Esercizi e Laboratori che hanno aiutato gli studenti ad avvicinarsi alla Matematica Numerica. Milano e Losanna, febbraio 2010 Carlo D Angelo Alfio Quarteroni
Indice 1 Matlab in 1h30... 1 1.1 Introduzionealsoftware... 1 1.2 Variabili e operazioni... 2 1.3 Manipolazione di vettori e matrici... 7 1.4 Controllodiflusso... 9 1.5 Script e function... 10 1.6 Plot... 13 1.7 Grafici in scala logaritmica e semilogaritmica... 15 1.8 Polinomi... 18 1.9 Commenti... 19 2 Fondamenti di algebra lineare numerica... 21 2.1 Spazi vettoriali, norme e prodotti scalari... 21 2.2 Matrici... 23 2.3 Norme matriciali... 26 Esercizi e Laboratori... 29 Soluzioni... 33 3 Sistemi lineari... 47 3.1 Introduzione e analisi di stabilità... 47 3.2 Metodi diretti... 48 3.3 Metodi iterativi... 52 Esercizi e Laboratori... 60 Soluzioni... 76 4 Approssimazione di autovalori e autovettori...123 4.1 Localizzazione...123 4.2 Stabilità e condizionamento...124 4.3 Metodi numerici...125 Esercizi e Laboratori...131 Soluzioni...137 vii
viii Prefazione 5 Equazioni non lineari...153 Esercizi e Laboratori...157 Soluzioni...163 6 Interpolazione polinomiale...185 6.1 Interpolazione lagrangiana...185 6.2 Stabilità...186 6.3 Forma di Newton e differenze divise...188 6.4 Interpolazione di Hermite-Birkoff...189 6.5 Splines...190 6.6 Polinomiortogonali...191 6.7 Interpolazione nel senso dei minimi quadrati...193 Esercizi e Laboratori...195 Soluzioni...205 7 Integrazione...233 7.1 Formule di quadratura di Newton-Cotes...236 7.2 Formule di quadratura Gaussiane...238 Esercizi e Laboratori...239 Soluzioni...248 8 Equazioni differenziali ordinarie...269 8.1 Introduzione...269 8.2 Metodi ad un passo...271 8.3 Assoluta stabilità...274 8.4 Metodi a più passi (o multipasso)...276 8.5 MetodiRunge-Kutta...279 8.6 Cenni all adattività...279 Esercizi e Laboratori...282 Soluzioni...290 9 Progetti svolti...327 Progetto A: Google, catene di Markov e PageRank...328 Progetto B: Campi elettrici ed equazioni integrali...345 Progetto C: Oscillatori e sistemi di equazioni differenziali non lineari...361