Anteprima
Vedrai una selezione di 3 pagine su 10
Manualetto Matlab Pag. 1 Manualetto Matlab Pag. 2
Anteprima di 3 pagg. su 10.
Scarica il documento per vederlo tutto.
Manualetto Matlab Pag. 6
1 su 10
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

P

n

9. Per k = 2 generano un vettore colonna x = (x ) , con x = a , x = max a e

i i=1,...,n i ij i j ij

j=1

x = min a , rispettivamente. La funzione diag può essere utilizzata anche nella forma diag(A,k),

i j ij

con k intero positivo o negativo; in questo caso essa genera un vettore colonna coincidente con la k-

3

Tabella 7. Alcune funzioni predefinite in Matlab agenti su un vettore x.

Comando Azione P n

a=sum(x) genera lo scalare a = x

i

Q i=1

n

a=prod(x) genera lo scalare a = x

i

i=1

a=max(x) genera lo scalare a = max x

i i

a=min(x) genera lo scalare a = min x

i i

a=norm(x) genera lo scalare a = ||x||

2

a=norm(x,1) genera lo scalare a = ||x||

1

a=norm(x,inf) genera lo scalare a = ||x||

A=diag(x) genera la matrice diagonale A = (a ) , con a = x

ij i,j=1,...,n ii i

Tabella 8. Alcuni comandi per generare e manipolare matrici.

Comando Azione

A=[] genera la matrice vuota A

A’ genera la matrice trasposta di A

A=eye(n) genera la matrice identità A = (a ) , con a = δ

ij i,j=1,...,n ij ij

A=zeros(n,m) genera la matrice A = (a ) , con a = 0

ij i=1,...,n,j=1,...,m ij

A=ones(n,m) genera la matrice A = (a ) , con a = 1

ij i=1,...,n,j=1,...,m ij

A=rand(n,m) genera la matrice A = (a ) , con 0 < a < 1 pseudo-casuali

ij i=1,...,n,j=1,...,m ij

A=hilb(n) genera la matrice di Hilbert A = (a ) , con a = 1/(i + j − 1)

ij i,j=1,...,n ij n−j

A=vander(x) genera la matrice di Vandermonde A = (a ) , con a = x

ij i,j=1,...,n ij i

A(r,c) estrae gli elementi di A appartenenti all’intersezione delle righe e delle

colonne specificate in r e in c rispettivamente

A(r,c)=C assegna agli elementi di A (i cui indici di riga e di colonna sono specificati

in r e in c) i valori definiti in C rispettivamente

A(r,c)=[] rimuove gli elementi di A (i cui indici di riga e di colonna sono specificati

in r e in c)

A([i j],c)=A([j i],c) scambia gli elementi delle righe i e j di A appartenenti alle colonne

specificate in c

A(r,[i j])=A(r,[j i]) scambia gli elementi delle colonne i e j di A appartenenti alle righe

specificate in r

esima diagonale sopra (k > 0) oppure sotto (k < 0) la diagonale principale. Anche la funzione tril

(triu) può essere utilizzata nella forma tril(A,k) (triu(A,k)), con k intero positivo o negativo;

in questo caso essa estrae la parte triangolare inferiore (superiore) a partire dalla k-esima diagonale

sopra (k > 0) oppure sotto (k < 0) la diagonale principale.

Le operazioni elementari, che si eseguono tra scalari, si estendono (quando ben definite) in

modo del tutto naturale ai vettori e alle matrici, con l’eccezione delle operazioni di divisione e di

elevamento a potenza. L’operazione * esegue il prodotto righe per colonne. Nel caso di matrici

quadrate il comando A^k con k intero positivo fornisce il prodotto (righe per colonne) della matrice

A per se stessa k volte; A^(-1) genera l’inversa della matrice A, ammesso che A sia non singolare.

Oltre alle operazioni classiche di somma e di prodotto fra vettori, o più in generale fra matrici,

in Matlab si possono considerare le cosiddette operazioni puntuali, che agiscono direttamente

sui singoli elementi. Tali operazioni si definiscono premettendo un punto al simbolo che identifica

l’operazione.

Dati i vettori riga (colonna) x = (x ) , y = (y ) , le matrici A = (a ) , B =

i i=1,...,n i i=1,...,n ij i,j=1,...,n

(b ) e il numero reale positivo e, nella tabella 10 abbiamo riportato le possibili operazioni

ij i,j=1,...,n 4

Tabella 9. Alcune funzioni predefinite in Matlab agenti su una matrice A.

Comando Azione

a=norm(A) genera lo scalare a = ||A|| 2

a=norm(A,1) genera lo scalare a = ||A|| 1

a=norm(A,inf) genera lo scalare a = ||A|| ∞ P

n

x=sum(A) genera il vettore riga x = (x ) , con x = a

j j=1,...,n j ij

i=1

x=max(A) genera il vettore riga x = (x ) , con x = max a

j j=1,...,n j i ij

x=min(A) genera il vettore riga x = (x ) , con x = min a

j j=1,...,n j i ij

x=diag(A) genera il vettore colonna x = (x ) , con x = a

i i=1,...,n i ii

B=abs(A) genera la matrice B = (b ) , con b = |a |

ij i,j=1,...,n ij ij

B=tril(A) genera la matrice triangolare inferiore B = (b ) ,

ij i,j=1,...,n

con b = a , i = 1, . . . , n, 1 ≤ j ≤ i

ij ij

B=triu(A) genera la matrice triangolare superiore B = (b ) ,

ij i,j=1,...,n

con b = a , i = 1, . . . , n, i ≤ j ≤ n

ij ij

puntuali. Tabella 10. Operazioni puntuali in Matlab.

Operazione Azione

z=x.*y genera il vettore riga (colonna) z = {z } , con z = x ∗ y

i i=1,...,n i i i

z=x./y genera il vettore riga (colonna) z = {z } , con z = x /y

i i=1,...,n i i i

y

z=x.^y genera il vettore riga (colonna) z = {z } , con z = x i

i i=1,...,n i i

ei

z=x.^e genera il vettore riga (colonna) z = {z } , con z = x

i i=1,...,n i

C=A.*B genera la matrice C = (c ) , con c = a ∗ b

ij i,j=1,...,n ij ij ij

C=A./B genera la matrice C = (c ) , con c = a /b

ij i,j=1,...,n ij ij ij

b

ij

C=A.^B genera la matrice C = (c ) , con c = a

ij i,j=1,...,n ij ij

eij

C=A.^e genera la matrice C = (c ) , con c = a

ij i,j=1,...,n ij

3 La grafica in Matlab

Per disegnare una funzione f della variabile x si utilizza la funzione fplot secondo la sintassi

fplot(’f’,[xmin xmax])

ove f è l’espressione della funzione che si vuole rappresentare e [xmin xmax] è un vettore che ha per

componenti gli estremi dell’intervallo di rappresentazione sull’asse x. Se si desidera stabilire anche

un intervallo di rappresentazione sull’asse y occorre fornire il vettore [xmin xmax ymin ymax] come

secondo argomento della funzione fplot .

Una procedura alternativa per disegnare una funzione f (x) consiste nel definire un vettore x di

punti dell’asse x, generare il vettore y contenente le valutazioni della funzione f nei punti precisati

in x, e quindi utilizzare il comando plot secondo la sintassi

plot(x,y)

Entrambi i comandi plot e fplot consentono di personalizzare il grafico mediante la scelta

del colore della linea, del simbolo da mettere in corrispondenza dei punti (x , y ) e del tipo di

i i

linea (continua, punteggiata, tratteggiata, ...). Nella tabella 11 abbiamo riportato alcune delle

possibili opzioni che si possono utilizzare. Inoltre, nella tabella 12 abbiamo riportato alcuni comandi

5

Tabella 11. Alcune possibili opzioni per i comandi plot e fplot.

Colore Significato Simbolo Significato Linea Significato

w bianco . punto - linea continua

y giallo o circoletto : linea punteggiata

r rosso x per -. linea tratto-punto

g verde + più -- linea tratteggiata

b blu * asterisco

k nero s quadratino

Tabella 12. Alcuni possibili comandi per commentare un grafico.

Comando Azione

title inserisce un titolo nel grafico

xlabel inserisce un nome per l’asse x

ylabel inserisce un nome per l’asse y

grid inserisce una griglia sugli assi x ed y

legend inserisce una legenda per identificare rappresentazioni diverse

text inserisce una stringa di testo in una specificata posizione

gtext inserisce una stringa di testo in una posizione individuata tramite mouse

disponibili per commentare un grafico.

Se si desidera considerare una scala logaritmica sull’asse delle x, o sull’asse delle y, o su entrambi

gli assi occorre utilizzare al posto del comando plot il comando semilogx, semilogy, loglog

rispettivamente. L’uso di questi comandi è del tutto analogo a quello del comando plot.

Ogni qual volta si digita il comando plot, Matlab cancella il grafico precedente e traccia quello

nuovo. Per disegnare più grafici nella stessa finestra grafica si può digitare il comando hold on prima

di disegnare il grafico che si vuole sovrapporre a quello già tracciato oppure utilizzare il comando

plot nella forma

plot(x_1,y_1,’-’,x_2,y_2,’:’)

Per disegnare grafici diversi in una stessa finestra grafica ma in sottofinestre separate si utilizza

il comando subplot secondo la sintassi

subplot(righe,colonne,sottofinestra)

dove righe e colonne indicano il numero di righe e di colonne rispettivamente della matrice di

sottofinestre della finestra grafica principale, e sottofinestra indica il numero della sottofinestra

che si desidera attivare per disegnare un grafico all’interno di essa. Le sottofinestre vengono numerate

a partire da sinistra verso destra e dall’alto verso il basso. Si possono mantenere aperte più finestre

grafiche: per attivare la finestra grafica numero n si utilizza il comando figure(n), per chiudere

la suddetta finestra si digita il comando close(n), per chiudere tutte le finestre attive si digita

close all.

4 Programmi Matlab

Un file contenente istruzioni Matlab viene generalmente chiamato m-file. Tale nome deriva dal

fatto che esso deve essere salvato con l’estensione “.m”. Il nome di un m-file può essere definito

mediante lettere e/o numeri; è inoltre consentito anche il carattere _ (underscore). In un m-file i

comandi vanno digitati su righe differenti oppure sulla stessa riga purché siano separati da un punto

6

e virgola o da una virgola. Per introdurre un commento all’interno dell’m-file si deve utilizzare il

carattere %.

Gli m-file possono essere di due tipi: script oppure function.

Gli m-file di tipo script sono definiti semplicemente da una sequenza di comandi Matlab. Per

eseguire un m-file di tipo script occorre selezionare la directory in cui l’m-file è stato salvato e,

quindi, digitare il nome dell’m-file (senza estensione) al prompt di Matlab. Gli script file non

prevedono un passaggio di parametri di input ed output. Inoltre, le variabili definite in uno script

sono variabili che rimangono nella memoria della sessione di lavoro, come se fossero state definite

direttamente al prompt.

Gli m-file di tipo function devono cominciare necessariamente con la seguente struttura

function [y_1,y_2,...,y_n]=nome_function(x_1,x_2,...,x_m)

ove y_1,y_2,...,y_n sono i parametri di output e x_1,x_2,...,x_m sono i parametri di input. La

stringa nome_function è il nome della function; quest’ultimo deve coincidere con il nome dell’m-file

(esclusa, ovviamente, l’estensione .m) in cui è stata salvata la function. Per eseguire una function

dal prompt, o anche all’interno di uno script o di un’altra function, occorre digitare

[y_1,y_2,...,y_n]=nome_function(x_1,x_2,...,x_m)

oppure

nome_function(x_1,x_2,...,x_m)

In questo caso la function restituisce solo il primo parametro di output che viene salvato nella

variabile ans.

Osserviamo che è necessario assegnare un valore a ciascun parametro di output; in caso contrario

Matlab restituisce il seguente messaggio

??? One or more output arguments not assigned during call to ’nome_function’

A differenza degli script, gli m-file di tipo function prevedono in ingres

Dettagli
Publisher
A.A. 2020-2021
10 pagine
SSD Scienze matematiche e informatiche MAT/02 Algebra

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher erich0101 di informazioni apprese con la frequenza delle lezioni di Algebra e geometria e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Scuderi Letizia.