Tutorial Matlab
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].