Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB"

Transcript

1 Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB Che cos è? Programmare con Matlab: Script-files È un file con estensione.m (ad esempio: myfile.m). Contiene una sequenza di istruzioni Matlab, scritte come se fossero digitate in modalità interattiva. Digitando il nome di uno script-file a destra del prompt: >> myfile vengono eseguite in successione tutte le istruzioni contenute nel file. Le variabili assegnate in uno script-file sono visibili dall esterno, ovvero persistono in memoria al termine dell esecuzione. Alcune buone regole Il nome di uno script-file deve essere diverso dai nomi delle variabili che esso elabora e dai nomi delle variabili presenti in Workspace, altrimenti non verrà eseguito.

2 Non assegnare ad uno script-file il nome di una funzione predefinita di Matlab. Per verificare se un nome esiste già: >> exist( nome ) Esempio Scrivere uno script-file che dato n N, calcoli il fattoriale n! = (n 1) n Per genereare un nuovo script-file selezioniamo dal menu: file new Mfile fattoriale.m n=input( inserisci numero intero positivo ) fact=prod([1:n]) disp( fattoriale= ) disp(fact) Risolvere Esercizio 1. 2

3 Grafici-2D Il più semplice comando Matlab per disegnare un grafico è : plot(x,y) dove x = (x 1,..., x n ) e y = (y 1,...,y n ) sono 2 vettori di ugual dimensione. Il comando plot(x,y) rappresenterà in una finestra grafica una linea che collega i punti di coordinate (x i, y i ), i = 1,...,n Esempio Disegnare il grafico della funzione f(x) = 2 sin(x) cos(x) + 2x nell intervallo [0, π/2] >> x=linspace(0, pi/2,10); >> y=2*sin(x).*cos(x)+2*x; >> plot(x,y) Basta un solo comando per valutare f in un vettore di punti grazie alle operazioni componente per componente; inoltre le funzioni matematiche (quali sin e cos) applicate a vettori eseguono l operazione componente per componente. Se cambio il vettore delle ascisse x devo ricalcolare il vettore y contenente i valori assunti dalla funzione f nei nuovi punti prima di fare il grafico: >> x=linspace(0,pi); >> y=2*sin(x).*cos(x)+2*x; >> plot(x,y) 3

4 Sarà utile, per non dover manualmente ripetere la successione di istruzioni ogni volta che si cambia un parametro, memorizzare il lavoro in uno script-file Il comando plot prevede la possibilità di scegliere il tipo di linea, il suo colore, ecc (vedi help plot). La sintassi generale è: 4

5 plot(x1, y1, specifiche linea1 ) Per esempio per una linea rossa tratteggiata plot(x,y, r-- ) Il comando doc LineSpec mostra una lista di tutte le opzioni disponibili per specificare lo stile della linea. L istruzione plot crea una nuova finestra grafica solo se non ci sono finestre grafiche già aperte, altrimenti utilizza l ultima finestra creata, e sovrascrive il nuovo grafico a quello creato in precedenza. Pertanto se vogliamo visualizzare contemporaneamente i grafici di due funzioni f(x) = sin(x) + x, g(x) = x 2 + cos(x) x [0, π] abbiamo due possibilità: possiamo disegnare il grafico di f e aggiungere successivamente il grafico di g specificando a Matlab di non cancellare il primo grafico tramite il comando hold on >> x=linspace(0,pi); >> fx=sin(x)+x; >> plot(x,fx, r ) >> hold on >> gx=x.^2+cos(x); >> plot(x,gx, b ) possiamo disegnare i due grafici contemporaneamente con un solo comando plot 5

6 >> x=linspace(0,pi); >> fx=sin(x)+x; >> gx=x.^2+cos(x); >> plot(x,fx, r,x,gx, b ) Se desideriamo 2 grafici in 2 diverse finestre scriveremo: x=linspace(0,pi); fx=sin(x)+x; figure(1) plot(x,y) figure(2) gx=x.^2 +cos(x); plot(x,gx) dove figure genera una nuova finestra e la numera come indicato. 6

7 I comandi title, xlabel,ylabel,legend ci permettono di completare il nostro grafico con un titolo, delle etichette sugli assi e una legenda: >> x=linspace(0,pi); >> fx=sin(x)+x; >> gx=x.^2 +cos(x); >> plot(x,fx, r, x,gx, b ) >> title( Grafici di funzioni ) >> xlabel( Asse x ) >> ylabel( Asse y ) >> legend( f, g ) 9 8 f g 7 6 Asse y Asse x Il comando grid inserisce una griglia sul grafico. Risolvere Esercizio 2. 7

8 Rappresentazione dei numeri reali: È impossibile rappresentare su un calcolatore l infinità dei numeri reali. Si lavora con un sottoinsieme di dimensione finita: l insieme dei numeri floating-point (virgola mobile) o numeri macchina. 2/3 = 0.6, 1/3 = 0.3 1/e = >> 2/ >> 1/ >>1/ exp(1) I numeri reali vengono arrotondati. Usare solo 4 cifre decimali per rappresentare i numeri sarebbe molto grossolano, ma questo è solo un possibile formato del sistema per visualizzare un numero reale che non coincide con la sua rappresentazione interna. Quest ultima è data appunto dal numero floating point che più si avvicina ad numero reale e si vede meglio cambiando il formato di visualizzazione. 8

9 Altri possibili formati sono: >> format short e >> 2/ e-01 >> 1/ e-01 >> 1/exp(1) e-01 Att.ne! Nell espressione e-01, ad esempio, la e indica l esponente nella potenza di 10 per cui si intende moltiplicato il numero (6.6667e-01= ) e non ha nulla a che vedere con il numero di Nepero e = 2, ! >> format long >> 2/ >>1/3 ans=

10 >> 1/exp(1) >> format long e >> 2/ e-01 >> 1/ e-01 >> exp(1) e-01 Per rappresentare i numeri macchina (floating point) Matlab utilizza la rappresentazione in doppia precisione, con la quale è possibile rappresentare ogni numero reale x che si trova approssimativamente negli intervalli: x x Le variabili predefinte realmax, realmin di Matlab contengono il più grande ed il più piccolo numero macchina diverso da zero rappresentabili in doppia precisione 10

11 >> realmax e+308 >> realmin e-308 In particolare ad un numero maggiore di realmax Matlab associa il valore Inf o infinito. Quindi ad esempio: >> 2*realmax Inf Nota: Matlab riesce a rappresentare numeri più piccoli di realmin cambiando la rappresentazione ed utilizzando parte dei bit normalmente utilizzati per la mantissa per l esponente. Questo comporta una predita di cifre significative rispetto agli altri numeri macchina se tale perdita supera una certo livello allora Matlab restituisce semplicemente 0. >> realmin/ e-3090 >> realmin/1e+16 0 Risolvere Esercizio 3. 11

12 Una conseguenza dell approssimazione dei numeri reali con numeri macchina è la costante presenza di errori di arrotondamento che con l esecuzione di successive operazioni aritmetiche si possono propagare ed accumulare, per questo motivo in aritmetica finita il risultato calcolato dipenderà dalla sequenza con cui vengono eseguite le varie operazioni. Se x è una quantità esatta ed x è una sua approssimazione x x, x x x sono detti rispettivamente errore assoluto ed errore relativo. Esempio di non associatività. Alcune proprietà delle operazioni in aritmetica esatta possono non valere in aritmetica finita in virgola mobile (floating point). Ad esempio: >> a=1.0e+308; >> b=1.1e+308; >> c=-1.001e+308; >> (a+b)+c Inf >> a+(b+c) e

13 Esempio di cancellazione numerica. In aritmetica esatta, usando la nota identità (a+b)(a b) = a 2 b 2, si ottiene facilmente x2 + 1 x = 1 x x x R. (1) Calcolando con Matlab: >> x= ; >> y1=sqrt(x^2+1)-x y1 = 0 >> y2=1/(sqrt(x^2+1)+x) y2 = e-09 >> err=abs((y1-y2)/y2) err = 1 In vista della uguaglianza (1), in aritmetica esatta i valori y1 e y2 dovrebbero essere uguali, e l errore relativo err nullo. In realtà si osserva che i risultati ottenuti (y1 e y2) sono assai diversi. Il risultato finale dipende fortemente da come viene effettivamente calcolata la funzione (errore di arrotondamento, dovuto all artitmetica finita del calcolatore). Il risultato corretto è y2, mentre il risultato dato da y1 è soggetto a un fenomeno di cancellazione. 13

14 L errore relativo che si commette approssimando un numero reale x con il numero floating point fl(x) è tale che fl(x) x x C ǫ M ǫ M = β 1 t è detto epsilon macchina, dove β è la base e t il numero di cifre significative dell insieme dei numeri macchina considerato. Nel caso della doppia precisione β = 2 e t = 53. ǫ M può anche essere definito come il più piccolo numero macchina positivo tale che fl(1 + x) > 1. ǫ M non va confuso con il più piccolo numero rappresentabile in un sistema floating point, esso definisce invece una stima di quanto può variare al più l errore relativo quando si approssima un numero reale con un numero macchina. In Matlab è predefinita la variabile eps contenente il valore dell epsilon macchina ǫ M. >> eps e-16 Esercizio Calcolare ǫ M scrivendo un breve codice che implementi la seguente ricorrenza: e 0 = 1/2, k = 0 se e k + 1 > 1 e k+1 = e k /2 altrimenti STOP (2) 14

15 Soluzione: Come ogni linguaggio di programmazione Matlab possiede istruzioni per effettuare cicli. Nel codice sotto riportato vediamo un esempio di utilizzo dell istruzione while, che permette di ripetere ciclicamente un certo insieme di istruzioni fintanto che una data condizione è verificata. >> e=1/2;k=0; >> while (e+1)>1 e=e/2; k=k+1; end >> e=2*e e = e-16 >> k k= 52 Risolvere Esercizi 4,5,6. 15

Algoritmi stabili e instabili

Algoritmi stabili e instabili Algoritmi stabili e instabili Laboratorio di Calcolo Numerico 13 Marzo 2018 Vettori in MATLAB Finora abbiamo pensato alle variabili utilizzate come semplici valori numerici (variabili scalari). In realtà,

Dettagli

Calcolo Numerico I - a.a Laboratorio 1 - Introduzione a MATLAB

Calcolo Numerico I - a.a Laboratorio 1 - Introduzione a MATLAB Calcolo Numerico I - a.a. 2010-2011 Laboratorio 1 - Introduzione a MATLAB MATLAB =MAT(rix)-LAB(oratory) è un ambiente integrato per il calcolo scientifico utilizzabile sia in maniera interattiva che come

Dettagli

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB Complementi di Matematica e Calcolo Numerico A.A. 2013-2014 Laboratorio 1 - Introduzione a MATLAB MATLAB =MAT(rix)-LAB(oratory) è un ambiente integrato per il calcolo scientifico utilizzabile sia in maniera

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Claudia Zoccarato E-mail: [email protected] Dispense: Moodle Dipartimento ICEA 22 Marzo 2017 Vettori in

Dettagli

Calcolo Numerico I - a.a Laboratorio 3 - Introduzione a MATLAB

Calcolo Numerico I - a.a Laboratorio 3 - Introduzione a MATLAB Calcolo Numerico I - a.a. 2010-2011 Laboratorio 3 - Introduzione a MATLAB Grafica 2D in Matlab Per tracciare in Matlab il grafico di una funzione y = f(x) per un intervallo assegnato di valori della variabile

Dettagli

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica, Numeri di macchina Lucia Gastaldi DICATAM - Sez. di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Rappresentazione dei numeri Formato di memorizzazione dei numeri Arrotondamento di un numero reale

Dettagli

CORSO DI LABORATORIO DI INFORMATICA

CORSO DI LABORATORIO DI INFORMATICA CORSO DI LABORATORIO DI INFORMATICA Corso di Laurea Triennale in Ingegneria Elettrica a.a. 2015/2016 Docente: Ing. Domenico Amalfitano Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

Esercizi proposti di Analisi Numerica

Esercizi proposti di Analisi Numerica Esercizi proposti di Analisi Numerica Silvia Bonettini Dipartimento di Matematica, Università di Ferrara 30 gennaio 2012 1 Conversioni, operazioni di macchina e analisi dell errore 1. Convertire i numeri

Dettagli

Uso avanzato di MATLAB

Uso avanzato di MATLAB Uso avanzato di MATLAB Miscione Giuseppe [email protected] Indice Funzioni matematiche Funzioni di arrotondamento Disegnare funzioni Creare script Controllo del flusso di esecuzione 1 Funzioni matematiche

Dettagli

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point) ASA Marzo Docente Salvatore Mosaico Introduzione al Calcolo Numerico (parte ) CALCOLO NUMERICO Obiettivo del calcolo numerico è quello di fornire algoritmi numerici che, con un numero finito di operazioni

Dettagli

I numeri reali e la loro rappresentazione

I numeri reali e la loro rappresentazione I numeri reali e la loro rappresentazione 1 Alcune figure di questi appunti riportano nei commenti esempi in linguaggio MATLAB. In tali esempi i caratteri di peso normale sono prodotti dal computer mentre

Dettagli

Introduzione al MATLAB c Parte 2 Funzioni

Introduzione al MATLAB c Parte 2 Funzioni Introduzione al MATLAB c Parte 2 Funzioni Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Funzioni matematiche Assegnazione di funzioni 2 Grafico di funzione in

Dettagli

Laboratorio di Matematica Computazionale A.A Lab. 4

Laboratorio di Matematica Computazionale A.A Lab. 4 Laboratorio di Matematica Computazionale A.A. 2008-2009 Lab. 4 Complementi di Grafica 2D: Sottofinestre In Matlab si possono disegnare più grafici nella stessa finestra, suddividendola in sottofinestre

Dettagli

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

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011 Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011 L esame consiste di 4 domande aperte e 10 esercizi a risposta multipla. Per gli esercizi ci sono

Dettagli

Matlab: Variabili e Array. Informatica B

Matlab: Variabili e Array. Informatica B Matlab: Variabili e Array Informatica B Array e variabili L unità fondamentale di dati in MATLAB è l array Una variabile in MATLAB è una regione di memoria che contiene un array Ha un nome definito dall

Dettagli

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011 Esame di Calcolo Numerico per Informatica A.A. 200/: testo soluzioni Proff. S. De Marchi e M. R. Russo 2 luglio 20 L esame consiste di 4 domande aperte e 0 esercizi a risposta multipla. Per gli esercizi

Dettagli

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof.

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof. GLI ERRORI Prof. Almerico Murli a.a. 2002-2003 1 Problema valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso 2 Esempio Si vuole approssimare x = 10.1294 con

Dettagli

Rappresentazione binaria

Rappresentazione binaria Rappresentazione binaria Per informazione intendiamo tutto quello che viene manipolato da un calcolatore: numeri (naturali, interi, reali,... ) caratteri immagini suoni programmi... La più piccola unità

Dettagli

Laboratorio di Calcolo Numerico

Laboratorio di Calcolo Numerico Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti

Dettagli

MATLAB Elementi di grafica Costrutti di programmazione

MATLAB Elementi di grafica Costrutti di programmazione MATLAB Elementi di grafica Costrutti di programmazione Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per

Dettagli

Rappresentazione dei numeri reali in un calcolatore

Rappresentazione dei numeri reali in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri reali in un calcolatore Lezione 3 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione di numeri

Dettagli

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

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton. Anno Accademico 2007-2008 Corso di Analisi 1 per Ingegneria Elettronica Laboratorio 2 Calcolo simbolico, limiti e derivate. Metodo di Newton. 1 Introduzione al Toolbox simbolico Con le routines del Symbolic

Dettagli

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Esercitazione 4. F (x) = x + log x. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h.

Esercitazione 4. F (x) = x + log x. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h. Esercitazione 4 Istruzioni trattate: grid, legend, plotd, and. Nella prima parte di questa esercitazione vedremo una realizzazione di un metodo ad un punto e la utilizzeremo per approssimare il punto unito

Dettagli

Rappresentazione dei Numeri

Rappresentazione dei Numeri Rappresentazione dei Numeri Rappresentazione dei Numeri Il sistema numerico binario è quello che meglio si adatta alle caratteristiche del calcolatore Il problema della rappresentazione consiste nel trovare

Dettagli