Tutorial Matlab

download Tutorial Matlab

of 72

Transcript of Tutorial Matlab

Note Introduttive al MatlabIvan [email protected], www.macchine.unisa.it

Riferimenti Bibliografici e Siti Web Matlab, The Language of Technical Computing - Guida allUso (Release 13) - The MathWorks Inc. Home page Mathworks: http://www.mathworks.com On-line Tutorial: http://www.mathworks.it/academia/student_center/tutorials/intropag e.html Helpdesk: http://www.mathworks.com/access/helpdesk/help/helpdesk.shtml A. Cavallo, R. Setola, F. Vasca Using Matlab, Simulink e Control Toolbox A practical Approach, Prentice Hall. William J. Palm III - Introduction to MATLAB 6 for Engineers: with 6.5 Update, Mc-Graw Hill.

Corso Introduttivo al MATLAB1. 2. 3. 4. 5. 6. Elementi fondamentali Operazioni Polinomi e Grafica Programmazione Funzioni avanzate Simulink

Elementi Fondamentali Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

IntroduzioneElementi Fondamentali

MATrix LABoratory (ver. 5.3.1) Computation, Visualization, Programming

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Linguaggio di programmazione ad alto livello Learning by using Corredato da una famiglia di applicazioni specifiche (Toolbox): signal processing, statistics, optimization, neural networks, etc...

Ingresso da tastieraElementi Fondamentali

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Definizione di uno scalare e di un vettore>> A=2 >> a=[1 2 3 4]

Cancellazione di un vettore (uso di a e A)>> clear A

Definizione di una matrice (uso di , e ;)>> b=[1 2 3 4 () 5 6 7 8] >> c=[1 2 3 4; 5 6 7 8];

tanto per cominciare a smanettare...>> b=c >> a >> b==c >> sum(b) >> diag(c)

Elementi Fondamentali

Ingresso da files esterniUn file ASCII IN.TXT col contenuto:30 170 70

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

15 160 55 50 165 75 >> load IN.TXT >> IN

Le opzioni di formatoformat short, long, short e, long e, hex, bank, rat,

Salvataggio in un file>> save nomeFile nomeVar1 nomeVar2

Comandi di utilit diamoci unocchiata>> help >> help matlab\ops >> help matlab\general >> clc

Manipolazione di matriciElementi Fondamentali

Elementi di una matrice: definito un vettore x di 4 elementi si ponga>> x(5)=x(1) >> x(4)=[] >> x=[]

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Affiancamento di matrici>> C=[A B] >> D=[A A+3;A+3 A]

Altri comandi>> [m,n]=size(C) >> h=length(b) >> who

Rappresentazione di intervalli :>> z=1:5 >> zd=1:.1:5 >> linspace(min,max,punti) (logspace)

Operazioni sulle matrici>> B=A(1:3,2:5) >> B(1,2)=[] >> B(:,2)=[] >> B(2:2:6)=[]

Manipolazione di matriciElementi Fondamentali

Matrici speciali>> eye(3) >> eye(3,4) >> zeros(2,3) >> ones(1,2) >> diag([4 5 6 7])

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Stringhe di caratteri>> >> >> >> >> a=arpa >> b=unarpa findstr(a,a) (posizione di a in a) int2str(123) num2str(1.23) str2num(1.23)

Da stringa a matrice>> A=str2mat(oggi,non,piove) >> A(:,1) >> A(:,5)

Elementi Fondamentali

Esercizi1 Dato x=(1,2,3,4), si costruisca y=(1,3,4,5) 2 Dato x=(1,2,3,4,5,20), si costruisca y=(1,2,3,4,5,20,20,5,4,3,2,1) usando : e fliplr 3 Dati a=(1,2,3,4) e b=(7,8,9,10) si costruisca c=(1,7,2,8,3,9,4,10) 4 Data una stringa indicativa del proprio nome e cognome si definisca una procedura che separi luno dallaltro e li disponga sulle due righe di una matrice

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Grafici bidimensionaliElementi Fondamentali

Rappresentazione di un vettore di dati e uso del plot>> >> >> >> >> plot(rand(10)) >> plot(rand(1,10)) plot(rand(1,10),r*:) help plot x=[1:2:10,13:-3:-1]; y=rand(1,length(x)); plot(x,y)

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Pi grafici nella stessa finestra>> subplot(2,2,1); plot(rand(1,10)) >> subplot(2,2,3); plot(3*rand(1,10))

Scalatura degli assi>> axis([-1 5 -2 Inf])

Altri comandi: xlabel, ylabel, title, grid, gtext, ginput>> title(\it{alfa si scrive} \alpha) >> t=0:.1:2*pi; plot(t,sin(t); >> text(3*pi/4,sin(3*pi/4), \leftarrow sin(t)=0.707)

Grafici bidimensionaliElementi Fondamentali

Le propriet di una figura>> a=plot(rand(1,10)); set(a)

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Le opzioni sulla finestra di figura - File --> Save As - File --> Export - Tools --> Properties - Tools --> Legend - Tools --> Add - Tools --> Zoom Grafici multipli>> >> >> >> >> plot(x1,y1,k,x2,y2) plot([1 2 3],[-1 -2 -3]) plot([1 2 3;-1 -2 -3]) teta=-pi:.1:pi; plot(teta,[sin(teta);cos(teta)]); legend(seno,coseno)

Esercizi sui grafici bidimensionaliElementi Fondamentali

Introduzione Ingresso da tastiera Ingresso da files esterni Manipolazione di matrici Esercizi Grafici Bidimensionali Esercizi su 2D

Si costruiscano degli opportuni vettori per la rappresentazione del grafico2 0 3 5 7

Usando il comando patch e gli altri visti, si disegni uno spicchio di luna rossa

Corso Introduttivo al MATLAB1. 2. 3. 4. 5. 6. Elementi fondamentali Operazioni Polinomi e Grafica Programmazione Funzioni avanzate Simulink

Operazioni Operazioni aritmetiche Funzioni Operazioni di relazione Operazioni logiche Esercizi

Operazioni

Operazioni aritmetiche Variabili predefinite (att.ne allunit immaginaria!)ans, eps, pi, i, j, Inf, NaN, clock, cputime, date, flops, realmax, realmin, nargin, nargout

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Operazioni aritmetiche su scalari +, -, *, /, ^, sqrt, \>> 2/3 >> 2\3 >> 2*1/3 >> 1/2*3

Operazioni aritmetiche su vettori e loperatore .*>> >> >> >> sqrt([1 2 3]) [1:3]*[1:3] [1:3]^2 [1:3].^[1:3] >> [1:3]*[1:3] >> [1:3].*[1:3] >> [1:3].^2

Operazioni aritmeticheOperazioni

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Operazioni algebriche su matrici>> >> >> >> >> >> [1+j,1-2*j] >> [1+j,1-2*j]. A+3 >> 2*A B=inv(A) >> B=A^(-1) X=A/B (esegue A*B-1) X=A\B (esegue A-1*Be se A non quadrata?) B=pinv(A) ( B=(ATA)-1AT )

Operazioni aritmeticheOperazioni

La soluzione del problema Ax=b - se length(x)>length(b), cio pi incognite che equazioni (o meglio se rank(A)=rank([A b])), esistono infinite soluzioni; due possibili soluzioni sono:>> x=pinv(A)*b (soluzione a min norma) >> y=A\b (soluzione con maggior numero di zeri)

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

- se length(x)=length(b), o meglio se la matrice A non singolare, esiste una unica soluzione:>> y=A\b

- se length(x) x=pinv(A)*b (soluzione a min norma derrore)

FunzioniOperazioni

Arrotondamento - round arrotonda allintero pi vicino>> round(1.5) >>round(1.499) (15 o 16 c.d.) >> fix(1.1) >> fix(-2.1) >> floor(-2.1) >> ceil(-2.1)

- fix arrotonda verso lo 0 Op aritmetiche Funzioni Op di relazione Op logiche Esercizi >> fix(1.9) >> foor(1.9) >> ceil(1.9)

- floor arrotonda per difetto allintero pi vicino>> floor(-2.6) >> ceil(1.1)

- ceil arrotonda per eccesso allintero pi vicino Approssimazioni razionali - rem resto di una divisione intera>> rem(3,2) >> mod(3,7) >> rats(9.22) >> rem(2,3) >> mod(7,3) >> rem(2,0)

- mod risultato della a mod b - rats approssimazione razionale

FunzioniOperazioni

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Aritmetica complessa - real parte reale - imag parte immaginaria - conj coniugato complesso - abs valore assoluto o modulo complesso - angle angolo di fase Esempi>> 2+3i >> clear i >> 2+3j >> 2+3*i >> a=3,z=2+ai

Esercizio. Si tabelli il modulo e la fase della funzione razionale fratta riportata, per s=j ed [10^(-2):10^2]3s 2 + 5s + 7 s 3 + 5s 2 + 7 s + 12

FunzioniOperazioni

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Funzioni esponenziali e logaritmiche - pow2 esponenziale in base 2 - exp esponenziale in base e - log logaritmo naturale - log2 logaritmo in base 2 - log10 logaritmo in base 10 Esempio>> x=(1:.1:5); y=log(x); [x y] >> plot(x,y)

proviamo a disegnare qualche altra funzione elementare ...

FunzioniOperazioni

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Funzioni trigonometriche - sin seno - cos coseno - tan tangente - asin arcoseno - acos arcocoseno - atan arcotangente - atan2 arcotangente a quattro quadranti - cart2pol da coordinate cartesiane a polari Lesempio della circonferenza>> teta=-pi:.1:pi; x=cos(teta); y=sin(teta); >> [fase,modulo]=cart2pol(x,y) >> plot(x,y) >> plot(modulo,fase)

. proviamo a rappresentare qualche altra funzione trigonometrica .

FunzioniOperazioni

Funzioni su matrici - max funzione di massimo (e min di minimo)>> max(x) >> max(A) >> max(max(A)) >> [Y,I]=max(A) >> max(A,B) >> [m1,i1]=max(A); [m,k]=max(m1); h=i1(k); h,k

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

- sort ordinamento in senso crescente>> R=[1,2;5,1;3,3;2,4]; A=sort(R) >> [S,i1]=sort(R); B=R(i1,:)

- sum, rank, det, poly, trace, norm, eig, mean, expm, logm, sqrtm>> >> >> >> A=[0 1 1;0 0 1;0 0 0]; E1=exp(A); E2=expm(A); E3=eye(3)+A+A^2/2; E4= eye(3)+A+A.^2/2; E1, E2, E3, E4

Operazioni

Operazioni di relazione Operatori di relazione - < minore - maggiore - >= maggiore o uguale - == uguale - ~= diverso Operatori logici - & and - xor or esclusivo Esempi>> 2>3 >> 2+2~=4 >> P=(rem(A,2)==0) (gli elementi di A divisibili per 2)

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

- | or - ~ not

Operazioni

Operazioni logiche Come sempre gli operatori su matrici agiscono per colonne - any d 1 se almeno un elemento diverso da 0 - all d 1 se tutti gli elementi sono diversi da 0>> A=[0 1 1;0 0 1;0 0 0]; any(A), all(A) >> all(A> all(A>=0) >> any(A>0.5)

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

- find trova gli indici il cui argomento diverso da 0>> find(A) >> [h,k]=find(A) >> t=0:.005:20; y=sin(t); (trovare i valori di t per cui y=0.5) >> tolleranza=0.05; i=find(abs(y-0.5)=2), L=(x3), L=(x-4) Dato il vettore x=(1, 34, 2, -12, 56, 7, 0, 9) visualizzare i valori maggiori di 5.

Op aritmetiche Funzioni Op di relazione Op logiche Esercizi

Corso Introduttivo al MATLAB1. 2. 3. 4. 5. 6. Elementi fondamentali Operazioni Polinomi e Grafica Programmazione Funzioni avanzate Simulink

Polinomi e Grafica 3D Operazioni su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Operazioni sui polinomiPolinomi e Grafica

Definizione di un polinomio >> p=[1 0 -1]; (definisce il polinomio x2-1) Le radici di un polinomio>> roots([1 0 -1]) >> roots([1 -2 -15])

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Dalle radici al polinomio>> radici=[-1,1]; poly(radici) >> radici=[-3,-5]; poly(radici)

Il prodotto di polinomi>> a=[1 0 1]; b=[1 1]; c=conv(a,b)

Il rapporto di polinomi a(s)=q(s)b(s)+r(s)>> [q,r]=deconv(a,b) >> polyval(a,3) La derivata di un >> polyder(a) >> [q,r]=deconv(b,a)

Il valore di un polinomio in un punto polinomio

InterpolazionePolinomi e Grafica

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Il comando polyfit per il fitting dei dati>> x=-1:.1:1; y=2*x+1+2*rand(1,length(x)); >> plot(x,y) >> p=polyfit(x,y,1); y1=polyval(p,x); >> plot(x,y,x,y1) >> p=polyfit(x,y,5); y5=polyval(p,x); >> p=polyfit(x,y,10); y10=polyval(p,x); >> plot(x,y,x,y1,x,y5,x,y10) [es_interpolazione1]

InterpolazionePolinomi e Grafica

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Il comando spline (interpolazione con cubiche) - il significato fisico (la spline usata per disegnare) - si infittisce lintervallo tra i campioni, tra questi si cerca unapprossimazione polinomiale e si assicura la differenziabilit fino ad un certo ordine nei punti di giunzione (la cosiddetta pp-form):x [a, b],k i =1

x [a = 1 , 2 , K , h +1 = b] j = 1, K , h

p j ( x ) = ( x j ) k i /( k i )! cij ,

>> x=-1:.1:1; y=2*x+1+2*rand(1,length(x)); >> xx=-1:.1/2:1; yy=spline(x,y,xx); >> plot(x,y,o,xx,yy)

InterpolazionePolinomi e Grafica

Il comando interp1 per linterpolazione monodimensionale>> >> >> >> x=-1:.1:1; y=2*x+1+2*rand(1,length(x)); xi=-1:.03:1; yi=interp1(x,y,xi,nearest) plot(x,y,o,xi,yi) yil=interp1(x,y,xi,linear); plot(x,y,o,xi,yi,xi,yil)

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

o altre opzioni come spline e cubic. Interpolazione bidimensionale: dati X ed Y monotoni ZI = interp2(X, Y, Z, XI, YI, method)>> >> >> >> >> [x,y]=meshgrid(-3:1:3) z=x.*exp(-x.^2-y.^2) surf(x,y,z); [xi,yi]=meshgrid(-3:.25:3); zi=interp2(x,y,z,xi,yi); surf(xi,yi,zi)

Esercizi sui polinomiPolinomi e Grafica

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Calcolare i punti estremali, le intersezioni con gli assi e gli eventuali punti di flesso della funzione f(x)=x4+5x3+1. [es_polinomi] Data la sequenza di punti y=[7.02 1.46 -1.55 0.94 2.21 7.95 15.56 19.22 32.80 37.72 59.79] per x=[0:10], individuare i polinomi di interpolazione di grado (1, 2, 3) e rappresentarli graficamente. La densit dellaria (in g/m3) varia con la quota h (in km) secondo la tabella riportata. Determinare un polinomio interpolatore di ordine n=1, 2, 3, , 6 e la norma dellerrore commesso. Si calcolino poi i valori della densit dellaria ai valori di quota 10, 20, 30, 40, 50 e 60. h=7, 10, 15, 21, 27, 34, 39, 43, 47, 51, 55, 59, 61 =556, 369, 191,75, 26.2, 9.9,4.4,2.3, 1.4,.8, .5,.33,.25

Esercizi sui polinomiPolinomi e Grafica Per un motore ad accensione comandata, sono state effettuate le seguenti misure di emissioni di NOx al variare del rapporto di miscela A/F [es_nox]:A/F 12 13 14 14.5 15 15.1 16 17 18 19 20 NOx (ppm) 50 100 200 350 500 450 600 550 300 150 50

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Rappresentare landamento delle emissioni in funzione di A/F, e determinare la migliore rappresentazione polinomiale delle emissioni in funzione di A/F in termini di precisione e generalizzabilit. Stimare il valore delle emissioni per A/F=15.2

Grafici tridimensionaliPolinomi e Grafica

Un primo esempio>> >> >> >> t=0:pi/10:10*pi; plot3(sin(t),cos(t),t) x=0:.1:4; y=-2:.1:1; [X,Y]=meshgrid(x,y); Z=sin(X).*cos(Y); plot3(X,Y,Z); mesh(X,Y,Z); surf(X,Y,Z); surfc(X,Y,Z);

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Il colore per i grafici>> [X,Y]=meshgrid(-8:.5:8);R=sqrt(X.^2+Y.^2)+eps >> Z=sin(R)./R; surf(Z);

La mappa dei colori Red Green Blue (RGB)nero bianco giallo magenta cyan grigio 0 1 1 1 0 0.5 0 1 1 0 1 0.5 0 1 0 1 1 0.5

>> >> >> >> >>

t=-pi:pi/10:pi; fi=(-pi/2:pi/20:pi/2); X=cos(fi)*cos(t); Y=cos(fi)*sin(t); Z=sin(fi)*ones(size(t)); surf(X,Y,Z) colormap([0 0 0;1 1 1]); C=rand(size(Z)); surf(X,Y,Z,C)

Grafici tridimensionaliPolinomi e Grafica

Le curve di livello>> t=-2:.2:2; [X,Y,Z]=peaks(n); mesh(X,Y,Z); >> figure(2); contour(X,Y,Z,20); >> hold on; [U,V]=gradient(Z,.2); >> quiver(X,Y,U,V); hold off >> [C,h]=contour(Z,10); clabel(C,h) >> figure(3); mesh(X,Y,Z), hold on; >> contour3(X,Y,Z,[1 1],k); >> Az=180;El=0; view([Az El]) z y

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

El -y Az

x

Grafici tridimensionaliPolinomi e Grafica

I solidi di rotazione ottenuti col comando cylinder - due possibili rotazioni della retta y=x: cylinder(0:.1:2) cylinder(-2:.1:2)

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

- le possibili rotazioni di un coseno: teta=0:pi/10:2*pi; [X,Y,Z]=cylinder(4*cos(teta)); subplot(2,2,1), mesh(X) subplot(2,2,2), mesh(Y) subplot(2,2,3), mesh(Z) subplot(2,2,4), mesh(X,Y,Z)

Esercizi su grafici tridimensionaliPolinomi e Grafica

Si rappresenti la funzione z=x2 + 4y nel piano [z,x] al variare di y, nel piano [z,y] al variare di x e nello spazio 3D [es_grafici3d]%piano x,z x=[-10:10];hold on for y=-2:2 z=x.^2+4*y;plot(x,z) end hold off %piano y,z clear x, y;y=[-10:10];figure;hold on for x=-2:2 z=x.^2+4*y;plot(y,z) end hold off %spazio3D clear x,y;x=[-10:10];y=[-10:10]; figure [X,Y]=meshgrid(x,y); Z=X.^2+4*Y; plot3(X,Y,Z);mesh(X,Y,Z);surf(X,Y,Z);

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Esercizi su grafici tridimensionaliPolinomi e Grafica

Op su polinomi Interpolazione Esercizi sui polinomi Grafici tridimensionali Esercizi su 3D

Si risolva graficamente il problema di ottimizzazione vincolata min x2+y2+z2 con il vincolo x2+2y+4z-14 Suggerimento: si disegni prima il vincolo. Ritornando allesempio della sfera presentato in precedenza, si disegni in nero la sola semisfera inferiore e poi la sola semisfera di destra. Utilizzando il comando help e la funzione peak, si utilizzino i comandi - hist, stem, stem3, pie, light

Corso Introduttivo al MATLAB1. 2. 3. 4. 5. 6. Elementi fondamentali Operazioni Polinomi e Grafica Programmazione Funzioni avanzate Simulink

Programmazione Le strutture fondamentali Script files Funzioni Esercizi sulla programmazione

Le strutture fondamentaliProgrammazione

Le strutture fondamentali Script files Funzioni Esercizi sulla programmazione

La struttura if-then-else if condizione, istruzioni elseif condizione, istruzioni else istruzioni end T=0:.1:2; for t=T, y=[y,sin(t)]; end y=sin(T);

Literazione for for i=1:n, istruzioni end Literazione while while condizione, istruzioni end [m,n]=size(A); for i=1:m for j=1:n if A(i,j)>10, A(i,j)=0; end, end, end A(A>10)=0*A(A>10);

Script filesProgrammazione

Un esempio di M-file [es_scriptfile]%Un M-file per la stima approssimata della funzione coseno attraverso lo sviluppo in serie di Mc Laurin, arrestato al quinto ordine. x=0; cos_approx=0; for i=0:5 termine_par=(-1)^i*x^(2*i)/factorial(2*i); cos_approx=cos_approx+termine_par; end cos_approx

Le strutture fondamentali Script files Funzioni Esercizi sulla programmazione

Script filesProgrammazione

Un esempio sulla dipendenza dei tempi di calcolo dalla struttura di programmazione adottata[es_tempicalcolo] clear; tic for i=1:10000 t(i)=.1*i; y(i)=t(i)^2; end; toc clear tic t=[0:.1:1000]'; y=t.^2; toc

Le strutture fondamentali Script files Funzioni Esercizi sulla programmazione

FunzioniProgrammazione

La struttura delle function [es_function]function [t,y]=es_function(x)

Le strutture fondamentali Script files Funzioni Esercizi sulla programmazione

%Una funzione per la stima approssimata della funzione coseno attraverso lo sviluppo in serie di Mc Laurin, arrestato al quinto ordine. cos_approx=0; for i=0:5 termine_parziale=(-1)^i*x^(2*i)/factorial(2*i); cos_approx=cos_approx+termine_parziale; end y=cos_approx; t=x; end >>x=[-pi:.1:pi]; >>[t,y]=es_function(x)

FunzioniProgrammazione

Un esempio con lo switchLe strutture fondamentali Script files Funzioni Esercizi sulla programmazionefunction [multipli,non_multipli]=mult(base) % Nei primi 100 interi, i numeri multipli della base data n=2; non_multipli=0; multipli=1; while n> R=normrnd(10,1,100,1);

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Calcolo della probability density function in x>> y=normpdf(x,10,1)

p.d.f : f(x)=Pr{x < X < x+dx}

Calcolo dei momenti primo e secondo>> mean(R) >> std(R)

Calcolo della matrice di covarianza e dei coefficienti di correlazione>> cov(R1,R2) >> corrcoef(R1,R2)

Confronto tra distribuzioni normali al variare del momento secondo>> x=[0:20] >> y1=normpdf(x,10,1) >> y2=normpdf(x,10,2) >> plot(x,y1,x,y2)

Ricerca Minimi e ZeriFunzioni Avanzate

Minimo e zero di una funzionefunction b=es_minimo(v); b=(v+1).*exp(-v.^2); return >> a=fmin(es_minimo,-2,2) >> a=fzero(es_minimo,-2)

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Minimo di una funzione di pi variabilifunction b=es_minimo2(v); x=v(1); y=v(2); z=v(3); b=x^2+2.5*sin(y)-z^2*x^2*y^2; return >> a=fmins(es_minimo2,[-0.6 -1.2 0.135])

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Calcolare le radici dellequazionex2-3sinx+0.1=0

Calcolare il minimo della funzionef(x,y)=e(x-y)+x2+y2>>minimo=fmins('es_minimo_fun',[-0.3 0.3]) function z=es_minimo_fun(v); x=v(1);y=v(2); z=exp(x-y)+x^2+y^2; return

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Assegnato il set di dati illustrato in figura e riportato nel file (es_minimo2_dati.mat), individuare i valori ottimali dei parametri lambda che ne consentano di riprodurre landamento attraverso la struttura funzionale seguente [es_minimo2]:y=lambda(1)*exp[-lambda(2)*t]6 5 4 3 2 1 0

y

0

0.2

0.4

0.6

0.8

1 t

1.2

1.4

1.6

1.8

2

Soluzione

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzateclear all;clc global dati load es_minimo2_dati t=dati(:,1); y=dati(:,2); plot(t,y,'ro') pause; lambda0=[3 1]; lambda=fmins('es_minimo2_fun',lambda0) [err,z]=es_minimo2_fun(lambda); plot(t,y,'ro',t,z)

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

function [err,z] = es_minimo2_fun(lambda) global dati t = dati(:,1);y = dati(:,2); z=lambda(1)*exp(-lambda(2)*t); err = norm(z-y);plot (t,y,'o',t,z) return

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Assegnato il set di dati illustrato in figura e riportato nel file (es_minimo2_dati.mat), individuare i valori ottimali dei parametri non lineari lambda che ne consentano di riprodurre landamento attraverso la struttura funzionale seguente [es_minimo3]:y=c(1)*exp[-lambda(1)*t]+c(2)*exp[-lambda(2)*t]6 5 4 3 2 1 0

y

0

0.2

0.4

0.6

0.8

1 t

1.2

1.4

1.6

1.8

2

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate Nel modello economico semplificato di mercato perfettamente concorrenziale grande rilievo assumono le curve di domanda ed offerta, che in ascissa hanno la quantit di bene prodotto o richiesto in un prefisato periodo di tempo ed in ordinata il prezzo unitario del bene. Lintersezione delle curve determina il prezzo di equilibrio della merce. Assumendo i seguenti dati per la produzione e richiesta del grano in un ipotetico mercato si calcoli il prezzo di equilibrio e si traccino le curve di domanda ed offerta utilizzando almeno 30 punti [es_minimo4].Prezzo ($/staio) 1.25 1.40 1.50 1.60 1.75 1.90 2.00 Domanda (migliaia di stai / giorno) 350 330 320 310 295 280 245 Offerta (migliaia di stai / giorno) 190 220 250 270 300 320 350

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate

Si calcoli il minimo della funzione x4+6xy+xy3-6xz3-yz+4z3

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Una fabbrica decide di iniziare la produzione di un nuovo tipo di caramelle dietetiche. Il costo di produzione di L. 1000 per confezione e lufficio di marketing prevede una richiesta settimanale di 100000/p2 confezioni dove p il prezzo complessivo al quale ogni confezione venduta. Si calcoli il prezzo al quale sar messa in vendita una confezione di caramelle per massimizzare il profitto.

Esercizi su Ricerca Minimi e ZeriFunzioni Avanzate Le prevalenze reale ed Euleriana di una pompa possono essere espresse in funzione della portata volumetrica Q e del regime di rotazione n attraverso le seguenti relazioni: Hr = k1* (n/1000)2 + 2*k2 (n/1000)*Q - k3*Q2 HE = k5* (n/1000)2 k6*Q*(n/1000) mentre la prevalenza esterna pu essere espressa come Hest = Hu + k4*Q2. Si assuma k1 =10; k2 = k3 = k4 = k6 =1; k5 =14; Hu=20 Calcolare il punto ottimale di funzionamento corrispondente al massimo rendimento con il vincolo di uguaglianza tra caratteristica interna ed esterna. Eseguire lottimizzazione sia con un metodo di minimizzazione non vincolata impiegando una penalty function, sia con un metodo di minimizzazione vincolata [es_curvecaratt]: 1 max [ - k * (Hr-Hu)2] 2 max con Hr =Hu e dHr/dQ > [t,x]=ode23(xpunto,t0,tf,x0)

Esercizi sulla Integrazione NumericaFunzioni Avanzate

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Le equazioni di Volterra-Lokta descrivono un modello semplificato dellevoluzione di due specie in competizione tra loro (noto come modello predapredatore):preda

predatore

dx = (a by ) x dt dy = (cx d ) y dt

Si studi la soluzione di queste equazioni a partire dai parametri nominali a=2.7, b=0.7, c=1, d=3 [es_loktavolterra]. Soluzione

Esercizi sulla Integrazione NumericaFunzioni Avanzateclear all % Modello Lokta-Volterra (preda-predatore) global a b c d a=2.7;b=0.7;c=1;d=3; x0=[2,3]'; timerange=[0: .1:10]; [t,x]=ode45('loktavolterra',timerange,x0); plot(t,x) function xpunto=loktavolterra(t,x) global a b c d xpunto(1)=a*x(1)-b*x(1)*x(2); xpunto(2)=c*x(1)*x(2)-d*x(2); xpunto=xpunto'; return

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Esercizi sulla Integrazione NumericaFunzioni Avanzate

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Simulare il modello preda-predatore rappresentato dalle equazioni di Volterra - Lokta in presenza delleffetto pesca:preda predatore dx = (a by ) x hx dt dy = (cx d ) y hy dt

1) Si studi la soluzione di queste equazioni a partire dai parametri nominali a=2.7, b=0.7, c=1, d=3, h=0.5 nellintervallo t = [0:.1:10] [es_loktavolterra2]. 2) Si identifichi il valore ottimale del parametro h che consenta di riprodurre attraverso il sistema di equazioni landamento preda/tempo riportato nel file loktavolterra.mat, lasciando invariati i valori degli altri parametri [es_loktavolterra2min].

Esercizi sulla Integrazione NumericaFunzioni Avanzate

Il modello semplificato di un satellite in orbita circolare intorno a un pianeta :

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

&2 = k && r r r2 && + 2 r = 0 && rdove r la distanza del satellite dal centro del pianeta, langolo di azimut (detto in altri termini anomalia, se pensiamo al riferimento che giace nel piano dellorbita e un sistema di coordinate polari per individuare la posizione del satellite) e k la costante di gravitazione relativa al pianeta (per la terra k=9.807). Si studi il moto del satellite in orbita intorno alla terra per quote variabili tra 350 e 500 km. [es_satellite]

Funzioni Avanzate

Esercizi sulla Integrazione Numerica Partendo dalla legge rappresentativa di una trasformazione adiabatica: P vK = cost. riprodurre la fase di compressione ideale per un motore ad accensione comandata [es_compr_id].

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Funzioni Avanzate

Esercizi sulla Integrazione Numerica Un impianto di pompaggio costituito da una pompa che preleva acqua da un bacino per alimentare un serbatoio in pressione situato ad una quota di 20 m rispetto al bacino. Simulare landamento della pressione nel serbatoio nelle seguenti condizioni [es_serbatoio]: Volume serbatoio = 10 m3; Pressione iniziale serbatoio = 1 bar; Temperatura aria = 300 K; Regime rotazione pompa = 2000 rpm; Hr = 10* (n/1000)2 + 2* (n/1000)*Q - Q2; Hest = Hu + k4*Q2 Hu = z + P/

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Soluzione

Esercizi sulla Integrazione NumericaFunzioni Avanzate%----------------------------------------------------------------------------% calcolo pressione serbatoio %----------------------------------------------------------------------------global k4 k5 k6 hu k1 k2 k3 n gamma pamb mair rair tamb g k1=10;k2=1;k3=1;k4=1;k5=14;k6=1; hu=20;vserb=10;rair=287;pamb=1e5;tamb=300; mair=pamb*vserb/rair/tamb; rpm=2000;n=rpm*1e-3;g=9.807; timespan=[0:5000]; p0=pamb; %[Pa] [t,p]=ode45('dpserb',timespan,p0); plot(t,p) -------------------------------------------------------------------------% funzione calcolo pressione serbatoio function dp = dpserb(t,p) global k4 k5 k6 hu k1 k2 k3 n gamma pamb mair rair tamb g gamma=g*1000; AA=k4+k3;BB=-2*k2*n;CC=hu+(p-pamb)/gamma-k1*n^2; qvol=(-BB+sqrt(BB^2-4*AA*CC))/(2*AA) dp=p^2*qvol/3600/mair/rair/tamb; return

Analisi Statistica Ricerca Minimi e Zeri Derivazione ed Integrazione Numerica

Corso Introduttivo al MATLAB1. 2. 3. 4. 5. 6. Elementi fondamentali Operazioni Polinomi e Grafica Programmazione Funzioni avanzate Simulink

Simulink Come costruire uno schema Sources e Sinks La simulazione Esercizi

Come costruire uno schemaSimulink

Un primo esempio: un sistema massa-mollam&& = kx + f x && = x 1 ( kx + f ) mf m x=0

Come costruire uno schema Sources e Sinks La simulazione Esercizi

k

f

+ -

1/m

&& x

dt k

& x

dt

x

Lo schema Simulink corrispondente

Come costruire uno schemaSimulink

Luso del mouse: Sui blocchi: bottone sin per selezionare e spostare blocchi bottone dex per duplicare il blocco bottone dex su selezione per le propriet doppio click sin per selezionare i parametri Sulle linee bottone sin per selezionare e spostare linee bottone sin su vertice per spostare il vertice bottone dex per creare una diramazione Sullo schermo bottone sin per creare una nuova linea in ingresso o uscita ad un blocco bottone dex per le propriet dello schema doppio click sin per inserire testo

Come costruire uno schema Sources e Sinks La simulazione Esercizi

Sources e SinksSimulink

Sources: Il clock per il tempo simulato La costante anche definibile dal workspace Una generica variabile temporale definita col From Workspace ( necessario anche il tempo) Un segnale periodico con il Repeating Sequence La sinusoide e il gradino

Come costruire uno schema Sources e Sinks La simulazione Esercizi

Sinks: Per assegnare il valore ad una variabile con il To Workspace (occhio ai parametri!) Stop Simulation per fermare la simulazione Lo Scope per visualizzare la variabile durante la simulazione

La simulazioneSimulink

I parametri della simulazione: Istante di tempo iniziale < Istante di tempo finale I metodi di risoluzione a passo fisso: * il metodo di Eulero (rapporto incrementale) * il metodo di Runge Kutta& x (t ) = f (t , x (t ))

Come costruire uno schema Sources e Sinks La simulazione Esercizi

x ( kT + T ) = x ( kT ) + a1 K1 + a 2 K 2 + K + a p K p K1 = Tf ( kT , x ( kT )), K 2 = Tf ( kT + b2T , x ( kT ) + c21 K1 ), K 3 = Tf ( kT + b3T , x ( kT ) + c31 K1 + c32 K 2 ), K

* lopzione Mode/MultiTasking per consentire la verifica di incoerenza nella connessione di blocchi con diversi periodi di campionamento

La simulazioneSimulink

I parametri della simulazione: I metodi di risoluzione a passo variabile sulla differenza di due successive iterazioni: * la predizione e la correzione * il max (per default (t_fin-t_in)/50) e min passo * la tolleranza relativa (percentuale della norma dello stato) e assoluta (quando lo stato si avvicina a zero):ei max(tol _ rel | xi | , tol _ assi )

Come costruire uno schema Sources e Sinks La simulazione Esercizi

* per modificare la tolleranza assoluta sulla singola variabile, usare i paramaetri dellintegratore Lopzione Refine Output per valutare le uscite del sistema in un numero maggiore di punti (di un fattore e questa opzione non cambia lintervallo di integrazione), o in un numero prefissato di punti.

EserciziSimulink

Come costruire uno schema Sources e Sinks La simulazione Esercizi

Costruire lo schema Simulink per un sistema massa-molla-smorzatore ed analizzare la risposta ad una forzante sinusoidale (m=1, k=10, sigma=0.1, F0=10) [es_pendoloforzato]. Simulare la risposta dinamica di un autoveicolo ad una variazione a gradino della coppia motrice [es_dynvehicle].