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

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

Introduzione a MATLAB

Introduzione a MATLAB

MATLAB Elementi di grafica Costrutti di programmazione

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

Uso avanzato di MATLAB

Operatori relazionali

Esercitazione 00 Introduzione a Matlab

Introduzione a MatLab

Laboratorio di Matlab

Introduzione a Matlab

INTRODUZIONE A MATLAB

2 a lezione - laboratorio

Calcolo Numerico I - A.A Laboratorio 3

Introduzione a MATLAB

Introduzione a Matlab Parte 1

Ciclo di seminari: Metodi Computazionali per la Finanza

Introduzione a MATLAB

Introduzione a Matlab

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

Introduzione a MATLAB

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

Introduzione al MATLAB c Parte 2 Funzioni

Introduzione al MATLAB c Parte 2

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

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

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Fondamenti di Informatica

CONTROLLI AUTOMATICI INTRODUZIONE A MATLAB

Visualizzazione di dati

UD6 - MATLAB. Gestione della grafica

ESERCITAZIONE MATLAB

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

Università degli Studi di Ferrara

Fondamenti di Automatica

Cristian Secchi Pag. 1

Laboratorio di Matlab

Esercitazioni con GNU Octave

A. Introduzione a Matlab

CONTROLLI AUTOMATICI INTRODUZIONE A MATLAB

Informatica Applicata al Suono Tutorial Matlab

MATLAB Funzioni grafiche Salvataggio/recupero dati da file

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

Introduzione a MATLAB

Strutture di controllo condizionali in Matlab

Foglio di esercizi n.1

Elementi di Calcolo Scientifico per l Ingegneria A.A

Primi script in MATLAB

INTRODUZIONE A MATLAB

Estrazione di dati da una matrice

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

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

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

Laboratorio di INFORMATICA. 15 ottobre 2009

Introduzione a Matlab. Renato Mainetti

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

INTRODUZIONE A MATLAB

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

Matlab. Cristina Falcinelli, PhD

TEORIA DEI SISTEMI E DEL CONTROLLO LM in Ingegneria Informatica e Ingegneria Elettronica

Introduzione al MATLAB

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

Complementi di Matematica e Calcolo Numerico C.d.L Chimica Industriale A.A Laboratorio 5-11/04/2019

CORSO DI LABORATORIO DI INFORMATICA

Introduzione a Matlab

Università degli Studi di Ferrara

MATLAB (3) - Grafica 2 e 3D

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

INTRODUZIONE A MATLAB

Introduzione a Matlab

Selection Sort (minsort)

INTRODUZIONE A MATLAB

Fondamenti di Informatica

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

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

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

INTRODUZIONE A MATLAB

Fondamenti di Informatica

MATLAB - Programmazione - 2. Antonino Polimeno

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

Esercitazione 2. Prima parte

Esercitazione 2. Prima parte

Breve introduzione a MATLAB

FONDAMENTI DI INFORMATICA

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Laboratorio di Matematica Computazionale A.A Lab. 3

Mini-Corso di Informatica

Calcolo Numerico A.A Esercitazione n

Calcolo Numerico A.A Lab n

Introduzione a Matlab e Simulink. Autore: Simone Ciotti, Centro di Ricerca E.Piaggio, UNIPI

Transcript:

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici Introduzione a MATLAB Parte 2 1

L operatore : (due punti) Permette di costruire rapidamente vettori: >> k=1:10 k = 1 2 3 4 5 6 7 8 9 10 >> V=60:-5:5 V = 60 55 50 45 40 35 30 25 20 15 10 5 Consente di selezionare gli elementi di una matrice: A = 8 5 4 3 7 5 2 9 3 B=A(1,:) B = 8 3 2 >> C=A(:,2) C = 3 7 5 2

Stringhe In MATLAB è possibile operare, oltre che su numeri, anche su parole (stringhe di caratteri) Un testo in MATLAB è un vettore di caratteri Le stringhe si manipolano come i vettori >> a='ingegneria a = Ingegneria >> size(a) ans = 1 10 La stringa va inserita tra apici La stringa Ingegneria è una matrice [1 10] 3

Funzioni elementari sin - Seno. asin - Arcoseno cos - Coseno. acos - Arcocoseno tan - Tangente atan - Arcotangente. exp - Esponenziale log - Logaritmo naturale log10 - Logaritmo (base 10) sqrt - Radice quadrata abs - Valore assoluto max - Massimo min - Minimo 4

File.m Editor di file.m Un file.m (M-file) è un programma riconoscibile da Matlab. E un file di testo contenente codice MATLAB In Matlab è presente un editor di files.m Per accedere all editor: File New M-file Con il comando Save il file sarà salvato nella Current Directory 5

Se si crea un file prova.m e si digita al prompt il comando >>prova Matlab eseguirà tutte le istruzioni contenute nel file. I vantaggi di un file.m sono notevoli. Infatti, si può: Eseguire un algoritmo senza dover digitare ogni volta una lunga serie di comandi Ottenere una documentazione del lavoro svolto Cambiare dati senza dover digitare nuovamente tutti i comandi Scambiare programmi con altri utenti 6

Creare il file risolvi.m con il quale risolvere il seguente sistema di equazioni algebriche lineari Utilizzare il metodo dell inversa. Esercizio Esercizio 5 9 4 0 4 4 7 5 7 3 4 3 2 1 3 2 1 3 2 1 = + = + + = + + x x x x x x x x x 7

% Esempio di m-file. Il simbolo % permette di commentare ogni comando % Cancello dalla memoria tutte le variabili e pulisco la command window clear all; clc; % Matrice A dei coefficienti delle incognite A=[4 3 7; 7 4 4; 4-9 1]; % Vettore colonna b dei termini noti b=[5; 0; -5]; % Controllo se il sistema è ben-condizionato % Se l'indice rcond << 1 il sistema è mal-condizionato disp('indice rcond') disp(rcond(a)) % Ricavo il vettore colonna x delle incognite x=inv(a)*b; % Mostro i risultati disp('valori delle incognite') disp(' x(1) x(2) x(3)') disp([x(1) x(2) x(3)]) 8

File.m Esercizio esempio1.m Creare la matrice A[3*4] Estrarre da A il vettore b 7 11 3 6 A = 22 5 6 12 4 3 2 8 b = Creare il vettore bt (trasposta di b) { 4 3 2 8} b 4 3 = 2 8 Calcolare s, prodotto scalare tra la prima riga di A e il vettore bt Risultato: s=115 9

% Esempio n.1 di utilizzo Matlab % Ripulisco la Command Window clc; % Cancello dalla memoria tutte le variabili clear all; % Creazione della matrice A A=[7 11 3 6; 22-5 -6 12; 4 3 2 8]; % Estrazione del vettore b b=a(3,:); % Trasposta di b bt=b'; % Prodotto 1^riga di A per bt s=a(1,:)*bt 10

Immissione di dati da tastiera: input >> a=input('inserisci il numero desiderato= ') Inserisci il numero desiderato= 8 a = 8 >> b=input('inserisci la stringa desiderata= ', 's') Inserisci la stringa desiderata= Lezione b = Lezione >> c=input('inserisci il vettore desiderato= ') Inserisci il vettore desiderato= [5 7 11] c = 5 7 11 11

MATLAB come linguaggio di programmazione ciclo for. end ciclo if end ciclo while end 12

Controllo di flusso: ciclo for. end Il ciclo for consente di ripetere un certo numero di volte le istruzioni in esso contenute Il ciclo for ha la seguente struttura: for variabile = espressione istruzioni end for k=1:4 y(k)=2^k; end >> y y = 2 4 8 16 13

L uso eccessivo di cicli for può allungare i tempi di calcolo Basta fare una verifica con le istruzioni sotto riportate. Il vettore V viene ricavato in due modi diversi: nel caso a) si usa un ciclo for; nel caso 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+4]; I=[1:1:1e+4]; for k=1:1e+4; V(k)=R(k)*I(k); end; b) R=[1:1:1e+5]; I=[1:1:1e+5]; V=R.*I; 14

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

% Esempio n.2 ciclo if end 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'); end 16

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 17

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

Controllo di flusso: while if end Il ciclo if 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 end num=10; eps=.1; k=0; while eps<num k=k+1; a(k)=num; num=num/2; end >> a a = 10.0 5.0 2.5 1.25 0.625 0.3125 0.1563 19

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, end k=k+1; m(k)=n^2; end Il ciclo continua finchè non viene inserito un numero minore di zero 20

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 21

% 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; end % 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 22

Esercizi Creare un file.m per risolvere il seguente sistema: 3x1 + 5x2 + 2x3 = 0 x1 + 6x2 + 5x3 = 4 8x1 + 4x2 6x3 = 5 1. Usare il metodo dell inversa 2. Usare il metodo di Cramer (con un ciclo for.. end) Soluzione x 1-2.1275; x 2 = 2.1667; x 3 = -2.2255 23

Esercizi Creare un file.m per risolvere il precedente sistema: 1. Usare il metodo di Gauss 2. Usare la fattorizzazione LU * *) Suggerimento: al prompt digitare il comando help lu 24

Esercizi 1. Creare un file.m con cui valutare il più piccolo numero xmin rappresentabile in Matlab nella forma 2^k xmin è il numero per il quale si ha: x 2 min = 0 2. Creare un file.m con cui valutare il più grande numero xmax rappresentabile in Matlab nella forma 2^k xmax è il numero per il quale si ha: max x *2 = inf xmin=4.9407e-324 xmax= 8.9885e+307 25

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 x-y x=[-2*pi:pi/10:2*pi]; y=sin(x); plot(x,y) 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 26

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

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 28

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 29

Possiamo inserire un titolo al grafico >> title(funzione seno') Possiamo dare un etichetta agli assi x e y >> xlabel( x [rad]') >> ylabel( sin(x)') 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 30

1 Funzione seno 0.8 0.6 0.4 0.2 sin(x) 0-0.2-0.4-0.6-0.8-1 -6-4 -2 0 2 4 6 x [rad] 31

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 32

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 33