Appunti di Laboratorio di Calcolo Numerico con Matlab

Documenti analoghi
Esercizio 1. Esercizio 2

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Introduzione a Matlab (e al Calcolo Numerico)

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

Interfaccia grafica SPTool di Matlab per

APPUNTI DI MODELLI NUMERICI PER I CAMPI

Informatica Applicata al Suono Tutorial Matlab

Mini-Corso di Informatica

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Corso di Laurea in Ingegneria Gestionale Anno Accademico 2013/2014 Calcolo Numerico

Introduzione al MATLAB c Parte 3 Script e function

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

Prove d esame Esercizi con Matlab

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

Calcolo Numerico con elementi di programmazione

Programma del corso di: Calcolo Numerico Corso di laurea in Matematica a.a Prof. B.Paternoster

A. Introduzione a Matlab

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

Quale delle seguenti rappresentazioni del numero reale è in virgola mobile normalizzata?

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

Programmazione Matlab

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Introduzione a MATLAB

CORSO DI LABORATORIO DI INFORMATICA

Fondamenti di Informatica A.A. 2016/17

8 Introduzione MATLAB

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Algoritmi in C++ (seconda parte)

Concludiamo questa Appendice, riportando alcuni programmi scritti in linguaggio

Programma svolto di Matematica Classe: 5^A MM

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Calcolo Numerico per Ingegneria. Corso estivo di Bressanone. Prof. L. Bergamaschi SOLUZIONE DELLA PROVA SCRITTA del

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Metodi iterativi per equazioni nonlineari.

Soluzione del laboratorio 13 Formule di quadratura

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

MATLAB Elementi di grafica Costrutti di programmazione

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Introduzione a Matlab

Diario delle lezioni di Calcolo e Biostatistica (O-Z) - a.a. 2013/14 A. Teta

Strutture di Controllo

Esercitazione 6: Metodi iterativi per sistemi lineari.

Laboratorio di Matlab

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

ESERCIZI SVOLTI DI CALCOLO NUMERICO

1. Martedì 27/09/2016, ore: 2(2) Introduzione al corso: problemi ben posti, condizionamento, stabilità, complessità

Esercitazioni di Analisi e Simulazione dei Processi Chimici

Metodi numerici con elementi di Programmazione A.A

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Laboratorio di Calcolo Numerico

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Esercitazione ENS su processi casuali (13 e 14 Maggio 2008)

Introduzione alla programmazione strutturata

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Introduzione a Matlab. Renato Mainetti

Presentazione del Corso di Calcolo Numerico con Laboratorio

3. Matrici e algebra lineare in MATLAB

INTRODUZIONE A MATLAB Matrix Laboratory

Corso di Calcolo Numerico

Prima Esercitazione: introduzione a Matlab

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

A. Quarteroni R. Sacco R Saleri MATEMATICA NUMERICA. Springer

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

Calcolo del fattore di convergenza

Generazione di Numeri Casuali- Parte 2

Metodi Numerici con Elementi di Programmazione A.A

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

LICEO DELLE SCIENZE APPLICATE

ELABORAZIONE DELLE IMMAGINI:

Matlab. Istruzioni condizionali, cicli for e cicli while.

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A =

Introduzione al Calcolo Scientifico

a n i=0 F = a a n 2

Calcolo Numerico (A.A ) Esercitazione n. 9. Metodo del punto unito, Metodo di Newton per sistemi

Corso di Laurea in Ingegneria Informatica Analisi Numerica

Introduzione a Matlab

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Fondamenti di Informatica A.A. 2016/17

Funzioni di probabilità con Matlab

Strutture di controllo in C++

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

Fondamenti di Informatica

Metodi iterativi per sistemi lineari

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

Fondamenti di Informatica

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Indice. Prefazione. 3 Oggetti e Java 53

Metodi numerici con elementi di Programmazione A.A

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Aritmetica in Floating Point

PIANO DI LAVORO ANNO SCOLASTICO 2016/2017 CLASSE 5B (IND. INF. TEL.) MATERIA DI INSEGNAMENTO: MATEMATICA ORE SETT 3

REGISTRI D'ESAME CODICE ESAME CORSO DI LAUREA NOME DEL CORSO LAUREA CFU

Transcript:

Appunti di Laboratorio di Calcolo Numerico con Matlab Ing. Luca Paulon (paulon@dmmm.uniroma1.it ) 1

Riferimenti [1] Matlab help [2] MathWork web site [3] Manualetto di Matlab, [4] Calcolo Scientifico (Quarteroni, 4a edizione, Springer) [5] http://www.dmmm.uniroma1.it/~paulon/matlab.pdf [6] http://www.dmmm.uniroma1.it/~paulon/matlab.zip [7] http://www.dmmm.uniroma1.it/~paulon/esercizi.pdf [8] Esercizi di Calcolo Numerico (Gori, Lo Cascio, Pitolli) Edizioni Kappa 2

Sommario Day1 Introduzione a Matlab: riferimenti; ambiente di sviluppo (IDE) di script. Tipi di variabili. Variabili predefinite. Variabili complesse. Esempi. Day2 Operatori puntuali e funzioni vettoriali. Istruzione linspace. Realizzazione di una function. Esempi. Day3 Realizzazione di una function. Output su schermo (disp). Istruzioni condizionali (if-else-end). Operatori relazionali e operatori logici. Cicli enumerativi (do-end). Ciclo while. Esempi. 3

Day4 Matrici Day5 Sistemi Lineari, metodi iterativi di Jacobi e Gauss-Seidel Day6 Compito in classe Day7 Correzione compiti e illustrazione di alcune domande di esame. 4

Day8 Applicazioni Matlab: demo e toolbox. Day9 Integrazione numerica (approssimazione di integrali) Day10 Differenziazione numerica (approssimazione di derivate) Day11 Correzione compiti e illustrazione di alcune domande di esame. 5

Appendice 0 Concetti fondamentali di Calcolo Numerico Appendice 1 Esempio di applicazione in matlab Appendice 2 Gpu Computing 6

Day1: IDE di Matlab 7

Day1: IDE Workspace 8

Day1: Variables Types 9

Day1: variabili predefinite 10

Day1: variabili complesse Esempio 11

Day2-Day3: figure con grafici di funzioni N=50; x=linspace(0,1,n); func1=randn(n,1); func2=randn(n,1); subplot(2,1,1); title('funzione1'); Xlabel('Tempo'); Ylabel('Ampiezza '); plot(x, func1); subplot(2,1,2); title('funzione2'); Xlabel('Tempo'); Ylabel('Ampiezza '); plot(x, func2); 12

Day2 - Day3 13

Day2 - Day3 14

Day2 - Day3 (versione di matlab 2008 o superiore) ESECUZIONE DELLO SCRIPT OPZIONE2 (dall editor di matlab) 1: richiamare il seguente menu a discesa dalla toolbar dell editor di matlab 2: clicca su Edit Run config. 3: inserisci il codice per il test dello script 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6 4: esegui lo script -0.8-1 0 100 200 300 400 500 600 700 800 900 1000 15

Day2-Day3 ESECUZIONE DELLO SCRIPT OPZIONE1(dalla command window di matlab) Dalla CommandWindow 16

Day3 Esempio. Il metodo di bisezione [4] Algoritmo Ripeti il seguente ragionamento fino a che le condizioni di arresto non sono soddisfatte: 17

Day3 Esempio. Il metodo di bisezione [4]. L errore (di troncamento) 18

Day3 Implementazione de el metodo di bisezione [4] 19

Day3 Implementazione de el metodo di bisezione [4] 20

Day3 Implementazione del metodo di bisezione [4] 21

Day3 Esempio. Il metodo di bisezione [4]. Applicazione ad un caso specifico 22

Day3 Esempio. Il metodo di bisezione [4]. Applicazione ad un caso specifico 23

Day3 Esercizio per casa. Eseguire il debug dell implementazione del metodo di bisezione per correggere errori o apportare modifiche. Infine realizzare il profiling temporale del metodo di bisezione usando i comandi tic e toc. Esempio di uso di tic e toc Dal prompt dei comandi: >> tic; surf(peaks(40)); toc 24

Day4 Verifica dell Esercizio per casa relativo all implementazione del metodo di bisezione. Esercizio: scrivere uno script per il test della funzione bisection per il caso specifico f(x) in figura 2.2 tale da graficare in uscita gli andamenti dell errore relativo e assoluto per tolleranze diverse. 25

Day4 - Matrici Definizione di matrici 1. manuale 2. attraverso i comandi zeros, ones, diag Salvataggio/caricamento matrice di dati Definizione di matrici in singola precisione 26

Day4 % Esempio: clear; n=10; B = 2*diag(ones(1,n)); C =diag(ones(1,n-1),1); D = diag(ones(1,n-1),-1); A = B C D 27

Day4 % Calcolo del determinante det (A) % Calcolo della norma 1, 2, infinito nrm1 = norm (A,1) nrm2 = norm (A,2) nrminf = norm (A,inf) 28

Day4 % Calcolo dei numeri di condizionamento 1,2, infinito C1 = cond (A,1) C2 = cond (A,2) Cinf = cond (A,inf) % Calcolo degli autovalori e degli autovettori [ V, W ] = eig(a); % Calcolo del raggio spettrale 29 rho = max (abs(w))

Day4 % Calcolo del terzo autovalore e del corrispondente autovettore lambda3 = W(3,3) v3 = V(:,3) % Verifica che la matrice degli autovettori diagonalizza A Vinv = inv(v); e = W Vinv *A*V normerr = norm ( e, 2) 30 % Verifica che la matrice degli autovettori diagonalizza A ordineerr = normerr / eps

Day5 Sistemi Lineari Il metodo di Jacobi (vedi script jacobi.m) Esercizio: test del metodo di jacobi (vedi jacobi_test.m) Esercizio: realizzare un test più articolato 31

Day5 Sistemi Lineari il metodo di Gauss-Seidel (vedi script gaussseidel.m) Esercizio: realizzare un test semplice del metodo di Gauss Seidel Esercizio: confrontare i due metodi 32

Day6 Compito in classe sui sistemi lineari Tradurre in linguaggio matlab le soluzioni degli esercizi 2.20 e 2.30 riportate nel file esercizi.pdf. Scrivere ogni soluzione in script diversi. NB: la teoria è fondamentale, ad esempio sapere per i metodi iterativi di Jacobi e Gauss-Seidel: 33

Day 7 Correzione compiti e illustrazione delle domande di esame http://www.dmmm.uniroma1.it/~paulon/matlabesame.pdf 34

Day8 Applicazioni Matlab CommandWindow GUI = Graphics User Interface SCRIPT Dettaglio per una applicazione Matlab Modello a strati (layers) di un sistema composto da utente, hardware e software 35

Day8 Applicazioni Matlab - Demo Esempio: Discrete Time Fourier transform. Nella command window digitare sigdemo1 36

Day8 Applicazioni Matlab - Demo Esempio: Discrete Time Fourier transform. 37

Day8 Applicazioni Matlab - Toolbox Esempio: Signal Processing (SP) Toolbox. Digitare SPtool nella command line 38 MainWindow (finestra principale) della GUI del toolbox SPtool

Day8 Applicazioni Matlab - Toolbox Esempio di elaborazione di un segnale con il toolbox SPTool INPUT ELABORAZIONE (FILTRAGGIO) OUTPUT Filtro passa basso 39

Day8 - Applicazioni Matlab - Toolbox Esempio2: il toolbox symbolic Polinomio di Taylor 40

Day 9 Integrazione numerica 41

Day 9 Integrazione numerica Esempio 1: distribuzione di probabilità normale (o gaussiana) L area rappresenta la probabilità che il numero S (per esempio si pensi ad S come l altezza in metri di una persona) sia compreso nell intervallo [1.8, 1.9]. Problema: calcolare la suddetta probabilità (risolvendo numericamente l integrale definito) 42

Day 9 Integrazione numerica Il metodo dei trapezi (semplice e composito) cioè 43

Day 9 Integrazione numerica Il metodo dei trapezi (semplice e composito) Implementazione in matlab (vedi [4]) del metodo dei trapezi 44

Day 9 Integrazione numerica Il metodo del punto medio o rettangoli (semplice e composito) cioè 45

Day 9 Integrazione numerica Implementazione in matlab (vedi [4]) del metodo composito del punto medio (rettangoli) 46

Day 9 Integrazione numerica Il metodo di Simpson (semplice e composito) 47

Day 9 Integrazione numerica Implementazione in matlab del metodo di Simpson ( vedi [4] ) 48

Day 9 Integrazione numerica 49

Day 10 Differenziazione numerica (approssimazione delle derivate) In generale, e quindi anche nel caso della differenziazione numerica, ci possono essere diversi metodi che si possono usare per i calcoli, ciascuno con le proprie ipotesi di applicabilità e i propri vantaggi e svantaggi, che occorre conoscere bene. Sperimentalmente (cioè attraverso le implementazioni, per esempio in matlab) si procede, fissata una applicazione da sviluppare, nel confronto di essi considerando tempi di esecuzione, errore di approssimazione, etc. Infine si decide il migliore, se ne esiste uno, da utilizzare. 50

Day 10 Differenziazione numerica (approssimazione delle derivate) Esempio 1 51

Day 10 Differenziazione numerica Il metodo della differenza finita in avanti. Implementazione in matlab (realizzare uno script per esercizio) 52

Day 10 Differenziazione numerica Il metodo della differenza finita all indietro. Implementazione in matlab (realizzare uno script per esercizio) 53

Day 10 Differenziazione numerica Il metodo della differenza finita intermedia. Implementazione in matlab (realizzare uno script per esercizio) 54

Day 10 Differenziazione numerica (approssimazione delle derivate) Esempio 2 55

Day 10 Differenziazione numerica (approssimazione delle derivate) Svolgimento (usare gli script realizzati) 56

Day 11 Correzione compiti e illustrazione delle domande di esame http://www.dmmm.uniroma1.it/~paulon/matlabesame.pdf 57

Appendice 0 [vedi 4] 58

Appendice 0 [vedi 4] 59

Appendice 0 [vedi 4] 60

Appendice 0 61

Appendice 0 62

Appendice 0 63

Appendice 0 64

Appendice 0 65

Appendice 0 66

Appendice 1: un semplice esperimento con Matlab Realizzazione di uno script per la simulazione di una tensione sinusoidale disturbata dalla presenza di due o più spike 15 spike1 spike2 Matlab 10 5 0-5 -10-15 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 67

Appendice 2: GPU computing 68

Appendice 3 69

Ringraziamenti % Il dipartimento Me.Mo.Mat., il Laboratorio di Informatica ed in particolare la Prof.ssa F. Pitolli % Tutti gli studenti del corso ( per la pazienza e la dedizione dimostrate durante le lezioni in laboratorio ) 70