Note Introduttive al Matlab © Marco Sorrentino msorrentino@unisa.it, www.macchine.unisa.it/sorrentino
Riferimenti Bibliografici e Siti Web <ul><li>Matlab, The Language of Technical Computing - Guida all’Uso ( Release 13 ) - ...
Corso Introduttivo al MATLAB <ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafi...
Elementi Fondamentali <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><l...
Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul>...
Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul>...
Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul>...
Ingresso da tastiera <ul><li>Definizione di uno scalare e di un vettore >>  A=2  >>  a=[1 2 3 4] </li></ul><ul><li>Cancell...
Ingresso da files esterni <ul><li>Un file ASCII “IN.TXT” col contenuto: 30  170  70 </li></ul><ul><li>15  160  55 </li></u...
Manipolazione di matrici <ul><li>Elementi di una matrice:  definito un vettore x di 4 elementi si ponga >> x(5)=x(1)  >> x...
Manipolazione di matrici <ul><li>Matrici speciali  >>  eye (3)  >>  eye (3,4) >>  zeros (2,3)  >>  ones (1,2) >>  diag ([4...
Grafici bidimensionali <ul><li>Rappresentazione di un vettore di dati e uso del  plot >>  plot (rand(10))  >> plot(rand(1,...
Grafici bidimensionali <ul><li>Le proprietà di una figura >> a=plot(rand(1,10)); set(a) </li></ul><ul><li>Le opzioni sulla...
Esercizi sui grafici bidimensionali <ul><li>Usando il comando patch e gli altri visti, si disegni uno spicchio di “luna ro...
Corso Introduttivo al MATLAB Operazioni <ul><li>Operazioni aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Operaz...
Operazioni aritmetiche <ul><li>Variabili predefinite (att.ne all’unità immaginaria!)  ans, eps, pi, i, j, Inf, NaN, clock,...
Operazioni aritmetiche <ul><li>Operazioni algebriche su matrici >> [1+j,1-2*j]’  >> [1+j,1-2*j].’ >> A+3  >> 2*A  >> B=inv...
Operazioni aritmetiche <ul><li>La soluzione del problema Ax=b </li></ul><ul><li>- se length(x)>length(b), cioè più incogni...
Funzioni <ul><li>Arrotondamento -  round  arrotonda all’intero più vicino >> round(1.5)  >>round(1.49…9)  (15 o 16 c.d.)  ...
Funzioni <ul><li>Aritmetica complessa -  real  parte reale -  imag  parte immaginaria -  conj  coniugato complesso -  abs ...
Funzioni <ul><li>Funzioni esponenziali e logaritmiche -  pow2  esponenziale in base 2 -  exp  esponenziale in base e -  lo...
Funzioni <ul><li>Funzioni trigonometriche -  sin  seno -  cos  coseno -  tan  tangente -  asin  arcoseno -  acos  arcocose...
Funzioni <ul><li>Funzioni su matrici -  max  funzione di massimo (e min di minimo) >> max(x)  >> max(A)  >> max(max(A))  >...
Operazioni di relazione <ul><li>Operatori di relazione - < minore  -  <= minore o uguale - >  maggiore  -  >= maggiore o u...
Operazioni logiche <ul><li>Come sempre gli operatori su matrici agiscono per colonne -  any  dà 1 se almeno un elemento è ...
Esercizi <ul><li>Si rappresentino 5 periodi della funzione |sin t|  </li></ul><ul><li>Si definisca il vettore x contenente...
Esercizi <ul><li>Dati x=3+j5, y=-2+j4, z=j3, si calcolino: x+y, x-z, (x+y)z, |x|, 1/y, z 2 , log(x), e y , |x/y| </li></ul...
Corso Introduttivo al MATLAB Programmazione <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul...
Le strutture fondamentali <ul><li>La struttura if-then-else  if   condizione , istruzioni elseif   condizione , istruzioni...
Script files Un esempio di M-file  [es_scriptfile] %Un M-file per la stima approssimata della funzione coseno attraverso l...
Script files <ul><li>Un esempio sulla dipendenza dei tempi di calcolo dalla struttura di programmazione adottata  [es_temp...
Funzioni La struttura delle “function”  [es_function] function  [t,y]=es_function(x) %Una funzione per la stima approssima...
Funzioni Un esempio con lo switch function  [multipli,non_multipli]=mult(base) % Nei primi 100 interi, i numeri multipli d...
Esercizi sulla programmazione Programmazione <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><u...
Esercizi <ul><li>A partire dalle curve di coppia di un motore, individuare una regressione lineare del tipo  [es_linreg] :...
Operazioni Esercizi <ul><li>Un motore a combustione interna è caratterizzato dai seguenti valori di consumo specifico [g/k...
Esercizi <ul><li>Si calcolino il lavoro utile e l’efficienza globale di un impianto con turbina a gas in cui il fluido evo...
Esercizi <ul><li>Le prevalenze reale ed Euleriana di una pompa possono essere espresse in funzione della portata volumetri...
Corso Introduttivo al MATLAB Polinomi e Grafica 3D <ul><li>Operazioni su polinomi </li></ul><ul><li>Interpolazione </li></...
Operazioni sui polinomi <ul><li>Definizione di un polinomio  >> p=[1 0 -1];  (definisce il polinomio x 2 -1)   </li></ul><...
Interpolazione <ul><li>Il comando  polyfit  per il  fitting  dei dati >> x=-1:.1:1; y=2*x+1+2*rand(1,length(x)); >> plot(x...
Interpolazione <ul><li>Il comando  spline  (interpolazione con cubiche) -  il significato fisico (la spline usata per dise...
Interpolazione <ul><li>Il comando  interp1  per l’interpolazione monodimensionale  >> x=-1:.1:1; y=2*x+1+2*rand(1,length(x...
Esercizi sui polinomi <ul><li>Calcolare i punti estremali, le intersezioni con gli assi e gli eventuali punti di flesso de...
Esercizi sui polinomi <ul><li>Per un motore ad accensione comandata, sono state effettuate le seguenti misure di emissioni...
Grafici tridimensionali <ul><li>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]=...
Grafici tridimensionali <ul><li>Le curve di livello >> t=-2:.2:2; [X,Y,Z]=peaks(n); mesh(X,Y,Z); >> figure(2); contour(X,Y...
Grafici tridimensionali <ul><li>I solidi di rotazione ottenuti col comando  cylinder   - due possibili rotazioni della ret...
Esercizi su grafici tridimensionali <ul><li>Si rappresenti la funzione z=x 2  + 4y nel piano [z,x] al variare di y, nel pi...
Esercizi su grafici tridimensionali <ul><li>Si risolva graficamente il problema di ottimizzazione vincolata min x 2 +y 2 +...
Corso Introduttivo al MATLAB Funzioni Avanzate <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca dei Minimi e degli Zer...
Analisi Statistica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Int...
Ricerca Minimi e Zeri <ul><li>Minimo e zero di una funzione  function  b=es_minimo(v); b=(v+1).*exp(-v.^2); </li></ul><ul>...
Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Der...
Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Der...
Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Der...
Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Der...
Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Der...
<ul><li>Si calcoli il minimo della funzione </li></ul><ul><li>x 4 +6xy+xy 3 -6xz 3 -yz+4z 3 </li></ul><ul><li>Una fabbrica...
<ul><li>Le prevalenze reale ed Euleriana di una pompa possono essere espresse in funzione della portata volumetrica  Q  e ...
Carico termico ed  elettrico Cogeneratore Utenza termica Utenza elettrica Ausiliario (caldaia) ENEL Serbatoio Esercizi su ...
Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed ...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
Corso Introduttivo al MATLAB Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><l...
Come costruire uno schema <ul><li>Un primo esempio: un sistema massa-molla </li></ul>Simulink <ul><li>Come costruire uno s...
Come costruire uno schema <ul><li>L’uso del mouse: </li></ul><ul><ul><li>Sui blocchi: bottone sin  per selezionare e spost...
Sources e Sinks <ul><li>Sources: </li></ul><ul><ul><li>Il  clock  per il tempo simulato </li></ul></ul><ul><ul><li>La  cos...
La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>Istante di tempo iniziale < Istante di tempo f...
La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>I metodi di risoluzione a passo variabile sull...
Esercizi <ul><li>Costruire lo schema Simulink per un sistema massa-molla-smorzatore ed analizzare la risposta ad una forza...
Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>...
La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>I metodi di risoluzione a passo variabile sull...
Upcoming SlideShare
Loading in...5
×

Tutorial Matlab 2009

11,014

Published on

Published in: Education, Technology
1 Comment
9 Likes
Statistics
Notes
  • L'opzione di scaricamento è stata disabilitata; è un peccato per un così bel documento.
    Non ne capisco le ragioni.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
11,014
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide
  • Tutorial Matlab 2009

    1. 1. Note Introduttive al Matlab © Marco Sorrentino msorrentino@unisa.it, www.macchine.unisa.it/sorrentino
    2. 2. Riferimenti Bibliografici e Siti Web <ul><li>Matlab, The Language of Technical Computing - Guida all’Uso ( Release 13 ) - The MathWorks Inc. </li></ul><ul><li>Home page Mathworks: http://www.mathworks.com </li></ul><ul><li>On-line Tutorial: http://www.mathworks.it/academia/student_center/tutorials/intropage.html </li></ul><ul><li>Helpdesk: http://www.mathworks.com/access/helpdesk/help/helpdesk.shtml </li></ul><ul><li>A. Cavallo, R. Setola, F. Vasca – Using Matlab, Simulink e Control Toolbox – A practical Approach, Prentice Hall. </li></ul><ul><li>William J. Palm III - Introduction to MATLAB 6 for Engineers: with 6.5 Update, Mc-Graw Hill. </li></ul>
    3. 3. Corso Introduttivo al MATLAB <ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>Elementi Fondamentali <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>
    4. 4. Elementi Fondamentali <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Introduzione <ul><li>MATrix LABoratory (ver. 5.3.1) </li></ul><ul><li>Computation , Visualization , Programming </li></ul><ul><li>Linguaggio di programmazione ad alto livello “ Learning by using ” </li></ul><ul><li>Corredato da una famiglia di applicazioni specifiche ( Toolbox ): signal processing, statistics, optimization, neural networks, etc... </li></ul>
    5. 5. Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>
    6. 6. Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>
    7. 7. Elementi Fondamentali Avvio <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>
    8. 8. Ingresso da tastiera <ul><li>Definizione di uno scalare e di un vettore >> A=2 >> a=[1 2 3 4] </li></ul><ul><li>Cancellazione di un vettore (uso di ‘a’ e ‘A’) >> clear A </li></ul><ul><li>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]; </li></ul><ul><li>… tanto per cominciare a “smanettare”... >> b=c >> b==c >> a’ >> sum (b) >> diag (c) </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali
    9. 9. Ingresso da files esterni <ul><li>Un file ASCII “IN.TXT” col contenuto: 30 170 70 </li></ul><ul><li>15 160 55 </li></ul><ul><li>50 165 75 </li></ul><ul><li>>> load IN.TXT >> IN </li></ul><ul><li>Le opzioni di formato format short, long, short e, long e, hex, bank, rat , </li></ul><ul><li>Salvataggio in un file >> save nomeFile nomeVar1 nomeVar2 </li></ul><ul><li>Comandi di utilità … diamoci un’occhiata >> help >> help matlabgeneral >> help matlabops >> clc </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali
    10. 10. Manipolazione di matrici <ul><li>Elementi di una matrice: definito un vettore x di 4 elementi si ponga >> x(5)=x(1) >> x(4)=[] >> x=[] </li></ul><ul><li>Affiancamento di matrici >> C=[A B] >> D=[A A+3;A+3 A] </li></ul><ul><li>Altri comandi >> [m,n]= size (C) >> h= length (b) >> who </li></ul><ul><li>Rappresentazione di intervalli ‘:’ >> z=1:5 >> zd=1:.1:5 >> linspace ( min , max , punti ) (logspace) </li></ul><ul><li>Operazioni sulle matrici >> B=A(1:3,2:5) >> B(:,2)=[] >> B(1,2)=[] >> B(2:2:6)=[] </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali
    11. 11. Manipolazione di matrici <ul><li>Matrici speciali >> eye (3) >> eye (3,4) >> zeros (2,3) >> ones (1,2) >> diag ([4 5 6 7]) </li></ul><ul><li>Stringhe di caratteri >> a=‘arpa’ >> b=‘un’’arpa’ >> findstr (a,’a’) (posizione di ‘a’ in a) >> int2str (123) >> num2str (1.23) >> str2num (‘1.23’) </li></ul><ul><li>Da stringa a matrice >> A=str2mat(‘oggi’,’non’,’piove’) >> A(:,1) >> A(:,5) </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali
    12. 12. Grafici bidimensionali <ul><li>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) </li></ul><ul><li>Più grafici nella stessa finestra >> subplot (2,2,1); plot(rand(1,10)) >> subplot(2,2,3); plot(3*rand(1,10)) </li></ul><ul><li>Scalatura degli assi >> axis ([-1 5 -2 Inf]) </li></ul><ul><li>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’) </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali
    13. 13. Grafici bidimensionali <ul><li>Le proprietà di una figura >> a=plot(rand(1,10)); set(a) </li></ul><ul><li>Le opzioni sulla finestra di figura - File --> Save As - File --> Export - Tools --> Properties - Tools --> Legend - Tools --> Add … - Tools --> Zoom </li></ul><ul><li>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’) </li></ul>Elementi Fondamentali <ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>
    14. 14. Esercizi sui grafici bidimensionali <ul><li>Usando il comando patch e gli altri visti, si disegni uno spicchio di “luna rossa” </li></ul><ul><li>Introduzione </li></ul><ul><li>Avvio </li></ul><ul><li>Ingresso da tastiera </li></ul><ul><li>Ingresso da files esterni </li></ul><ul><li>Manipolazione di matrici </li></ul><ul><li>Esercizi </li></ul><ul><li>Grafici Bidimensionali </li></ul><ul><li>Esercizi su 2D </li></ul>Elementi Fondamentali <ul><li>Si costruiscano degli opportuni vettori per la rappresentazione del grafico </li></ul>2 5 7 3 0
    15. 15. Corso Introduttivo al MATLAB Operazioni <ul><li>Operazioni aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Operazioni di relazione </li></ul><ul><li>Operazioni logiche </li></ul><ul><li>Esercizi </li></ul><ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>
    16. 16. Operazioni aritmetiche <ul><li>Variabili predefinite (att.ne all’unità immaginaria!) ans, eps, pi, i, j, Inf, NaN, clock, cputime, date, flops, realmax, realmin, nargin, nargout </li></ul><ul><li>Operazioni aritmetiche su scalari +, -, *, /, ^, sqrt, >> 2/3 >> 23 >> 2*1/3 >> 1/2*3 </li></ul><ul><li>Operazioni aritmetiche su vettori e l’operatore ‘.*’ >> sqrt([1 2 3]) >> [1:3]*[1:3] >> [1:3]*[1:3]’ >> [1:3].*[1:3] >> [1:3]^2 >> [1:3].^2 >> [1:3].^[1:3] </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    17. 17. Operazioni aritmetiche <ul><li>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=AB (esegue A -1 *B…e se A non è quadrata?) >> B=pinv(A) ( B=(A T A) -1 A T ) </li></ul>Operazioni <ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>
    18. 18. Operazioni aritmetiche <ul><li>La soluzione del problema Ax=b </li></ul><ul><li>- 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 (soluzione con maggior numero di zeri) </li></ul><ul><li>- se length(x)=length(b), o meglio se la matrice A è non singolare, esiste una unica soluzione: >> y=A </li></ul><ul><li>- se length(x)<length(b), cioè più equazioni che incognite (o meglio se rank(A)<rank([A b]) ), non esistono soluzioni; una soluzione approssimata è >> x=pinv(A)*b (soluzione a min norma d’errore) </li></ul>Operazioni <ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>
    19. 19. Funzioni <ul><li>Arrotondamento - round arrotonda all’intero più vicino >> round(1.5) >>round(1.49…9) (15 o 16 c.d.) - fix arrotonda verso lo 0 >> fix(1.9) >> fix(1.1) >> fix(-2.1) - floor arrotonda per difetto all’intero più vicino >> foor(1.9) >> floor(-2.6) >> floor(-2.1) - ceil arrotonda per eccesso all’intero più vicino >> ceil(1.9) >> ceil(1.1) >> ceil(-2.1) </li></ul><ul><li>Approssimazioni razionali - rem resto di una divisione intera >> rem(3,2) >> rem(2,3) >> rem(2,0) - mod risultato della a mod b >> mod(3,7) >> mod(7,3) - rats approssimazione razionale >> rats(9.22) </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    20. 20. Funzioni <ul><li>Aritmetica complessa - real parte reale - imag parte immaginaria - conj coniugato complesso - abs valore assoluto o modulo complesso - angle angolo di fase </li></ul><ul><li>Esempi >> 2+3i >> 2+3j >> 2+3*i >> clear i >> a=3,z=2+ai </li></ul><ul><li>Esercizio. Si tabelli il modulo e la fase della funzione razionale fratta riportata, per s=j  ed  [10^(-2):10^2] </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    21. 21. Funzioni <ul><li>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 </li></ul><ul><li>Esempio >> x=(1:.1:5)’; y=log(x); [x y] >> plot(x,y) </li></ul><ul><li>… proviamo a disegnare qualche altra funzione elementare ... </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    22. 22. Funzioni <ul><li>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 </li></ul><ul><li>L’esempio della circonferenza >> teta=-pi:.1:pi; x=cos(teta); y=sin(teta); >> [fase,modulo]=cart2pol(x,y) >> plot(x,y) >> plot(modulo,fase) </li></ul><ul><li>… . proviamo a rappresentare qualche altra funzione trigonometrica …. </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    23. 23. Funzioni <ul><li>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 </li></ul><ul><li>- sort ordinamento in senso crescente >> R=[1,2;5,1;3,3;2,4]; A=sort(R) >> [S,i1]=sort(R); B=R(i1,:) </li></ul><ul><li>- sum, rank, det, poly, trace, norm, eig, mean, expm, logm, sqrtm </li></ul><ul><li>>> 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 </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    24. 24. Operazioni di relazione <ul><li>Operatori di relazione - < minore - <= minore o uguale - > maggiore - >= maggiore o uguale - == uguale - ~= diverso </li></ul><ul><li>Operatori logici - & and - | or - xor or esclusivo - ~ not </li></ul><ul><li>Esempi >> 2>3 >> 2+2~=4 >> P=(rem(A,2)==0) (gli elementi di A divisibili per 2) </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    25. 25. Operazioni logiche <ul><li>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<0) >> all(A>=0) >> any(A>0.5) - 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)<tolleranza) </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    26. 26. Esercizi <ul><li>Si rappresentino 5 periodi della funzione |sin t| </li></ul><ul><li>Si definisca il vettore x contenente 31 valori dell’intervallo [1/2, 2 5 ] ottenuti con spaziatura logaritmica in base 2 </li></ul><ul><li>Definito un opportuno vettore x si valutino L=(x>=2), L=(x<3), L=(x>3), L=(x<4 & x>-4) </li></ul><ul><li>Dato il vettore x=(1, 34, 2, -12, 56, 7, 0, 9) visualizzare i valori maggiori di 5. </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    27. 27. Esercizi <ul><li>Dati x=3+j5, y=-2+j4, z=j3, si calcolino: x+y, x-z, (x+y)z, |x|, 1/y, z 2 , log(x), e y , |x/y| </li></ul><ul><li>Si risolva il sistema di equazioni: x+y=a 3x+2y=b per a=(1, 4, 3) e b=(1, sqrt(3), 0.5) </li></ul><ul><li>Si rappresenti la funzione e 3t sin 5  t per t  [-2,2] con 45 punti </li></ul><ul><li>Op aritmetiche </li></ul><ul><li>Funzioni </li></ul><ul><li>Op di relazione </li></ul><ul><li>Op logiche </li></ul><ul><li>Esercizi </li></ul>Operazioni
    28. 28. Corso Introduttivo al MATLAB Programmazione <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul><ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>
    29. 29. Le strutture fondamentali <ul><li>La struttura if-then-else if condizione , istruzioni elseif condizione , istruzioni else istruzioni end </li></ul><ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>Programmazione <ul><li>L’iterazione for for i=1:n, istruzioni end </li></ul><ul><li>L’iterazione while while condizione , istruzioni end </li></ul><ul><li>T=0:.1:2; for t=T, y=[y,sin(t)]; end » y=sin(T); </li></ul><ul><li>[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); </li></ul>
    30. 30. Script files 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 <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>Programmazione
    31. 31. Script files <ul><li>Un esempio sulla dipendenza dei tempi di calcolo dalla struttura di programmazione adottata [es_tempicalcolo] </li></ul><ul><li>clear ; </li></ul><ul><li>tic </li></ul><ul><li>for i=1:10000 </li></ul><ul><li>t(i)=.1*i; </li></ul><ul><li>y(i)=t(i)^2; </li></ul><ul><li>end ; </li></ul><ul><li>toc </li></ul><ul><li>clear </li></ul><ul><li>tic </li></ul><ul><li>t=[0:.1:1000]'; </li></ul><ul><li>y=t.^2; </li></ul><ul><li>toc </li></ul><ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>Programmazione
    32. 32. Funzioni La struttura delle “function” [es_function] function [t,y]=es_function(x) %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) <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>Programmazione
    33. 33. Funzioni Un esempio con lo switch function [multipli,non_multipli]=mult(base) % Nei primi 100 interi, i numeri multipli della base data base=2; non_multipli=0; multipli=1; while n<=100 switch rem(n,base)==0 case 0 non_multipli=[non_multipli n]; case 1 multipli=[multipli n]; end n=n+1; end <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>Programmazione
    34. 34. Esercizi sulla programmazione Programmazione <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul><ul><li>Verificare che la funzione cos(x) nell’intorno dell’origine è approssimabile con le somme parziali del suo sviluppo in serie di Mc Laurin, tracciando i grafici della funzione cos(x) e delle prime 5 somme parziali nell’intervallo [-  , +  ] [es_taylor] : </li></ul><ul><li>Verificare che il calcolo vettoriale consente di ridurre i tempi di elaborazione rispetto all’implementazione di una struttura classica di programmazione </li></ul>
    35. 35. Esercizi <ul><li>A partire dalle curve di coppia di un motore, individuare una regressione lineare del tipo [es_linreg] : </li></ul><ul><li>x 1 + x 2 * (rpm) + x 3 * (rpm) 2 + x 4 * (throttle) = torque </li></ul>Operazioni <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>
    36. 36. Operazioni Esercizi <ul><li>Un motore a combustione interna è caratterizzato dai seguenti valori di consumo specifico [g/kWh], in funzione del numero di giri e della coppia [es_cons_spe]: </li></ul><ul><li>Stimare il consumo specifico nelle condizioni indicate dal simbolo “?”. </li></ul><ul><li>Determinare il punto di minimo consumo specifico, nel campo 1000<n<6000, 10<C<100. Suggerimento: utilizzare grafici 3D. </li></ul><ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>6000 5000 4000 3000 2000 1000 Num giri [rpm] ? 359 389 10 346 20 365 335 30 ? 40 309 50 344 60 341 70 390 80 90 ? 314 344 100 Coppia [Nm]
    37. 37. Esercizi <ul><li>Si calcolino il lavoro utile e l’efficienza globale di un impianto con turbina a gas in cui il fluido evolve secondo il ciclo termodinamico di Joule [es_joule_id]. </li></ul><ul><li>Ipotesi: </li></ul><ul><ul><li>Funzionamento ideale; </li></ul></ul><ul><ul><li>Condizioni ambiente all’aspirazione; </li></ul></ul><ul><ul><li>Fluido di lavoro: aria; </li></ul></ul><ul><ul><li>Rapporto di compressione:  =[1:1:30]; </li></ul></ul><ul><ul><li>Temp. Max ciclo: T3=[1073 1273 1573] K </li></ul></ul><ul><li>Si rappresentino gli andamenti dell’efficienza e del lavoro utile al variare di  e T3. </li></ul><ul><li>Si calcolino i punti di massimo delle curve relative al lavoro utile. </li></ul><ul><li>Si rappresentino gli andamenti di efficienza al variare del grado di rigenerazione (R=[0 0.5 0.9 1]) per T3=1273 K. </li></ul><ul><li>Si rappresenti il ciclo termodinamico sul piano (s,T) e si valutino il lavoro utile, il calore addotto ed il rendimento in funzione dell’area del ciclo. </li></ul>Operazioni <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>
    38. 38. Esercizi <ul><li>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: </li></ul><ul><li> Hr = k 1 * n 2 + 2*k 2 n * Q - k 3 * Q 2 </li></ul><ul><li>HE = k 5 * n 2 – k 6 * Q*n </li></ul><ul><li>mentre la prevalenza esterna può essere espressa come Hest = Hu + k 4 * Q 2. </li></ul><ul><li>A partire dai dati rilevati nelle quattro misure indicate rappresentare graficamente gli andamenti delle prevalenze Euleriana, reale ed esterna ed il rendimento al variare della portata volumetrica per vari regimi di rotazione [es_curvecaratt] . Si assuma k 4 = k 6 =1; k 5 =14; Hu=20 m </li></ul><ul><li>1) Q= 1 m 3 /h; n= 1000 rpm; Hr = 11 m </li></ul><ul><li>2) Q =2 m 3 /h; n = 2000 rpm ; Hr = 44 m </li></ul><ul><li>3) Q =4 m 3 /h ; n = 3000 rpm; Hr = 98 m </li></ul><ul><li>4) Q =10 m 3 /h; n = 3500 rpm; Hr = 92.5 m </li></ul>Operazioni <ul><li>Le strutture fondamentali </li></ul><ul><li>Script files </li></ul><ul><li>Funzioni </li></ul><ul><li>Esercizi sulla programmazione </li></ul>
    39. 39. Corso Introduttivo al MATLAB Polinomi e Grafica 3D <ul><li>Operazioni su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul><ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>
    40. 40. Operazioni sui polinomi <ul><li>Definizione di un polinomio >> p=[1 0 -1]; (definisce il polinomio x 2 -1) </li></ul><ul><li>Le radici di un polinomio >> roots([1 0 -1]) >> roots([1 -2 -15]) </li></ul><ul><li>Dalle radici al polinomio >> radici=[-1,1]; poly(radici) >> radici=[-3,-5]; poly(radici) </li></ul><ul><li>Il prodotto di polinomi >> a=[1 0 1]; b=[1 1]; c=conv(a,b) </li></ul><ul><li>Il rapporto di polinomi a(s)=q(s)b(s)+r(s) >> [q,r]=deconv(a,b) >> [q,r]=deconv(b,a) </li></ul><ul><li>Il valore di un polinomio in un punto >> polyval(a,3) </li></ul><ul><li>La derivata di un polinomio >> polyder(a) </li></ul><ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>Polinomi e Grafica
    41. 41. Interpolazione <ul><li>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) </li></ul><ul><li> [es_polyfit1] </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    42. 42. Interpolazione <ul><li>Il comando spline (interpolazione con cubiche) - il significato fisico (la spline usata per disegnare) - si infittisce l’intervallo tra i campioni, tra questi si cerca un’approssimazione polinomiale e si assicura la differenziabilità fino ad un certo ordine nei punti di giunzione (la cosiddetta “pp-form”): </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>>> 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)
    43. 43. Interpolazione <ul><li>Il comando interp1 per l’interpolazione 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) o altre opzioni come ‘spline’ e ‘cubic’. </li></ul><ul><li>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) </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    44. 44. Esercizi sui polinomi <ul><li>Calcolare i punti estremali, le intersezioni con gli assi e gli eventuali punti di flesso della funzione f(x)=x 4 +5x 3 +1. [es_polinomi] </li></ul><ul><li>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. </li></ul><ul><li>La densità dell’aria  (in g/m 3 ) 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 dell’errore commesso. Si calcolino poi i valori della densità dell’aria 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 </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    45. 45. Esercizi sui polinomi <ul><li>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] : </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>Rappresentare l’andamento 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
    46. 46. Grafici tridimensionali <ul><li>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); </li></ul><ul><li>Il colore per i grafici >> [X,Y]=meshgrid(-8:.5:8);R=sqrt(X.^2+Y.^2)+eps >> Z=sin(R)./R; surf(Z); </li></ul><ul><li>La mappa dei colori Red Green Blue (RGB) nero 0 0 0 bianco 1 1 1 giallo 1 1 0 magenta 1 0 1 cyan 0 1 1 grigio 0.5 0.5 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) </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    47. 47. Grafici tridimensionali <ul><li>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]) </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>x y -y z Az El
    48. 48. Grafici tridimensionali <ul><li>I solidi di rotazione ottenuti col comando cylinder - due possibili rotazioni della retta y=x: » cylinder(0:.1:2) » cylinder(-2:.1:2) - 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) </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    49. 49. Esercizi su grafici tridimensionali <ul><li>Si rappresenti la funzione z=x 2 + 4y nel piano [z,x] al variare di y, nel piano [z,y] al variare di x e nello spazio 3D [es_grafici3d] </li></ul><ul><li>%piano x,z </li></ul><ul><li>x=[-10:10];hold on </li></ul><ul><li>for y=-2:2 </li></ul><ul><li>z=x.^2+4*y;plot(x,z) </li></ul><ul><li>end </li></ul><ul><li>hold off </li></ul><ul><li>%piano y,z </li></ul><ul><li>clear x, y;y=[-10:10];figure;hold on </li></ul><ul><li>for x=-2:2 </li></ul><ul><li>z=x.^2+4*y;plot(y,z) </li></ul><ul><li>end </li></ul><ul><li>hold off </li></ul><ul><li>%spazio3D </li></ul><ul><li>clear x,y;x=[-10:10];y=[-10:10]; figure </li></ul><ul><li>[X,Y]=meshgrid(x,y); </li></ul><ul><li>Z=X.^2+4*Y; </li></ul><ul><li>plot3(X,Y,Z);mesh(X,Y,Z);surf(X,Y,Z); </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    50. 50. Esercizi su grafici tridimensionali <ul><li>Si risolva graficamente il problema di ottimizzazione vincolata min x 2 +y 2 +z 2 con il vincolo x 2 +2y+4z-14 Suggerimento: si disegni prima il vincolo. </li></ul><ul><li>Ritornando all’esempio della sfera presentato in precedenza, si disegni in nero la sola semisfera inferiore e poi la sola semisfera di destra. </li></ul><ul><li>Utilizzando il comando help e la funzione peak , si utilizzino i comandi - hist, stem, stem3, pie, light </li></ul>Polinomi e Grafica <ul><li>Op su polinomi </li></ul><ul><li>Interpolazione </li></ul><ul><li>Esercizi sui polinomi </li></ul><ul><li>Grafici tridimensionali </li></ul><ul><li>Esercizi su 3D </li></ul>
    51. 51. Corso Introduttivo al MATLAB Funzioni Avanzate <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca dei Minimi e degli Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul><ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>
    52. 52. Analisi Statistica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Definizione di una distribuzione di variabili normale (oppure Beta, Binomiale, Chi-square, etc…) >> R=normrnd(10,1,100,1); </li></ul><ul><li>Calcolo della probability density function in x >> y=normpdf(x,10,1) </li></ul><ul><li>p.d.f : f(x)=Pr{x < X < x+dx} </li></ul><ul><li>Calcolo dei momenti primo e secondo >> mean(R) >> std(R) </li></ul><ul><li>Calcolo della matrice di covarianza e dei coefficienti di correlazione >> cov(R1,R2) >> corrcoef(R1,R2) </li></ul><ul><li>Confronto tra distribuzioni normali al variare del momento secondo >> x=[0:20] >> y1=normpdf(x,10,1) </li></ul><ul><li>>> y2=normpdf(x,10,2) </li></ul><ul><li>>> plot(x,y1,x,y2) </li></ul>
    53. 53. Ricerca Minimi e Zeri <ul><li>Minimo e zero di una funzione function b=es_minimo(v); b=(v+1).*exp(-v.^2); </li></ul><ul><li>return </li></ul><ul><li>>> a= fminbnd (‘ es_minimo ’,-2,2) >> a= fzero (‘ es_minimo ’,-2) </li></ul><ul><li>Minimo di una funzione di più variabili function 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 </li></ul><ul><li>>> a= fminsearch (‘ es_minimo2 ’,[-0.6 -1.2 0.135]) </li></ul><ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate
    54. 54. Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Calcolare le radici dell’equazione </li></ul><ul><li>x 2 -3sinx+0.1=0 </li></ul><ul><li>Calcolare il minimo della funzione </li></ul><ul><li>f(x,y)=e (x-y) +x 2 +y 2 </li></ul><ul><li>>>minimo=fminsearch( 'es_minimo_fun' ,[-0.3 0.3]) </li></ul><ul><li>function z=es_minimo_fun(v); </li></ul><ul><li>x=v(1);y=v(2); </li></ul><ul><li>z=exp(x-y)+x^2+y^2; </li></ul><ul><li>return </li></ul>
    55. 55. Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>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 l’andamento attraverso la struttura funzionale seguente [es_minimo2] : </li></ul><ul><li>y=lambda(1)*exp[-lambda(2)*t] </li></ul>Soluzione
    56. 56. Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate clear all;clc global dati load es_minimo2_dati t=dati(:,1); y=dati(:,2); plot(t,y, 'ro' ) pause; lambda0=[3 1]; lambda=fminsearch( 'es_minimo2_fun' ,lambda0) [err,z]=es_minimo2_fun(lambda); plot(t,y, 'ro' ,t,z) 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
    57. 57. Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>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 l’andamento attraverso la struttura funzionale seguente [es_minimo3] : </li></ul><ul><li>y=c(1)*exp[-lambda(1)*t]+c(2)*exp[-lambda(2)*t] </li></ul>
    58. 58. Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni 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 prefis s ato periodo di tempo ed in ordinata il prezzo unitario del bene. L’intersezione 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] .
    59. 59. <ul><li>Si calcoli il minimo della funzione </li></ul><ul><li>x 4 +6xy+xy 3 -6xz 3 -yz+4z 3 </li></ul><ul><li>Una fabbrica decide di iniziare la produzione di un nuovo tipo di caramelle dietetiche. Il costo di produzione è di L. 1000 per confezione e l’ufficio di marketing prevede una richiesta settimanale di 100000/p 2 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 [ es_max_prof ] . </li></ul>Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate
    60. 60. <ul><li>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: </li></ul><ul><li> Hr = k 1 * ( n/1000) 2 + 2*k 2 (n/1000) * Q - k 3 * Q 2 </li></ul><ul><li>HE = k 5 * ( n/1000) 2 – k 6 * Q*(n/1000) </li></ul><ul><li>mentre la prevalenza esterna può essere espressa come Hest = Hu + k 4 * Q 2. </li></ul><ul><li>Si assuma k 1 =10; k 2 = k 3 = k 4 = k 6 =1; k 5 =14; Hu =20 </li></ul><ul><li>Calcolare il punto ottimale di funzionamento corrispondente al massimo rendimento con il vincolo di uguaglianza tra caratteristica interna ed esterna. Eseguire l’ottimizzazione sia con un metodo di minimizzazione non vincolata impiegando una penalty function , sia con un metodo di minimizzazione vincolata [es_curvecaratt]: </li></ul><ul><li>1 – max [  - k * ( Hr - Hest ) 2 ] </li></ul><ul><li>2 – max  con Hr =Hest e dHr/dQ <0 </li></ul>Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate
    61. 61. Carico termico ed elettrico Cogeneratore Utenza termica Utenza elettrica Ausiliario (caldaia) ENEL Serbatoio Esercizi su Ricerca Minimi e Zeri <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate [es_ cogenerazione ]
    62. 62. Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>La risoluzione delle equazioni differenziali ordinarie in Matlab viene eseguita con due metodi: </li></ul><ul><li>1 - ode23 usa il metodo di Runge-Kutta del 2°-3° ordine; </li></ul><ul><li>2 - ode45 usa il metodo di Runge-Kutta del 4°-5° ordine; </li></ul><ul><li>La sintassi è identica per le due funzioni e richiede che l’equazione da integrare sia espressa come sistema di equazioni ordinarie del primo ordine: </li></ul><ul><li>>> [t,x]=ode23(‘xpunto’,t0,tf,x0) </li></ul>
    63. 63. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Le equazioni di Volterra-Lokta descrivono un modello semplificato dell’evoluzione di due specie in competizione tra loro (noto come modello preda-predatore ): </li></ul><ul><li>Si studi la soluzione di queste equazioni a partire dai parametri nominali a=2.7, b=0.7, c=1, d=3 [es_loktavolterra] . </li></ul>preda Soluzione predatore
    64. 64. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate clear 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
    65. 65. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Simulare il modello preda-predatore rappresentato dalle equazioni di Volterra - Lokta in presenza dell’effetto ‘pesca’: </li></ul><ul><li>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 nell’intervallo t = [0:.1:10] [es_loktavolterra2] . </li></ul><ul><li>2) Si identifichi il valore ottimale del parametro ‘h’ che consenta di riprodurre attraverso il sistema di equazioni l’andamento preda/tempo riportato nel file loktavolterra.mat, lasciando invariati i valori degli altri parametri [es_loktavolterra2min] . </li></ul>preda predatore
    66. 66. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Partendo dalla legge rappresentativa di una trasformazione adiabatica: </li></ul><ul><li>P v K = cost. </li></ul><ul><li>riprodurre la fase di compressione ideale per un motore ad accensione comandata [es_compr_id] . </li></ul>
    67. 67. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>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 l’andamento della pressione nel serbatoio nelle seguenti condizioni [es_serbatoio]: </li></ul><ul><ul><li>Volume serbatoio = 10 m 3 ; </li></ul></ul><ul><ul><li>Pressione iniziale serbatoio = 1 bar; </li></ul></ul><ul><ul><li>Temperatura aria = 300 K; </li></ul></ul><ul><ul><li>Regime rotazione pompa = 2000 rpm; </li></ul></ul><ul><ul><li>Hr = 10* ( n/1000) 2 + 2* (n/1000) * Q - Q 2; </li></ul></ul><ul><ul><li>Hest = Hu + k 4 * Q 2 Hu =  z +  P/  </li></ul></ul>Soluzione
    68. 68. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni 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
    69. 69. Corso Introduttivo al MATLAB Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul><ul><li>Elementi fondamentali </li></ul><ul><li>Operazioni </li></ul><ul><li>Polinomi e Grafica </li></ul><ul><li>Programmazione </li></ul><ul><li>Funzioni avanzate </li></ul><ul><li>Simulink </li></ul>
    70. 70. Come costruire uno schema <ul><li>Un primo esempio: un sistema massa-molla </li></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul><ul><li>Lo schema Simulink corrispondente </li></ul>m k f x=0  dt 1/m  dt k f + -
    71. 71. Come costruire uno schema <ul><li>L’uso del mouse: </li></ul><ul><ul><li>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 </li></ul></ul><ul><ul><li>Sulle linee bottone sin per selezionare e spostare linee bottone sin su vertice per spostare il vertice bottone dex per creare una diramazione </li></ul></ul><ul><ul><li>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 </li></ul></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>
    72. 72. Sources e Sinks <ul><li>Sources: </li></ul><ul><ul><li>Il clock per il tempo simulato </li></ul></ul><ul><ul><li>La costante anche definibile dal workspace </li></ul></ul><ul><ul><li>Una generica variabile temporale definita col From Workspace (è necessario anche il tempo) </li></ul></ul><ul><ul><li>Un segnale periodico con il Repeating Sequence </li></ul></ul><ul><ul><li>La sinusoide e il gradino </li></ul></ul><ul><li>Sinks: </li></ul><ul><ul><li>Per assegnare il valore ad una variabile con il To Workspace (occhio ai parametri!) </li></ul></ul><ul><ul><li>Stop Simulation per fermare la simulazione </li></ul></ul><ul><ul><li>Lo Scope per visualizzare la variabile durante la simulazione </li></ul></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>
    73. 73. La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>Istante di tempo iniziale < Istante di tempo finale </li></ul></ul><ul><ul><li>I metodi di risoluzione a passo fisso: * il metodo di Eulero (rapporto incrementale) * il metodo di Runge Kutta </li></ul></ul><ul><ul><ul><li>* l’opzione Mode/MultiTasking per consentire la verifica di incoerenza nella connessione di blocchi con diversi periodi di campionamento </li></ul></ul></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>
    74. 74. La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>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): </li></ul></ul><ul><ul><ul><li>* per modificare la tolleranza assoluta sulla singola variabile, usare i parametri dell’integratore </li></ul></ul></ul><ul><ul><li>L’opzione Refine Output per valutare le uscite del sistema in un numero maggiore di punti (di un fattore e questa opzione non cambia l’intervallo di integrazione), o in un numero prefissato di punti. </li></ul></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>
    75. 75. Esercizi <ul><li>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] . </li></ul><ul><li>Simulare la risposta dinamica di un autoveicolo ad una variazione a gradino della coppia motrice [es_dynvehicle] . </li></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>
    76. 76. Esercizi sulla Integrazione Numerica <ul><li>Analisi Statistica </li></ul><ul><li>Ricerca Minimi e Zeri </li></ul><ul><li>Derivazione ed Integrazione Numerica </li></ul>Funzioni Avanzate <ul><li>Il modello semplificato di un satellite in orbita circolare intorno a un pianeta è: </li></ul><ul><li>dove r è la distanza del satellite dal centro del pianeta,  è l’angolo di azimut (detto in altri termini anomalia, se pensiamo al riferimento che giace nel piano dell’orbita 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). </li></ul><ul><li>Si studi il moto del satellite in orbita intorno alla terra per quote variabili tra 350 e 500 km. [es_satellite] </li></ul>
    77. 77. La simulazione <ul><li>I parametri della simulazione: </li></ul><ul><ul><li>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): </li></ul></ul><ul><ul><ul><li>* per modificare la tolleranza assoluta sulla singola variabile, usare i parametri dell’integratore </li></ul></ul></ul>Simulink <ul><li>Come costruire uno schema </li></ul><ul><li>Sources e Sinks </li></ul><ul><li>La simulazione </li></ul><ul><li>Esercizi </li></ul>

    ×