La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Gennaio 2016

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELogistica Appello != compitino 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELogistica Appello != compitino (in teoria) 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELogistica Appello != compitino (in teoria) In pratica:  Appello del 4 Feb = 2ndo compitino 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELogistica Appello != compitino (in teoria) In pratica:  Appello del 4 Feb = 2ndo compitino  Non hai passato il 1mo compitino? 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELogistica Appello != compitino (in teoria) In pratica:  Appello del 4 Feb = 2ndo compitino  Non hai passato il 1mo compitino?  Ci si vede al 18 Feb 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Diagrammi 2D e 3D Funzioni di ordine superiore 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D Diagramma = insieme di coppie rappresentanti le coordinate dei suoi punti Si usano vettori per contenere sequenze ordinate dei valori di ognuna delle coordinate plot(x,y) disegna diagramma cartesiano dei punti che hanno  valori delle ascisse in x, delle ordinate in y  e li congiunge con una linea, per dare continuità al grafico funzioni xlabel per visualizzare nome asse ascisse, ylabel per ordinate, title per il titolo 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D: 1mo esempio 9 >> x = -10:0.1:10; >> y=x.^3; >> plot(x,y); >> xlabel('ascisse'); >> ylabel('ordinate'); >> title('cubica');

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diaggrami 2D: 2do esempio 10 >> x=[-8:0.1:8]; >> y= sin (x)./ x; >> plot(x, y); >> xlabel('ascisse'); >> ylabel('ordinate');

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEParticolarità plot(x,y)  x non contiene necessariamente un intervallo lineare uniforme di valori  y non è necessariamente funzione di x Sia x sia y possono essere funzioni di qualche altro parametro 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Particolarità: esempio 1 12 >> t=[0:pi/100:2*pi]; >> x=cos(t); >> y=sin(t); >> plot(x,y); >> xlabel('ascisse-x'); >> ylabel('ordinate-y');

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Particolarità: esempio 2 13 >> t=[0:pi/100:10*pi]; >> x=t.* cos(t); >> y=t.* sin(t); >> plot(x,y); >> xlabel('ascisse-x'); >> ylabel('ordinate-y'); 10*pi  5 giri t  10*pi  dist.max da origine 31,4

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi lineare a 3 dimensioni 14 >> t = 0:0.1:10*pi; >> plot3 (t.*sin(t), t.*cos(t), t); >> xlabel('ascisse'); >> ylabel('ordinate'); >> zlabel('quote'); Generalizzazione di quello a due: insieme di terne etc…  plot3(x,y,z) per digramma cartesiano con x ascisse, y ordinate, z quote  funzioni xlabel, ylabel, zlabel, title …

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi lineare a 3 dimensioni: funzione di mesh Funzione reale di due variabili reali z = f (x, y)  rappresentata in uno spazio cartesiano tridimensionale è una superficie funzione mesh genera superficie, a partire da tre argomenti: matrici xx, yy, zz che contengono ascissa (valore di x), ordinata (y) e quota (z)  per ogni punto di una griglia corrispondente a un rettangolo del piano xy  ll rettangolo è identificato dalla coppia di matrici xx e yy Le due matrici, xx, e yy, si ottengono, mediante la funzione meshgrid(x,y), a partire da vettori, x e y, che contengono i valori delle ascisse e delle ordinate  il rettangolo nel piano è determinato da x e y  l’insieme delle coordinate dei suoi punti è il prodotto cartesiano di x e y 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE meshgrid: come funziona A partire da vettori, x e y, che contengono i valori delle ascisse e delle ordinate [xx,yy]=meshgrid(x,y) genera due matrici entrambe di legth(y) righe × length(x) colonne  la prima, xx, contiene, ripetuti in ogni riga, i valori di x  la seconda, yy, contiene, ripetuti in ogni colonna, i valori di y’ (y trasposta) 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE meshgrid: un esempio funzione z = x + y grafico in 6 punti di ascisse {1, 3, 5} e ordinate {2, 4} 17 >> x=[1, 3, 5]; >> y=[2, 4]; >> [xx,yy]=meshgrid(x,y); >> zz=xx+yy; >> mesh(xx,yy,zz); >> xlabel('ascisse-x'); >> ylabel('ordinate-y'); >> xx xx = 1 3 5 >> yy yy = 2 2 2 4 4 4 >> zz zz = 3 5 7 5 7 9 Punti di coordinate (x,y)… (1,2) (3,2) (5,2) (1,4) (3,4) (5,4) …hanno coordinate (x,y,z) (1,2,3) (3,2,5) (5,2,7) (1,4,5) (3,4,7) (5,4,9) (NB: z=x+y)

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEVantaggi Il vettore con le z ottenuto con espressione uguale alla forma algebrica della funzione I vettori x e y da dare in pasto a meshgrid non si producono “a mano”  si ottengono con costrutto [v min :  : v max ] o altri simili… tipicamente si adotta una spaziatura uniforme tra i valori attenzione a non usare valore  troppo piccolo, altrimenti memoria insuffciente… 18

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE meshgrid: un secondo esempio 19 >> x=[1:1:3]; >> y=x; >> [xx,yy]=meshgrid(x,y) ; >> zz=xx+yy; >> mesh(xx,yy,zz); >> xlabel('x'); >> ylabel('y'); >> zlabel('z');

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE meshgrid: un paraboloide 20 >> x=[-4:0.05:4]; >> y=x; >> [xx,yy]=meshgrid(x,y); >> zz=xx.^ 2 + yy.^ 2; >> mesh(xx,yy,zz); >> xlabel('ascisse-x'); >> ylabel('ordinate-y'); >> zlabel('quote-z');

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE meshgrid: il Sombrero! 21 >> tx=[-8:0.1:8]; >> ty=tx; >> [xx, yy] = meshgrid (tx, ty); >> r = sqrt (xx.^ 2 + yy.^ 2); >> tz = sin (r)./ r; >> mesh (tx, ty, tz); >> xlabel('ascisse'); >> ylabel('ordinate'); >> zlabel('quote');

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili e funzioni di ordine superiore Versioni recenti di Matlab definiscono in modo pieno il tipo “funzione”, permettendo di  assegnare a variabili valori di tipo “funzione”  definire funzioni che ricevono parametri di tipo “funzione” Cosa si può fare con un valore di tipo funzione?  assegnarlo a una variabile (quindi passarlo come parametro)  applicarlo a opportuni argomenti: si ottiene una invocazione della funzione 22 / 44

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE handle: esempi Valori di tipo funzione denotati da variabili dette handle (riferimento / maniglia) A una handle possono essere assegnati valori di tipo funzione in due modi 1.indicando il nome di una funzione esistente (definita dall’utente o predefinita) 2.mediante la definizione ex novo di una funzione anonima 23 / 44

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE handle (1) Indicando il nome di una funzione esistente (definita dall’utente o predefinita) È semplice: nome della funzione (posto dopo ‘@’) denota la funzione stessa 24 >> f=@fact f = @fact >> f(4) ans = 24 >> seno=@sin seno = @sin >> seno(pi/2) ans = 1

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE handle (2) Mediante la definizione ex novo di una funzione anonima Espressione di tipo funzione:  simbolo @  lista dei parametri di ingresso, tra parentesi tonde  espressione che dà il risultato come funzione degli ingressi 25 >> sq=@(x)x^2 sq = @(x)x^2 >> sq(8) ans = 64

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni di ordine superiore Se il parametro attuale di una funzione F è di tipo funzione allora il parametro formale f  è una handle  può essere usato per invocare la funzione passata tramite il parametro La funzione F è una funzione di ordine superiore È possibile realizzare funzioni di ordine superiore per realizzare funzioni  parametriche rispetto a un’operazione  rappresentata a sua volta da una funzione 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esempio di funzione di ordine superiore funzione di ordine superiore maxDiFunzione  Riceve come parametri f funzione di una variabile reale gli estremi a e b di un intervallo valore d (da usare come passo di incremento) Trova il valore massimo M e la sua ascissa (approssimati) della funzione f in [a..b] applicandola in tutti i punti tra a e b, con un intervallo di scansione d 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEmaxDiFunzione 28 function [M,xM]=maxDiFunzione(f, a, b, d) xM=a; M=f(xM); for x = a+d:d:b if f(x)>M xM=x; M=f(x); end; end >> f=@(x)x^3-3*x; >> maxDiFunzione(f, -2, 2, 0.01) ans = 2

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitolo 4 Credits  Prof. A. Morzenti 29


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata."

Presentazioni simili


Annunci Google