MATLAB
Outline Grafica 2D Esercizi Grafica 3D
Grafica In MATLAB è possibile disegnare funzioni in 2D e 3D rapprensentare graficamente dei dati Il comando si usa: per rappresentare punti nel piano per disegnare il grafico di una funzione x e y devono essere vettori di ugual misura plot(x,y) MATLAB possiede numerose capacità grafiche che consentono di rappresentare dati memorizzati in vettori e matrici.
Esempio I Per rappresentare dei punti nel piano x = [1 2 3 7 -9 2]; y = [-2 -6 1 5 7 2]; plot(x,y) figure(2) plot(x,y,'*') Il comando plot(x,y) disegna una spezzata nel piano i vettori x e y hanno la stessa lunghezza (se cosi nn fosse otterremmo un errore)
Esempio II Per “plottare” la funzione y=sin(x) x = [-pi:.01:pi]; definiamo l’intervallo in cui vogliamo disegnare la funzione x = [-pi:.01:pi]; y = sin(x); plot(x,y) definiamo la funzione La funzione plot(x,y) rappresenta graficamente la tabella di valori ottenuta raccordando con segmenti di retta nel piano cartesiano (x;y) i vertici (x(i);y(i)) in modo ordinato al variare di i da x(1) a x(end). Se vogliamo evidenziare i vertici della poligonale possiamo utilizzare l’istruzione plot(x,y,’-g’) che disegna i punti (x(i);y(i))) in verde. La funzione nn cambia, sono i parametri di ingresso che cambiano, il terzo parametro aggiunto serve a specificare lo stile della linea del grafico (pallini in verde) disegniamo la funzione plot(x,y, ‘og') è possibile inserire un terzo parametro di input
Risultati plot(x,y) plot(x,y,’-g’)
Sintassi del comando “plot” x e y sono i vettori dei dati (ascisse e ordinate dei punti) x e y come sopra; opzioni è una stringa opzionale che definisce il tipo di colore, di simbolo e di linea usato nel grafico. help plot per vedere quali sono le varie opzioni realizza il grafico del vettore y rispetto ai propri indici plot(x, y) plot(x, y, 'opzioni') plot(y)
axis([xmin xmax ymin ymax]) Comandi utili per creare (richiamare) una finestra grafica per avere più grafici nella stessa finestra hold off per disattivare la funzione per riscalare il grafico figure(num) hold on Il comando hold on fa sovrapporre tutti i grafici successivi nella finestra grafica. Il comando hold off ritorna all’impostazione originale La funzione axis([xmin xmax ymin ymax]) impone che l’intervallo di valori di x sia compreso tra xmin e xmax e quello di y tra ymin e ymax axis equal permette di avere un grafico con assi monometrici axis([xmin xmax ymin ymax])
Esempio Per “plottare” insieme i grafici delle funzioni seno e coseno clear; close all; figure(1); hold on; grid on; x = [-pi:.01:pi]; y1 = sin(x); y2 = cos(x); plot(x,y1,’b’); plot(x,y2,’r’) title(‘seno e coseno’) legend(‘seno’,’coseno’)
Risultato
Max Trovare il max della funzione nell’intervallo [-2,2] y = exp(-x.^2).*cos(pi*x); plot(x,y) massimo = max(y);
function [y_v] = disegna(n, k) Esercizio 1 Creare un m-file funzione di n e k (interi positivi, maggiori di zero) che nell’intervallo [-n,n] disegni la parabola y = kx2+2k abbia come output il vertice della parabola function [y_v] = disegna(n, k)
Grafica 3D I Vogliamo rappresentare la funzione nel dominio rettangolare [0,1]x[0,1]. Per rappresentare la superficie dobbiamo costruire una matrice in corrispondenza della quale valutare la funzione per costruire la griglia si usa il comando f(x,y) = x(1 − x)y(1 − y) x = [0:.025:1]; y = [0:.025:1]; [X Y] = meshgrid(x,y);
Grafica 3D II La funzione meshgrid crea 2 matrici X, Y la i-esima colonna di X contiene i valori x(i) la i-esima riga di Y contiene i valori y(i) Per creare il grafico della funzione Z è una matrice t.c. Z(i,j)=f(X(i,j), Y(i,j)) Z = X.*(1-X).*Y.*(1-Y); surf(X,Y,Z); xlabel('x');ylabel('y');zlabel('z'); figure(2); mesh(X, Y, Z) La rappresentazione grafica realizzata da mesh è l’analogo in più dimensioni del comando plot. In questo caso si raccordano i punti a quattro a quattro con “pezze” piane (parti di piano che passano per i quattro punti). Utilizzando invece la funzione surf le varie pezze vengono colorate opportunamente. In generale il grafico di superfici può essere personalizzato in diversi modi. Le opzioni più comuni sono date dai comandi axis, title, xlabel, ylabel, e zlabel
Ecco il grafico surf(X,Y,Z) mesh(X,Y,Z)
Esercizio 2 Scrivere una function con input n (reale positivo minore di 15) nell’intervallo [-n,n]x[-n,n] utilizzando i comandi mesh e surf. f(x,y) = (x - y) sin(x2 + y2)