MATLAB: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 82.55.54.89 (discussione), riportata alla versione precedente di Krdan Etichetta: Rollback |
|||
Riga 30:
== Cenni storici ==
Abbreviazione di "MATrix LABoratory", MATLAB fu creato alla fine degli anni settanta da [[Cleve Moler]],
== Interfaccia ==
Riga 135:
v1=[1 2 3 4 5 6 7 8 9 10]
v2=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1]
Bisogna stare attenti a non assegnare all'incremento e alla destinazione numeri relativi discordi, fatto che produrrà il seguente risultato in fase di esecuzione:
Riga 180:
Per selezionare un elemento di una matrice, utilizziamo la seguente istruzione:
M(indice_riga, indice_colonna)
M(l,k) dove l,k <math>\in</math> <math>\mathbb{N}</math>
È possibile estrarre anche intere colonne o righe. Supponiamo di avere una matrice M
M(l,:) , estrae l'intera riga l-esima in un vettore riga
M(:,k) , estrae l'intera colonna k-esima in un vettore colonna
M(:) , estrae l'intera matrice
Per eliminare la colonna di una matrice M:
M(:,k)=[] ,elimina la colonna k-esima, la matrice M diventa nx(m-1)
Riga 191:
Si elenca ora una serie di operazioni molto utili per lavorare con le matrici in ambiente MATLAB.
Sia A una generica matrice
size(A)
si ottiene un vettore composto dal numero di righe e dal numero di colonne della matrice A (ovviamente questo è estendibile anche a
Con l'operatore ' (apostrofo), si ottiene la matrice '''trasposta''' di A:
Riga 232:
=== Realizzazione di grafici 2D ===
Uno strumento molto potente che l'ambiente MATLAB offre per rappresentare dati numerici è la possibilità di realizzare il grafico di una funzione. In particolare, dati due vettori x e y
plot(x,y)
Si fa notare che il comando plot non solo disegna y in funzione di x ma crea automaticamente anche un'interpolazione lineare dei valori assunti dalla funzione (dato che ovviamente nessuna funzione memorizzata in un calcolatore è continua).
Riga 238:
È possibile includere opzioni aggiuntive come il colore o il tipo di linea seguendo la seguente sintassi:
plot(x,y,'marcatore stile colore')
dove il marcatore sta ad indicare in che modo i punti dei due vettori saranno rappresentati (ad esempio: +, *, o, x), lo stile è lo stile della linea (è possibile scegliere tra linea continua, tratteggiata, tratto punto ed altri ancora: -, - -, :, -.) che unirà i punti e il colore è quello del grafico, contrassegnato con l'iniziale in inglese del colore scelto (ad esempio per avere un grafico verde si dovrà digitare ''g,'' iniziale di ''green''). È da notare che se si assegna un marcatore al comando plot, questo non effettuerà più l'interpolazione lineare automatica tra i punti della funzione, ma si limiterà a rappresentare i singoli punti.
Allo stesso modo, con il comando plot, è possibile disegnare una matrice quadrata:
Riga 246:
dove y1=f(x1), y2=f(x2), e così via, rappresentano le funzioni da rappresentare, oppure utilizzare il comando
hold on
che fa sì che, se c'è un grafico attivo, questo non venga chiuso e il successivo plot si sovrapponga ad esso.
Con il comando:
Riga 259:
aggiunge una griglia al grafico corrente.
È possibile
subplot(m,n,p)
Con tale comando si disegnano in una finestra
subplot(3,4,6)
Con il comando
axis([xi xf yi yf])
è possibile impostare
axis(V)
Riga 272:
MATLAB è un potentissimo strumento per l'analisi numerica di sistemi dinamici, anche con molti ingressi e uscite. MATLAB permette di dichiarare facilmente degli oggetti sistema, grazie ad alcuni comandi che si possono utilizzare installando un apposito componente aggiuntivo, il ''Control System Toolbox''. Dato un sistema dinamico è possibile quindi dichiararlo come sistema in forma esplicita (comando '''ss''', cioè state-space)
sys=ss(A,B,C,D,t0)
dove A, B, C, D sono le matrici dei coefficienti, mentre t0 è il periodo di campionamento se si considera un sistema a tempo discreto, mentre se t0 viene omesso si dichiara un sistema a tempo continuo.
Il sistema può essere dichiarato anche in forma zeri-poli-guadagno (comando '''zpk''', zero-pole-gain)
Riga 280:
Per definire una funzione di trasferimento si impiega il comando '''tf:'''
sys=tf(NUM,DEN)
dove num e den sono vettori riga contenenti i coefficienti dei polinomi al numeratore e al denominatore della funzione di trasferimento desiderata,
[1 -4 +.23 -1.9]
Riga 323:
lsim(sys,u,t,[0 0]')
lo stesso risultato si poteva ottenere con il comando ''step,'' che traccia direttamente il grafico della risposta al segnale di ingresso a scalino:
step(sys)
il tempo in questo caso è calcolato automaticamente, ma può anche essere specificato:
|