Manuali Matlab |
![]() ![]() ![]() ![]() ![]() |
Basi del Matlab
Vettori
Funzioni
Grafici
Polinomi
Matrici
Stampa
Uso degli m-files nel Matlab
Help del Matlab
I comandi Matlab in questa pagina: plot, polyval, roots, conv, deconv, polyadd, inv, eig, poly.
Nota: I comandi
non standard usati sono evidenziati in verde.
Per poter seguire correttamente il corso di autoapprendimento si consiglia di lavorare con due finestre aperte contemporaneamente: il browser e il Matlab. Questo consente di calcolare e di graficare gli esempi riportati semplicemente copiando le istruzioni ed incollandole nella finestra Matlab o in un m-file.
Un vettore viene creato inserendo gli elementi (separati da uno spazio) tra parentesi quadre e ponendolo uguale ad una variabile. Per esempio, per creare un vettore "vett", si inserisca nella finestra del Matlab il comando che segue:
vett = [1 2 3 4 5 6]
Il Matlab restituisce:
vett = 1 2 3 4 5 6
Per creare un vettore con elementi compresi tra due estremi (es. 0 e 20) con un dato intervallo (es. 2) (metodo è usato per creare un vettore del Tempo) si usa la forma:
t = 0:2:20 t = 0 2 4 6 8 10 12 14 16 18 20
Manipolare i vettori e facile come crearli. Se vuoi aggiugere il valore 2 ad ogni elemento del vettore "vett", l'equazione è la seguente:
a = vett + 2 a = 3 4 5 6 7 8 11 10 9
Supponiamo di voler sommare due vettori. Se i vettori sono della stesse dimensioni l'operazione è semplice, basta sommare i due elemento ad elemento, come mostrato:
b = vett + a b = 4 6 8 10 12 14 20 18 16
La sottrazione tra vettori della stessa lunghezza si esegue esattamente nella stessa maniera.
Per facilitare il lavoro il Matlab include molte funzioni standard. Il Matlab
contiene tutte le funzioni standard come sin, cos, log, exp, sqrt, e molte
altre. Le costanti usate comunemente come , e i o j per la radice
di -1, sono incorporate nel Matlab.
sin(pi/4) ans = 0.7071
Per conoscere l'uso di ogni funzione, digita help [nome della funzione] nella finestra di Matlab.
Matlab permette di creare una propria funzione con il comando function; per imparare come scrivere la tua funzione, segui il collegamento.
Creare grafici in Matlab è semplice. Supponi di voler graficare la curva seno in funzione del tempo. Inizialmente si crea un vettore del tempo t (il ; dopo ciascuna immissione fa si che il Matlab non debba visualizzare tutti i valori) e si calcola il corrispondente valore del seno per ogni valore di t .
t=0:0.1:10; y = sin(t); plot(t,y); title('grafico del seno di t')
I grafici sono semplici in Matlab, ed è possibile estendere le funzionalità del comando plot. Si raccomanda di visitare la pagina grafici per approfondire l'argomento.
In Matlab un polinomio è rappresentato da un vettore. Per creare un polinomio è sufficiente immettere i coefficiente del polinomio in un vettore in ordine decrescente. Per esempio, consideriamo il seguente polinomio:
Per inserirlo nel Matlab, è sufficiente registrarlo come un vettore nel modo seguente:
x = [1 10 0.6 12 -7 5] x = 1 10 0.6 12 -7 5
Il Matlab può interpretare un vettore di lunghezza n+1 come un polinomio di ordine n. Per i coefficienti non presenti nel polinomio si deve inserire lo zero nella corrispondente posizione del vettore. Per esempio,
in Matlab deve essere rappresentato come:
y = [1 0 0 0 -7 5]
Si può calcolare il valore del polinomio usando la funzione polyval. Per esempio, per trovare il valore del precedente polinomio per s=2,
z = polyval([1 0 0 0 -7 5],2) z = 23
E' anche possibile estrarre le radici di un polinomio. Ciò è utile quando si ha un ordine elevato del polinomio, come
Per trovare le radici basta semplicemente inserire il seguente comando:
roots([1 10 0.6 12 -7 5]) ans = -10.0662 -0.3251 + 1.1240i -0.3251 - 1.1240i 0.3582 + 0.4843i 0.3582 - 0.4843i
La moltiplicazione tra due polinomi è data dalla convoluzione dei loro coefficienti. La funzione usata dal Matlab è conv.
x = [1 2]; y = [1 4 8]; z = conv(x,y) z = 1 6 16 16
La divisione di due polinomi viene realizzata con la funzione deconv che restituisce il resto e il risultato. Dividere z per y equivale ad ottenere x, secondo quanto fatto sopra:
[xx, R] = deconv(z,y) xx = 1 2 R = 0 0 0 0
Come si può vedere, questo è il polinomio x cercato. Se z non fosse un multiplo di y, il vettore del resto avrebbe alcuni elementi diversi da zero.
Per sommare due polinomi dello stesso ordine, come già visto, basta eseguire z=x+y (i due vettori devono avere la stessa lunghezza). Nel caso generale, puoi usare la funzione da definire, polyadd. Per usare polyadd, copia la funzione in un m-file, così da poterla utilizzare come una qualsiasi funzione del toolbox del Matlab. Assumendo che la funzione sia stata creata, il comando è copletato aggiungendo i polinomi x e y (osserva che in questo esempio i polinomi hanno grado diverso):
z = polyadd(x,y) x = 1 2 y = 1 4 8 z = 1 5 10
Inserire una matrice in Matlab è come immettere un vettore, con la differenza che ciascuna riga di elementi è separata dal ; o da un "invio" (return):
B = [1 2 3 4;5 6 7 8;9 10 11 12] B = 1 2 3 4 5 6 7 8 9 10 11 12 B = [ 1 2 3 4 5 6 7 8 9 10 11 12] B = 1 2 3 4 5 6 7 8 9 10 11 12
Le matrici in Matlab possono essere manipolate in molti modi. Si può calcolare la trasposta di una matrice usando l'apice ('):
C = B' C = 1 5 9 2 6 10 3 7 11 4 8 12
Nota che se C fosse stato complesso, l'apice avrebbe dato il complesso coniugato trasposto. Per ottenere la trasposta si deve usare".'" (i due comandi sono identici se la matrice non è complessa).
Ora si possono moltiplicare le due matrici B e C.
D = B * C D = 30 70 110 70 174 278 110 278 446 D = C * B D = 107 122 137 152 122 140 158 176 137 158 179 200 152 176 200 224
Un'altra possibile manipolazione per le matrici è la moltiplicazione dei corrispondenti elementi di due matrici usando l'operatore ".*" (le matrici devono essere della stessa dimensione).
E = [1 2;3 4] F = [2 3;4 5] G = E .* F E = 1 2 3 4 F = 2 3 4 5 G = 2 6 12 20
Se hai una matrice quadrata, chiamata E, puoi moltiplicarla per se stessa quante volte vuoi con l'elevamento a potenza.
E^3 ans = 37 54 81 118
Se vuoi elevare ogni elemento della matrice al cubo, devi usare la forma ".^" :
E.^3 ans = 1 8 27 64
Puoi calcolare l'inversa della matrice:
X = inv(E) X = -2.0000 1.0000 1.5000 -0.5000
o i suoi autovalori:
eig(E) ans = -0.3723 5.3723
C'è anche una funzione per trovare i coefficienti del polinomio caratteristico di una matrice. La funzione "poly" crea un vettore di coefficienti del polinomio caratteristico.
p = poly(E) p = 1.0000 -5.0000 -2.0000
Ricorda che gli autovalori di una matrice sono le radici del suo polinomio caratteristico:
roots(p) ans = 5.3723 -0.3723
Stampare in Matlab è abbastanza facile.Segui i passi illustrati sotto:
Macintosh
Per stampare un grafico o un m-file da un Macintosh, basta cliccare sul grafico o sull'm-file, selezonare Print dal menu File, e premere invio.
Windows
Per stampare un grafico o un m-file da un computer che gira sotto Windows, basta selezionare Print dal menu File nella finestra del grafico o dell'm-file, e premere invio.
Unix
Per stampare un grafico su una workstation di Unix inserire il comando:
print -P<printername>
Se vuoi salvare il grafico prima di stamparlo, inserisci il comando:
print plot.ps
Più tardi, puoi stampare il grafico usando il comando "lpr -P
Per stampare un m-file si procede come per un qualsiasi oltro file, usando
il comando "lpr -P
In ciascuna piattaforma ci sono leggere differenze che bisogna conoscere.
Macintosh
Esiste un editor per gli m-file; occorre selezionare "New m-file" dal menu File. Si può usare anche un qualsiasi altro editor (assicurati di salvare il file in formato testo e caricarlo all'avvio del Matlab).
Windows
L'uso di Matlab per Windows è simile a quello per Macintosh. Tuttavia i file devono essere salvati come nomefile.m .
Unix
Bisogna lavorare con un editor separato dal Matlab. E' preferibile creare una directory per gli m-file ed entrare in tale directory prima di lanciare il Matlab e l'Editor. Per lanciare il Matlab da tale posizione, scrivere " matlab".
Il Matlab ha un buon help in linea; se si conosce il nome del comando è sufficiente scrivere
help comando
per avere informazioni sul comando.
Per terminare vengono esposte alcune annotazioni.
B B = 1 2 3 4 5 6 7 8 9