Diagrammi 2D e 3D Funzioni di ordine superiore

Documenti analoghi
Diagrammi 2D e 3D Funzioni di ordine superiore

Diagrammi 2D e 3D Funzioni di ordine superiore

x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; end if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; end

x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; end if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; end

Sottoprogrammi Diagrammi in MATLAB

studente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24;

Lab 7 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 19 Gennaio 2016

studente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24;

% per essere certi che a <= b a = min(interval); b = max(interval);

Matlab: introduzione

Esercitazione 2. Prima parte

Esercitazione 2. Prima parte

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Introduzione al MATLAB c Parte 2 Funzioni

Introduzione a Matlab

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 9 Agosto 2013

Introduzione a Matlab

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 7 Dicembre2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Input/output. Marco D. Santambrogio Ver. aggiornata al 24 Agosto 2015

UD6 - MATLAB. Gestione della grafica

Matlab: Variabili e Array. Informatica B

Lab 5 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 15 Dicembre 2015

ESERCITAZIONE MATLAB

Informatica B

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 1 Dicembre 2014

Strutture e Funzioni Built In

samplepolynomial interval polycoeff

Strumenti per il calcolo numerico Matlab/Octave

Strumenti per il calcolo numerico Matlab/Octave

Strutture e Funzioni Built-In

Lab 8 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015

Laboratorio di Matlab

Laboratorio didattico di matematica computazionale

Strutture e Funzioni Built In

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

MATLAB (3) - Grafica 2 e 3D

» max(x)» min(x) Se si vogliono conoscere anche le posizioni del massimo e del minimo, la sintassi è la seguente

Variabile, costante ed espressione

Algoritmi stabili e instabili

Laboratorio didattico di matematica computazionale

Principi di Programmazione Prova del 10/6/2008 (ore 10.30)

Grafici tridimensionali

Matlab permette di disegnare facilmente dei grafici La prima cosa da fare è costruire una nuova figura :

MATLAB - Programmazione - 2. Antonino Polimeno

Abbiamo inoltre visto come tracciare grafici di superfici su spazio cartesiano con la funzione mesh:

CORSO DI LABORATORIO DI INFORMATICA

Handle di Funzioni Università degli Studi di Milano

Ciclo di seminari: Metodi Computazionali per la Finanza

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

MATLAB Funzioni grafiche Salvataggio/recupero dati da file

Introduzione al MATLAB c Parte 2

Algoritmi e basi del C Struttura di un programma

Elementi di Calcolo Scientifico per l Ingegneria A.A

Esercitazione 00 Introduzione a Matlab

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

Calcolo Numerico I - A.A Laboratorio 3

Università degli Studi di Ferrara

MATLAB Elementi di grafica Costrutti di programmazione

Laboratorio di Matlab

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-15/3/2018

Università degli Studi di Ferrara

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

1 LABORATORIO DI SEGNALI E SISTEMI: INTRODUZIONE A MATLAB. Tagliavini Alessia 30/04/2014

Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Analisi Numerica I Introduzione a Matlab

Esercizi scalari. 10*10^6 + 3; (Usare la notazione esponenziale) coseno(30 ) - seno(pi greco/2) + pi greco /6 (0.3896)

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

Introduzione a Matlab

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

Lezione del dove a 1, a n e b sono numeri reali assegnati, detti coefficienti e termine noto dell equazione;

Array n-dimensionali e tipi di dati strutturati

DEFINIZIONE E UNA CLASSIFICAZIONE PER LE FUNZIONI n

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014

Tutorial. Introduzione a Matlab

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C

Esercitazione di Analisi Matematica II

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

12 Function Handles e Ricorsione in MATLAB

Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015

Algoritmi e basi del C

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

Lab 3 Info B. Buon 314mo giorno del 2015! Marco D. Santambrogio Matteo Ferroni

Informatica B Esercitazione 11 (Soluzioni)

Introduzione allo Scilab Parte 5: funzioni su matrici; intervalli, grafici.

Corso Matlab : Seconda lezione (Esercitazione, 10/05/13) Samuela Persia, Ing. PhD.

Informatica (A-K) 5. Algoritmi e pseudocodifica

Facsimile di prova d esame Esempio di svolgimento

Transcript:

Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 16 Gennaio 2015

Logistica 2

Logistica 3

Logistica Solo più una lezione! Resto esercitazioni 4

Logistica Solo più una lezione! Resto esercitazioni Due Lab! Mar 20 Gen Mar 27 Gen 5

Logistica Solo più una lezione! Resto esercitazioni Due Lab! Mar 20 Gen Mar 27 Gen Demo compitino Ven 30 Gen 6

Logistica ESAME!!! 5 Feb @ 12pm 7

Obiettivi Diagrammi 2D e 3D Funzioni di ordine superiore 8

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 9

Diagrammi 2D: 1mo esempio >> x = -10:0.1:10; >> y=x.^3; >> plot(x,y); >> xlabel('ascisse'); >> ylabel('ordinate'); >> title('cubica'); 1000 800 600 400 cubica 200 ordinate 0-200 -400-600 -800-1000 -10-8 -6-4 -2 0 2 4 6 8 10 ascisse 10

Diaggrami 2D: 2do esempio >> x=[-8:0.1:8]; >> y= sin (x)./ x; >> plot(x, y); >> xlabel('ascisse'); >> ylabel('ordinate'); 1 0.8 0.6 ordinate 0.4 0.2 0-0.2-0.4-8 -6-4 -2 0 2 4 6 8 ascisse 11

Particolarità 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 12

Particolarità: esempio 1 >> t=[0:pi/100:2*pi]; >> x=cos(t); >> y=sin(t); >> plot(x,y); >> xlabel('ascisse-x'); >> ylabel('ordinate-y'); 1 0.8 0.6 0.4 0.2 ordinate-y 0-0.2-0.4-0.6-0.8-1 -1-0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 ascisse-x 13

Particolarità: esempio 2 10*pi 5 giri t 10*pi dist.max da origine 31,4 30 >> t=[0:pi/100:10*pi]; >> x=t.* cos(t); >> y=t.* sin(t); >> plot(x,y); >> xlabel('ascisse-x'); >> ylabel('ordinate-y'); 20 10 ordinate-y 0-10 -20-30 -30-20 -10 0 10 20 30 40 ascisse-x 14

Diagrammi lineare a 3 dimensioni 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 40 >> t = 0:0.1:10*pi; >> plot3 (t.*sin(t), t.*cos(t), t); >> xlabel('ascisse'); >> ylabel('ordinate'); >> zlabel('quote'); quote 30 20 10 0 40 20 0 ordinate -20-40 -40-20 0 ascisse 20 40 15

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 16

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) 17

meshgrid: un esempio funzione z = x + y grafico in 6 punti di ascisse {1, 3, 5} e ordinate {2, 4} >> 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'); >> zz zz = 3 5 7 5 7 9 >> xx xx = 1 3 5 1 3 5 >> yy yy = 2 2 2 4 4 4 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) 9 8 7 6 5 4 3 4 3.5 3 ordinate-y 2.5 2 1 2 3 ascisse-x 4 5 18

Vantaggi 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 19

meshgrid: un secondo esempio >> x=[1:1:3]; >> y=x; >> [xx,yy]=meshgrid(x,y); >> zz=xx+yy; >> mesh(xx,yy,zz); >> xlabel('x'); >> ylabel('y'); >> zlabel('z'); z 6 5 4 3 2 3 2.5 2 y 1.5 1 1 1.5 x 2 2.5 3 20

meshgrid: un paraboloide >> 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

meshgrid: il Sombrero! >> 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

Pausa 15 non di più! :) 23

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 24 / 44

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 25 / 44

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

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

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 28

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 29

maxdifunzione 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; end >> f=@(x)x^3-3*x; >> maxdifunzione(f, -2, 2, 0.01) ans = 2 30

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 31