Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Documenti analoghi
Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Introduzione a MATLAB

Uso avanzato di MATLAB

MATLAB Funzioni grafiche Salvataggio/recupero dati da file

Laboratorio di Matlab

Fondamenti di Informatica. P r o f. R a f f a e l e P i z zo l a n t e A. A / 1 7

Esempio 1: Dato il vettore A=-10:2:10

Fondamenti di Informatica

Laboratorio di Matlab

Esercitazione 00 Introduzione a Matlab

Operatori relazionali

UD6 - MATLAB. Gestione della grafica

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

Introduzione a MATLAB

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Introduzione a MATLAB

Università degli Studi di Ferrara

Elementi di Calcolo Scientifico per l Ingegneria A.A

MATLAB (3) - Grafica 2 e 3D

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Fondamenti di Informatica

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A

Strutture di controllo

MATLAB Elementi di grafica Costrutti di programmazione

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

A.A. 2018/2019. Gestione File, Grafici in MATLAB e Cenni Introduttivi su Simulink FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

ESERCITAZIONE MATLAB

CORSO DI LABORATORIO DI INFORMATICA

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

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

Introduzione a MATLAB

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

2 a lezione - laboratorio

Visualizzazione di dati

Università degli Studi di Ferrara

Finestre grafiche. >> figure >> figure(n)

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Introduzione a MATLAB

Strutture di controllo condizionali in Matlab

Lezione PSPICE n.2. Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Fondamenti di Informatica

8 Introduzione MATLAB

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

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

A. Introduzione a Matlab

Introduzione a Matlab

Prove d esame Esercizi con Matlab

Aritmetica in Floating Point

Laboratorio di Matematica Computazionale A.A Lab. 3

Grafici. Un programma grafico inizia con un comando che chiude una eventuale finestra grafica precedente: close

CONTROLLI AUTOMATICI INTRODUZIONE A MATLAB

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Estrazione di dati da una matrice

Selection Sort (minsort)

G. Bracco.Appunti di Fisica Generale. G. Bracco.Appunti di Fisica Generale

FONDAMENTI DI SEGNALI E TRASMISSIONE 2 Laboratorio

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

MATLAB - Programmazione - 2. Antonino Polimeno

CONTROLLI AUTOMATICI INTRODUZIONE A MATLAB

Introduzione a Matlab Parte 1

Breve introduzione a MATLAB

8 Introduzione MATLAB

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Introduzione a MatLab

Fondamenti di Informatica

Introduzione a Matlab

Introduzione a MATLAB

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Cristian Secchi Pag. 1

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

Cicli. S i a i = a 1 + a 2 + a a n

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Calcolo Numerico A.A Lab n

Introduzione a Matlab

Introduzione a Matlab

Laboratorio di Calcolo Numerico

Calcolo Numerico I - a.a Laboratorio 3 - Introduzione a MATLAB

Corso di Laboratorio di Sistemi Operativi

PROGRAMMAZIONE STRUTTURATA

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Foglio di esercizi n.1

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

Programmare con MatLab IV

Introduzione al Linguaggio C

Programmazione Matlab

Introduzione a MATLAB

Ing. Lorenzo Vismara

Introduzione al MATLAB c Parte 2 Funzioni

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

Transcript:

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici Introduzione a MATLAB lezione n. 5 Dr. Carlo Petrarca Dipartimento di Ingegneria Elettrica Università di Napoli FEDERICO II 1

MATLAB come linguaggio di programmazione ciclo for. ciclo if ciclo while 2

Controllo di flusso: ciclo for. Il ciclo for consente di ripetere un certo numero di volte le istruzioni in esso contenute Esempio: Il ciclo for ha la seguente struttura: for variabile = espressione istruzioni Calcolare il valore della funzione y(k)=2^k per k=1,2,3,4 for k=1:4 y(k)=2^k; >> y y = 2 4 8 16 3

L uso eccessivo di cicli for può allungare i tempi di calcolo Basta fare una verifica con le istruzioni sotto riportate. Il vettore V=R*I viene ricavato in due modi diversi: a) si usa un ciclo for; b) si usa il prodotto elemento per elemento. Il risultato è lo stesso, ma i tempi di calcolo sono estremamente diversi! a) R=[1:1:1e+5]; I=[1:1:1e+5];tic; for k=1:1e+5; V(k)=R(k)*I(k); ;toc; b) R=[1:1:1e+5]; I=[1:1:1e+5]; tic;v=r.*i;toc; N.B. utilizzando il comando tic all inizio di un operazione ed il comando toc alla fine della stessa, MATLAB restituisce il tempo impiegato per il calcolo 4

Controllo di flusso: ciclo if Il ciclo if consente di eseguire istruzioni solo se una determinata espressione risulta vera Il ciclo if ha la seguente struttura: if espressione istruzioni if k==2 y=1; if k==2 y=1; elseif k==4 y=0; if k>0 y=1; else y=0; 5

% Esempio n.2 ciclo if clc; clear all; % Immissione dati da tastiera A=input('Inserisci un numero='); if A==5 disp('ho immesso il numero 5'); elseif A==3 disp('ho immesso il numero 3'); else disp('il numero immesso è diverso da 3 e diverso da 5'); 6

Per il controllo di flusso occorrono gli operatori relazionali gli operatori relazionali più comuni sono: == uguale ~= diverso da < minore di <= minore o uguale > maggiore di >= maggiore o uguale 7

Esercizio Creare un vettore di 10.000 elementi scelti in modo casuale secondo una distribuzione uniforme nell intervallo [0,100]. Valutare poi la percentuale di elementi compresa nei seguenti intervalli: I1: [0,25[ I2: [25,50[ I3: [50,75[ I4: [50,75[ 8

Ntot=10000; % Numero di elementi a=0; b=100; U=a+(b-a).*rand(Ntot,1); % creazione del vettore N1=0; N2=0; N3=0; N4=0; % Inizializzazione for k=1:ntot if U(k)>=0 & U(k)<25 N1=N1+1; elseif U(k)>=25 & U(k)<50 N2=N2+1; elseif U(k)>=50 & U(k)<75 N3=N3+1; elseif U(k)>=75 & U(k)<100 N4=N4+1; disp('percentuali rilevate'); disp(' %N1 %N2 %N3 %N4 ') disp([n1/ntot*100 N2/Ntot*100 N3/Ntot*100 N4/Ntot*100]) 9

I cicli possono essere innestati, uno dentro l altro. for variabile1 = espressione1 for variabile2 = espressione2 istruzioni for k=1:3 for j=1:2 a(j,k)=k*j; >> a a = 1 2 3 2 4 6 Esercizi: Creare una matrice unità [5 5] Creare una matrice [5 4] triangolare superiore 10

Controllo di flusso: while Il ciclo while consente di eseguire un blocco di istruzioni finchè una determinata espressione risulta vera. Quando l espressione risulta falsa, il flusso del programma esce dal ciclo. Il ciclo while ha la seguente struttura: while espressione istruzioni num=10; eps=.1; k=0; while eps<num k=k+1; a(k)=num; num=num/2; >> a a = 10.0 5.0 2.5 1.25 0.625 0.3125 0.1563 11

Il comando break Il comando break consente di uscire rapidamente da un ciclo for o while. Se break è presente in un ciclo innestato, esso consente l uscita solo dal ciclo interno. clear all; clc; k=0; while 1 n=input('scrivi un numero= ') if n<0, break, k=k+1; m(k)=n^2; Il ciclo continua finchè non viene inserito un numero minore di zero 12

Esercizio esempio3.m Creare un file.m con cui valutare l epsilon di macchina L epsilon di macchina ε è il numero più piccolo che sommato ad 1 restituisce un valore maggiore di 1 : ε + 1 > 1 ε dà indicazioni sul massimo numero di cifre significative In Matlab la costante eps contiene il valore dell epsilon di macchina eps = 2.2204e 16 13

% Esempio n.3 % Calcolo dell'epsilon di macchina nella forma 2^-k % Ripulisco la Command Window e cancello le variabili clc; clear all; k=0; epsilon=1; while 1~=1+epsilon epsilon = epsilon/2; k=k+1; % Comincio dal numero 2^0 % Dimezzo il valore di epsilon % Il ciclo è eseguito una volta in più del necessario % Correggo i valori di epsilon e di k epsilon=epsilon*2 k=k-1; % epsilon=2^-k 14

Esercizi 1) Creare un file.m con cui valutare il più piccolo numero x min rappresentabile in Matlab nella forma 2^k x min è il numero per il quale si ha (x min /2)=0 2) Creare un file.m con cui valutare il più grande numero x max rappresentabile in Matlab nella forma 2^k x max è il numero per il quale si ha (x max *2)=inf 15

Grafici Il comando plot permette di costruire grafici Se x e y sono due vettori della stessa lunghezza, il comando plot(x,y) permette di tracciare il grafico della funzione y=f(x) x=[-2*pi:pi/10:2*pi]; y=sin(x); plot(x,y) 16

Ogni volta che si traccia un grafico, viene aperta una finestra Figure Se si invia un nuovo comando plot, nella finestra Figure il grafico precedente viene sostituito da quello nuovo. Il comando figure consente di creare una nuova finestra in cui inserire il grafico. x=[1:100]; y=log10(x); figure(1); plot(x,y) w=[-100:100]; z=10*w.^2+6*w+3; figure(2); plot(w,z)) 17

Il comando plot consente di specificare il colore, lo stile, I marker della linea da tracciare. A tal fine, è necessario inserire la stringa s : plot(x,y, s ) la stringa s ha la forma del tipo s = colore-marker-stile Ad esempio: colore: b (blue) g (green) r (red) y (yellow) c (cyan) k (black) marker:. (punto) o (cerchio) s (quadrato) + (croce) * (stella) d (rombo) x (ics) stile: - (continua) : (puntata) -. (punto-linea) -- (tratteggiata) 18

plot(x,y,'ro--') plot(x,y,'gd-') 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0-0.2-0.2-0.4-0.4-0.6-0.6-0.8-0.8-1 -8-6 -4-2 0 2 4 6 8-1 -8-6 -4-2 0 2 4 6 8 1 plot(x,y,'k*:') 1 plot(x,y,'mv') 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0-0.2-0.2-0.4-0.4-0.6-0.6-0.8-0.8-1 -8-6 -4-2 0 2 4 6 8-1 -8-6 -4-2 0 2 4 6 8 19

Il comando hold on stesso grafico consente di tracciare più curve su uno >> x=[-2*pi:pi/10:2*pi]; y=sin(x); plot(x,y) >> z=cos(x); hold on; plot(x,z,'r+-') 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 -8-6 -4-2 0 2 4 6 8 20

Possiamo inserire un titolo al grafico >> title( Funzione seno') Possiamo dare un etichetta agli assi x e y >> xlabel('x [rad]') >> ylabel('sin(x)') Possiamo decidere il tipo di carattere da utilizzare >> xlabel('x [rad], Fontame, Arial ) O anche la dimensione del carattere >> xlabel('x [rad], Fontname, Arial, Fontsize, 13) 21

Possiamo anche usare caratteri dell alfabeto greco >> title('funzione sen( \omega t + \alpha)') Oppure usare pedici e apici Funzione sen(ωt + α) >> ylabel('successione x_n = \beta _1 + n^2') successione x n =β 1 + n 2 MATLAB assegna automaticamente il range degli assi. Si può usare il comando axis([xmin xmax ymin ymax]) per scegliere il range in modo autonomo >> axis([-2*pi 2*pi -1 1]) Il comando grid consente di mostrare una griglia >> grid 22

Cliccando sul comando Tools Edit plot è possibile modificare manualmente le caratteristiche del grafico e, cioè, cambiare i colori, i simboli, il titolo, gli assi, ecc. 23

Il comando subplot Il comando subplot permette di costruire più grafici nella stessa finestra subplot(m,n,p) Suddivide la finestra in una matrice (m n) di grafici Seleziona il grafico p-esimo subplot(2,3,1) Ottengo una finestra con (2 3) grafici e lavoro sul grafico 1 24

Creare il file usa_subplot.m con il quale tracciare su un unico grafico le funzioni: sin(x); cos(x); sin(x)^2; cos(x)^2; cos(x)*sin(x); cos(x)+sin(x) 1 Funzione sin(x) 1 Funzione cos(x) 1 Funzione sin(x) 2 0.5 0.5 0.8 0.6 0 0 0.4-0.5-0.5 0.2-1 -1 0 0 5 10 0 5 10 0 5 10 1 Funzione cos(x) 2 0.5 Funzione sin(x)*cos(x) 1.5 Funzione sin(x)+cos(x) 0.8 1 0.6 0.4 0 0.5 0-0.5 0.2-1 0 0 5 10-0.5 0 5 10-1.5 0 5 10 25