Introduzione agli ambienti



Documenti analoghi
Introduzione agli ambienti MATLAB c e Octave

Introduzione all ambiente MATLAB

Introduzione al MATLAB c Parte 1

Introduzione al MATLAB c

INTRODUZIONE A MATLAB Matrix Laboratory

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

MATLAB (1) Introduzione e Operazioni con array

Introduzione a MATLAB. Il Laboratorio. MATLAB Cos è? Oltre alle lezioni. Octave ( ) Scilab ( )

MATLAB c Utilizzo di Matlab. Operazioni fondamentali. Elementi di grafica.

Grafici tridimensionali

Lab. 1 - Introduzione a Matlab

Introduzione a MATLAB

MATLAB (3) - Grafica 2 e 3D

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

UD6 - MATLAB. Gestione della grafica

Dati importati/esportati

LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente

Finestre grafiche. >> figure >> figure(n)

Introduzione a Matlab

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Visualizzazione grafica. dell'output di un programma con GNUplot

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Introduzione al Foglio Elettronico

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Introduzione al MATLAB c Parte 2

Laboratorio di Matlab

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

Utilizzo di index() per determinare la colonna delle x

FON DAMEN TI DI IN FORMATICA

Introduzione a MATLAB INTRODUZIONE A MATLAB

Interpolazione di immagini

Esempio di prova di laboratorio

Introduzione al MATLAB c Parte 1 Variabili ed array

Interpolazione ed approssimazione di funzioni

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

MATLAB: Una veloce introduzione (Parte II)

I grafici. Dati numerici. Grafico

MATLAB-SIMULINK. Grafici 2D e 3D. Ing. Alessandro Pisano. pisano@diee.unica.it

INFORMATICA - I puntatori Roberta Gerboni

Tipi di dato-prima parte

Lezioni su MATLAB. Ingegneria Civile/Meccanica

Le variabili. Olga Scotti

MATLAB Elementi di grafica Costrutti di programmazione

Introduzione al MATLAB c

L analisi dei dati. Capitolo Il foglio elettronico

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Laboratorio 2. Calcolo simbolico, successioni, limiti e derivate

Advanced level. Corso Matlab : Samuela Persia, Ing. PhD.

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Introduzione al MATLAB c Parte 1 Variabili ed array

Ipsia Monza via Monte Grappa Monza (MI) tel fax Corsi CAD 2D Base. Struttura modulare

Alcune regole di base per scrivere un programma in linguaggio C

STRUMENTI DI PRESENTAZIONE MODULO 6

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Rapida Introduzione all uso del Matlab Ottobre 2002

Matlab: Strutture di Controllo. Informatica B

Funzioni. Funzioni /2

RETI DI TELECOMUNICAZIONE

Salvare e importare dati

Software di calcolo numerico, analisi, statistica e simulazione. Un esempio pratico: Octave

Variabili e tipi di dato

Laboratorio di Matlab

Introduzione a ROOT. 1. Informazioni generali

2 a lezione - laboratorio

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

Lezione 8. La macchina universale

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Introduzione a SAGE Math

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

INTRODUZIONE A MATLAB/OCTAVE

RISOLUTORE AUTOMATICO PER SUDOKU

Test Excel conoscenze di Base

SPECIFICHE E LIMITI DI EXCEL

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

Corso di PHP. Prerequisiti. 1 - Introduzione

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Metodi Stocastici per la Finanza

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Grafici in matlab. Un esempio di grafico: xv = 3:0.1:3; yv = xv.^3 5*xv.^2 + 4; plot(xv,yv) xlabel('value of x') ylabel('value of y')

Scilab: La Grafica. Corso di Informatica CdL: Chimica. Claudia d'amato.

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

Introduzione al MATLAB c

Cenni sull'impiego di Matlab. Matrici

Note sull uso di R per l Algebra Lineare

Gli algoritmi: definizioni e proprietà

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

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

Comandi di Input/Output in Matlab

Maxima: mini guida. Presentazione del software matematico MAXIMA

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

MANUALE PARCELLA FACILE PLUS INDICE

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3

Prof.ssa Paola Vicard

Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon

Transcript:

Introduzione agli ambienti MATLAB c e Octave Utilizzo di Matlab/Octave ed operazioni fondamentali. Primi rudimenti di grafica. Paola Gervasio 1

MATLAB = MATrix LABoratory è un ambiente integrato per la programmazione e la visualizzazione Octave è definito come un interprete per linguaggio di alto livello. hanno una buona potenzialità grafica (integrata per Matlab, basata su gnuplot per Octave) esistono versioni per Unix/Linux, Windows, Mac. i files sono portabili da una piattaforma all altra e da matlab a octave e viceversa. Octave NON è la versione free di Matlab, ma è largamente compatibile con Matlab. È distribuito gratuitamente qui: http://www.gnu.org/software/octave/ 2

Hanno funzioni intrinseche molto potenti (es: risoluzione di sistemi lineari, calcolo di autovalori e autovettori di una matrice) ed esistono toolbox o packages (librerie di software specifico -file scritti in linguaggio matlab-): - Control System - Signal Processing - Statistics - Neural Networks - Fuzzy Logic - Communications -... Prompt di Matlab: >> Prompt di Octave: octave:1> Le istruzioni che vediamo ora sono valide sia per Matlab che per Octave. 3

>>a=1.54 Assegnazione di variabili scalari a nome della variabile (max 31 caratteri alfanumerici, il primo dei quali non deve essere un numero) 1.54 valore numerico assegnato alla variabile. Il comando >> a=1.54 produce a = 1.5400 >> a=1.54; non produce risposta 4

>> 1.67 produce ans = 1.6700 ans è il nome della variabile di default. >> a produce a = 1.5400 per visualizzare il contenuto della variabile a >> b=1+1/2+5/3+1/4+23/6+... 2/9+1/10; per poter spezzare un istruzione troppo lunga 5

^ potenza * prodotto / divisione + somma - differenza Operazioni aritmetiche Es: per calcolare x = 3+53 2/3 4(5+2 4 ) >> x=(3+5^3-2/3)/(4*(5+2^4)) Sono osservate le precedenze classiche dell artimetica Per alterare le precedenze si utilizzano esclusivamente le parentesi tonde 6

>> whos Name Size Bytes Class a 1x1 8 double array ans 1x1 8 double array b 1x1 8 double array x 1x1 8 double array Di default, Matlab/Octave lavorano con variabili in doppia precisione. Ogni numero memorizzato in doppia precisione occupa 8 Bytes. Le variabili scalari sono viste come array di dimensione 1x1 (una riga e una colonna). OSS. Di default lettere maiuscole e minuscole sono considerate diverse sia nei comandi che nei nomi delle variabili. 7

Formato di rappresentazione dei numeri >> c=0.456723 c = 0.4567 >> format short e >> c c = 4.5672e-01 Il numero è stato rappresentato con 5 cifre Forma esponenziale con 5 cifre per la mantissa >> format long e >> c c = 4.567230000000000e-01 Forma esponenziale con 16 cifre per la mantissa >> format long >> c c = 0.45672300000000 Il numero è rappresentato con 15 cifre 8

Di default viene utilizzato il formato format short. Per tornare a questo formato di rappresentazione: >> format short N.B. Il formato di rappresentazione può cambiare, ma il formato di memorizzazione dei numeri è sempre lo stesso (8Bytes). Variabili predefinite pi π i, j 1 unità immaginaria NaN not a number eps 2.2204e-16 precisione di macchina 9

Il contenuto di queste variabili può essere variato con una semplice operazione di assegnazione: >> pi=18 pi = 18 Per riassegnare alla variabile pi il valore π: >> clear pi >> pi ans = 3.1416 Per cancellare il contenuto della variabile a: >> clear a Per cancellare il contenuto di tutte le variabili: >> clear 10

Assegnazione di array >> a=[1 2 3 4]; >> a=[1,2,3,4]; >> a=(1:4); Modi equivalenti per generare un array 1x4, 1 riga e 4 colonne, vettore riga >> a a = 1 2 3 4 >> b=[1;2;3;4] b = 1 2 3 4 Per generare un array 4x1, 4 righe e 1 colonna, vettore colonna 11

>> c=[5 3 4; 2 4-2] c = 5 3 4 2 4-2 Per generare un array 2x3, matrice 2 righe e 3 colonne Lo spazio o la virgola separano elementi sulla stessa riga. Il punto e virgola separa le righe. Operazione di trasposizione: >> a ans = 1 2 3 4 >> a1=a Il vettore trasposto di a viene memorizzato nella variabile ans Il vettore trasposto di a viene memorizzato nella variabile a1 12

Analogo discorso vale per la trasposizione di matrici: >> c1=c c1 = 5 2 3 4 4-2 >> whos Name Size Bytes Class a 1x4 32 double array ans 4x1 32 double array b 4x1 32 double array c 2x3 48 double array c1 3x2 48 double array 13

>> a(2) ans = 2 >> c(2,1) ans = 2 >> d=c(1,:) d = 5 3 4 >> e=c(:,1:2) e = 5 3 2 4 Per accedere ad un elemento di un vettore Per accedere ad un elemento di una matrice Per estrarre la prima riga di una matrice Per estrarre le prime due colonne di una matrice 14

>> b(3)=5 b = 1 2 5 4 >> c(1,3)=18 c = 5 3 18 2 4-2 Per modificare un elemento di un vettore. Se non si utilizza il ; viene visualizzato l array completo Per modificare un elemento di una matrice. 15

Operazioni su array + somma di vettori o matrici (elemento per elemento) - differenza di vettori o matrici (elemento per elemento) * prodotto tra vettori e/o matrici (righe per colonne) Sono le operazioni dell algebra lineare; quindi: per somma e differenza: gli operandi devono avere le stesse dimensioni per il prodotto: la dimensione interna dei due array deve coincidere. >> a1+b entrambi vettori colonna 4x1 ans = 2 4 8 8 16

>> a-b??? Error using ==> - Matrix dimensions must agree. >> a*b ans = 36 >> c*d ans = 358-14 a =vettore riga (1x4) b =vettore colonna (4x1) (1x4)(4x1) -prodotto scalare- >> d*c??? Error using ==> * Inner matrix dimensions must agree. (2x3)(3x1) -prodotto matrice vettore- (3x1)(2x3) - prodotto non possibile- 17

Esistono poi le operazioni punto che agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per elemento.^ potenza elemento per elemento >> a1b=a1.*b a1b = 1 4 15 16 (a1b) i = (a1) i b i con a1 = 1 2 3 4 e b = 1 2 5 4 18

Funzioni matematiche e grafica >> f=@(x)[(2*x-sqrt(2))^2*sin(2*x)] f = @(x)[(2*x-sqrt(2))^2*sin(2*x)] >> whos Name Size Bytes Class f 1x1 32 function_handle f è un function handle (nome di funzione) e occupa 32 Byte. Per valutare f in un punto: >> x=1.718; y=f(x) oppure >> y=f(1.718) 19

Problema 1: valutare f(x) = x 2 cos(x) sull intervallo I = [ 1, 2] e rappresentarla graficamente. 1) Definire una griglia sull intervallo I = [ 1, 2], ovvero scegliere un insieme discreto di punti rappresentativo per I: >> x=linspace(-1,2,50); 2) Definire la funzione e valutarla: >> f=@(x)[x.^2.*cos(x)]; >> y=f(x); Crea un vettore riga di 50 elementi, contenente i valori di 50 punti equispaziati in I x è un vettore, si vuole calcolare y i = x 2 i cos(x i) per ogni i, quindi si devono usare le operazioni. 3) Rappresentare i punti (x i,y i ) su di un piano cartesiano: >> plot(x,y) 20

La sintassi del comando plot è: plot(x,y, color linestyle marker ) >> plot(x,y, m-* ) color: c,m,y,r,b,g,w,k linestyle: -,--,:,-.,none marker: +,o,*,.,x,s Per disegnare 2 o più coppie di vettori sullo stesso grafico: >> g=@(x)[sin(x).*exp(x)]; >> yg=g(x); >> plot(x,y, b:,x,yg, r- ); 21

Per conoscere nel dettaglio tutte le opzioni di un comando, oppure se non ci si ricorda la sintassi del comando: help nome comando >> help plot Se non ci si ricorda il nome del comando, ma si vuole fare una ricerca per parola chiave (in inglese), oppure se si cercano tutti i comandi che facciano riferimento ad una parola chiave: lookfor parola chiave >> lookfor plot 22

Funzioni matematiche intrinseche sqrt(x) x round(x) arrotondamento: round(3.6)=4 fix(x) parte intera del numero: fix(3.6)=3 sign(x) segno di x (vale -1, 0 o 1) sin(x), cos(x), tan(x) sin(x), cos(x),tan(x) sinh(x), cosh(x), tanh(x) sinh(x), cosh(x), tanh(x) asin(x), acos(x), atan(x) arcsin(x), arccos(x), arctan(x) exp(x), log(x), log10(x) e x, log e (x), log 10 (x) Per z complesso: >> z=3+i*4 real(z) parte reale di z imag(z) parte immaginaria di z conj(z) complesso coniugato di z 23

Generazione di un m-file (Il lavoro con Octave è simile) Problema 2: Creazione di un grafico 2D. Disegnare f(x) = (2x 2)sin(2x) e g(x) = e x cos(x) sull intervallo I = [ 1, 2]. 4 Rappresentazione grafica di funzioni 3 f(x)=(2x sqrt(2)) sin(2x) g(x)=e x cos(x) 2 1 f(x) 0 1 2 3 4 1 0.5 0 0.5 1 1.5 2 x 24

Dal menù della finestra di Matlab, selezionare File, poi New e poi M-file. Si apre una finestra dell Editor/Debug. Si scrivono i comandi matlab. clf; f=@(x)[(2*x-sqrt(2))*sin(2*x)]; fplot(f,[-1,2]) xlabel( x ); ylabel( f(x) ) title( Rappresentazione grafica di funzioni ) hold on g=@(x)[exp(x)*cos(x)]; fplot(g,[-1,2], r ) legend( f(x)=(2x-sqrt(2)) sin(2x), g(x)=e^x cos(x) ) hold off 25

Per salvare il contenuto del file: dal menù dell Editor selezionare File, Save as. Specificare il direttorio in cui salvare (es: c:\tmp o e:\ ) ed il nome per il file (es: dis2d.m). N.B. L estensione dei file matlab è sempre m. Dalla finestra dei comandi matlab: >> addpath c:\tmp oppure >> addpath e:\ per dire di cercare il file in tale direttorio, quindi richiamare il file generato, dando il nome del file stesso: >> dis2d 26

Matlab/Octave segnala errori? 1) Leggere il tipo di errore 2) Tornare nell editor, cercare l errore e modificare il file 3) Salvare le modifiche effettuate 4) Tornare alla finestra dei comandi Matlab e ridare il comando >> dis2d 27

Grafici 3D Problema: Rappresentare graficamente f(x,y) = xe (x2 +y 2 ) sul dominio Ω = [ 2,2] 2. 01 01 j 01 01 2 01 01 1 1 00 11 00 11 00 11 00 11 00 11 00 11 2 00 11 00 11 00 11 00 11 00 11 00 11 01 01 01 0000000 1111111P 0000000 1111111 0000000 1111111 ij (x ij,y ij ) 01 01 01 01 01 01 i 01 01 01 01 00 11 00 11 01 01 Anzitutto bisogna definire una griglia su Ω. >> [x,y]=meshgrid(-2:.1:2,-2:.1:2); x e y sono due matrici. >> clf Per pulire la figura precedente >> f=@(x,y)[x.*exp(-x.^2-y.^2)]; >> z=f(x,y); surf(x,y,z); colorbar 28

Altri comandi di grafica 3D: >> mesh(x,y,z) Superficie >> meshc(x,y,z) Superficie e countour-lines >> surfc(x,y,z) Superficie e countour-lines >> pcolor(x,y,z) Superficie colorata piatta >> surf(x,y,z,gradient(z)) Superficie colorata secondo la grandezza di z/ x >> contour(x,y,z) Contour-lines (linee di livello) >> plot3(x,y,z) Linee lungo la direzione y serve anche per disegnare linee in 3D 29

Per creare più figure, basta anteporre al comando di disegno l istruzione figure(k) dove k è un numero intero positivo di una figura non attiva. Es:. >> mesh(x,y,z); >> figure(2); surf(x,y,z,gradient(z)); >> figure(3); plot3(x,y,z); Per passare il comando da una finestra all altra, al fine di modificare il grafico: >> figure(2) >> colorbar 30

Se si vuole una sola finestra con più grafici: >> figure(1) >> subplot(2,2,1); mesh(x,y,z); >> title( mesh ) >> subplot(2,2,2); surfc(x,y,z); >> title( surfc ) >> subplot(2,2,3); plot3(x,y,z); >> title( plot3 ) >> subplot(2,2,4); surf(x,y,z,gradient(z)); >> title( surf,gradient ) 31

Salvataggio e Stampa di una figura Per salvare la figura realizzata in formato matlab: Dal Menù della finestra grafica scegliere File, Save as; quindi scegliere il direttorio e il nome con estensione.fig. Per riaprire la figura, sempre dalla finestra grafica, scegliere File, Open e selezionare il nome del file. Per salvare la figura in formato jpeg dal Menù della finestra grafica si sceglie File, Export, si seleziona l estensione JPEG.jpg si specifica il nome del file. Altri formati:.ps,.eps,.tiff,.png,... 32

Disegno di una superficie attraverso le equazioni parametriche γ(r,θ) = ( rcos(θ), rsin(θ), θ ) x y z per r [0,2] e θ [0,6π]. [r,theta]=meshgrid(0:.1:2,0:.1:6*pi); x=r.*cos(theta); y=r.*sin(theta); z=theta; surf(x,y,z) 33

Generazione di un filmino (In Octave non c è il comando getframe, ma c è una procedura alternativa) Disegnare f(x,y,t) = 1 5 sin(x)ycos(t) per (x,y) [ π,π] 2 e t [0,2π] [x,y]=meshgrid(-pi:.5:pi); f=@(x,y,t)[sin(x).*y/5*cos(t)]; nframes=20; tt=linspace(0,2*pi,nframes); figure(1); clf Mv=moviein(nframes); for n=1:nframes t=tt(n); z=f(x,y,t); surf(x,y,z); axis([-pi pi -pi pi -1 1]); Mv(:,n) = getframe; end movie(mv,4); 34