Sei sulla pagina 1di 34

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Matlab - Lezione I

Paolo Finotelli

Marco Carnini Paolo Finotelli Chiara Lelli

Matlab - Lezione I

- Lezione I Marco Carnini Paolo Finotelli Chiara Lelli Marco Carnini Paolo Finotelli Chiara Lelli Matlab

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Programma della lezione

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

4 Numeri complessi

5 Alternative gratuite

6 Bibliografia

7 Esercizi

Marco Carnini Paolo Finotelli Chiara Lelli

5 Alternative gratuite 6 Bibliografia 7 Esercizi Marco Carnini Paolo Finotelli Chiara Lelli Matlab - Lezione

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

gratuite Bibliografia Esercizi 1 Introduzione a MATLAB Marco Carnini Paolo Finotelli Chiara Lelli Matlab -

MATLAB

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

MATLAB (abbreviazione di Matrix Laboratory) `e un ambiente utilizzato:

per il calcolo scientifico

l’analisi statistica

manipolazioni vettori e matrici

creare interfacce utenti

interfaccia con linguaggi di programmazione a pi`u basso livello (C, FORTRAN).

per il calcolo simbolico (appoggiandosi a Maple)

Marco Carnini Paolo Finotelli Chiara Lelli

per il calcolo simbolico (appoggiandosi a Maple) Marco Carnini Paolo Finotelli Chiara Lelli Matlab - Lezione

Matlab - Lezione I

L’interfaccia

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Nella visuale di default (attivabile tramite Desktop > Default) si trovano diverse finestre:

Command Window: terminal da cui si digitano i comandi. Tramite le frecce direzionali permette di visualizzare i precedenti comandi; ammette il completamento dei comandi tramite il tasto tab.

Workspace: nella finestra si possono visualizzare le variabili attualmente in uso.

Current Directory: La directory corrente; vengono visualizzati i nomi degli script e delle function attualmente salvati.

Command history: Viene salvato l’elenco dei comandi dati in precedenza.

Marco Carnini Paolo Finotelli Chiara Lelli

Viene salvato l’elenco dei comandi dati in precedenza. Marco Carnini Paolo Finotelli Chiara Lelli Matlab -

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

Esercizi 1 Introduzione a MATLAB 2 I comandi base Marco Carnini Paolo Finotelli Chiara Lelli Matlab

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Per attribuire alle variabili a e b un valore dal prompt si digita

1 >>

2 a =5.0000

3 >>

a =5

b =3;

Con “;” non viene visualizzato il valore attribuito a b (utile con i vettori). Nel caso non si attribuisca il risultato di un’operazione ad una variabile, viene creata (e sovrascritta) la variabile ans:

a * b

2 ans =15

3 >>

4 >>

5 ans =8

1 >>

a + b ;

ans

Marco Carnini Paolo Finotelli Chiara Lelli

1 >>

2 ans =2

3 >>

4 ans =1.667

5 >>

6 ans =125

a - b

a / b

5^3

I valori delle principali costanti matematiche in MATLAB possono essere richiamate facilmente:

pi

2 ans =3.1416

3 >>

4 ans =0+1 i

1 >>

i

Altre importanti funzioni sono implementate:

3 >> 4 ans =0+1 i 1 >> i Altre importanti funzioni sono implementate: Matlab -

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 >>

2 ans =1.4142

sqrt (2)

3 >>

4 ans =0.5000

5 >>

6 ans =1

sin ( pi /4) / sqrt (2)

tan ( pi /4)

Per conoscere gli argomenti di una funzione e come agisce, si usa il comando help

1

>>

help

sqrt

2

SQRT

Square

root .

3

Non sempre ci si ricorda il nome della funzione della quale si ha bisogno. Per vedere l’elenco delle funzioni principali si usa help elfun:

Marco Carnini Paolo Finotelli Chiara Lelli

help

2 Elementary

3

1 >>

elfun

math

functions

Per ottenere aiuto se non si conosce il nome del comando a cui si `e interessati si pu`o utilizzare la funzione di ricerca tramite l’interfaccia grafica (F1) oppure utilizzare demo:

1 >>

demo

che offre una serie di esempi guidati. Per salvare le variabili allo stato attuale, e per ricaricarle da un salvataggio precedente si usano i comandi save e load:

allo stato attuale, e per ricaricarle da un salvataggio precedente si usano i comandi save e

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 imiei >> save 2 all >> clear 3 >> clc 4 imiei >> load
1 imiei
>>
save
2 all
>>
clear
3 >>
clc
4 imiei
>>
load

clear all cancella tutte le variabili presenti; clear x cancella la variabile x. Per pulire lo schermo ma non le variabili si utilizza clc. Con il save si sono salvati i dati nel file “imiei.mat” nella directory corrente. Se si devono ripetere le medesime operazioni diverse volte, risulta conveniente ricorrere a script e function. I primi sono un elenco di istruzioni come le si darebbe da riga di comando; sono file di estensione .m salvati nella directory corrente.

Marco Carnini Paolo Finotelli Chiara Lelli

Consideriamo ad esempio:

x = cos(pi/4)

y = sin(pi/4)

quad = x x + y y

diff = x y

Per scrivere lo script si pu`o usare il blocco note o un editor di testo semplice; pi`u comodo ed integrato risulta l’editor MATLAB

1 >>

edit

Una volta scritto e salvato, per avviare lo script si digita

1 >> esempio
1 >>
esempio

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Per scrivere questa function si usa ancora l’editor integrato:

1 >>

edit

Si consideri un esempio di funzione (function)

1 function [ somma , prodotto , differenza , quoziente ]= operazioni ( x , y )

2 somma = x + y ;

3 prodotto = x * y ;

4 differenza = x - y ;

5 quoziente = x / y ;

Il nome del file deve essere il medesimo della funzione (operazioni.m e operazioni). Fra parentesi quadre vengono riportati gli argomenti in uscita della funzione, mentre fra parentesi tonde gli argomenti in entrata. Per richiamare la funzione dal terminale si digita ad esempio:

[ a , b , c , d ]= operazioni (5 ,3) ;

c

1 >>

2 >>

3 c =2

Marco Carnini Paolo Finotelli Chiara Lelli

Matlab - Lezione I

(5 ,3) ; c 1 >> 2 >> 3 c =2 Marco Carnini Paolo Finotelli Chiara
(5 ,3) ; c 1 >> 2 >> 3 c =2 Marco Carnini Paolo Finotelli Chiara

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Un altro comando utile per salvare le operazioni che si compiono nel terminale `e diary:

1 >>

diary

diario

crea il file diario che contiene tutte le istruzioni successive; per disabilitare la registrazione dei comandi si usa

1 >>

diary

off

Il comando

1 >>

diary

cambia tra la modalit`a on/off. Altri comandi di utilit`a generale sono pwd e ls:

Marco Carnini Paolo Finotelli Chiara Lelli

1

>>

ls

2

.

3

4

operazioni . m

5

esempio . m

6

>>

pwd

7

C :\ Programmi \ MATLAB \ R2006b \ work

Il primo fornisce l’elenco di file nella

cartella in cui ci si trova; il secondo fornisce il nome della directory corrente (che in questo caso `e quella

di default). Le funzioni e gli script

che MATLAB pu`o trovare sono quelle contenute nelle directory presenti nel path.

e gli script che MATLAB pu`o trovare sono quelle contenute nelle directory presenti nel path .

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Per vedere quali directory si trovano nel path, il comando `e

1 >>

path

Per aggiungere una directory al path, il comando `e

1 >>

path ( path , ’ directory ’ )

Per aggiungere ad esempio la directory “soprastante” a work

1 >>

2 >> nuova_dir = pwd

3 C :\ Programmi \ MATLAB \ R2006b

4 >> path ( path , nuova_dir )

cd

Il comando:

1 >>

cd

directoryese

Marco Carnini Paolo Finotelli Chiara Lelli

permette di entrare nella cartella “directoryese”; “.” rappresenta la ”

directory corrente, “

soprastante. Finora tutte le quantit`a sono state rappresentate con il formato

standard di MATLAB; per comodit`a di lettura pu`o essere conveniente mostrare i risultati in formato

diverso. La rappresentazione interna

a MATLAB tuttavia non migliora

scegliendo di rappresentare i dati

con migliore precisione.

Il comando per cambiare formato `e

la directory

1 format >> 2 help >> format
1 format
>>
2 help
>>
format

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

I formati e rappresentano nel formato a virgola mobile, eng nel formato “Engineering”, hex in formato esadecimale.

1

>>

pi

2

ans =3.1416

 

3

>>

format

long

4

>>

pi

5

ans =3.141592653589793

6

>>

format

short

e

7

>>

pi

8

ans =3.1416 e +000

 

format

9 long

>>

e

10 >>

pi

11 ans =3.141592653589793 e +000

12 >>

format

short

g

13 >>

pi

14 ans =3.1416

 

15 >>

format

long

g

16 >>

pi

17

ans =3.14159265358979

Marco Carnini Paolo Finotelli Chiara Lelli

1

>>

format

short

eng

2

>>

pi

3 ans =3.1416 e +000

4

>>

format

long

eng

5

>>

pi

6 ans =3.14159265358979 e +000

7

>>

format

hex

8

>>

pi

9 ans =400921 fb54442d18

In generale:

Short: 5 cifre significative

Long: 15 cifre significative

Per ripristinare il formato di default,

1 >> format
1 >>
format

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

La rappresentazione in virgola mobile (“floating point”) permette di rappresentare numeri che sarebbe altrimenti difficili da visualizzare. Un numero N viene rappresentato nella forma

N = cifre significative × base esponente

Le basi pi`u comunemente adottate sono 2, 10, 16. Quindi se consideriamo ad esempio il numero di Avogadro,

avremo che:

N Av = 6.023 × 10 23

cifre significative = 6.023

base = 10

esponente = 23

Marco Carnini Paolo Finotelli Chiara Lelli

Matlab - Lezione I

significative = 6 . 023 base = 10 esponente = 23 Marco Carnini Paolo Finotelli Chiara

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

Introduzione a MATLAB 2 I comandi base 3 Vettori e matrici Marco Carnini Paolo Finotelli Chiara

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

In MATLAB si possono definire facilmente i vettori:

1

>>

v =[1

 

2

3]

2

v =

1

2

3

calcolarne il trasposto

1 >>

2

3

4

vt =

vt = v ’

1

2

3

e procedere in modo analogo con le matrici:

1

>>

M =[

1

2

;

3

4]

2

M =

1

2

3

3

4

Marco Carnini Paolo Finotelli Chiara Lelli

Si deve prestare attenzione quando si immette una matrice:

1 >> M1 =[1 2; 3] 2 ??? Error using == > vertcat 3 CAT
1 >>
M1 =[1
2;
3]
2 ??? Error using == > vertcat
3 CAT
arguments
dimensions
are
not
consistent .
4 >>
M2 =[1
2;
3
4
5]
5 ??? Error using == > vertcat
6 CAT
arguments
dimensions
are
not
consistent .

Per visualizzare le dimensioni di una matrice (o di un vettore) si usa size, che fornisce il numero di righe e di colonne del proprio argomento:

1

>>

a =1;

 

2

>>

size ( a )

 

3

ans =1

1

 
 
 
 
 

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Per vettori e matrici invece:

1 >>

eye (3 ,3)

ans =1

2 0

0

1 >>

size ( v )

3 1

0

0

2 ans =1

3

4 0

0

1

3 >>

size ( vt )

5 >>

rand (3 ,3)

4 ans =3

1

6 ans =0.487

0.245

0.853

5 >>

size ( M )

7 0.884

0.491

0.849

6 ans =2

2

8 0.184

0.956

0.703

Alcune matrici di rilievo:

1 >>

zeros (3 ,3)

2 ans =0

0

0

3 0

0

0

4 0

0

0

5 >>

ones (3 ,3)

6 ans =1

1

1

7 1

1

1

8 1

1

1

Marco Carnini Paolo Finotelli Chiara Lelli

zeros(m, n): matrice m, n di zeri

ones(m, n): matrice m, n di uno

eye(m, n): matrice con uno sulla diagonale principale

(m = n identit`a)

rand(m, n): matrice m, n di numeri casuali

sulla diagonale principale ( m = n identit`a) rand ( m , n ): matrice m

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Nel caso m = n si possono abbreviare le precedenti istruzioni con comando(m), ad esempio

 

1 m1 = ones (2) ;

>>

 

2 m2 =[

>>

1

2;

3

4];

3 m1 + m2

>>

 

4 ans =2

3

 

4

5 5

 

1

>>

ones (3)

   

6 >>

m2 - m1

 

2

ans =1

1

1

7

ans =0

1

3

1 1

1

8

2

3

1 1

1

 

4

Il prodotto `e invece pi`u delicato:

 

Le operazioni sulle matrici ed i vettori di somma e sottrazione si ottengono facilmente:

1

2

3

1

>>

v1 =[1

2

3];

4

2

>>

v2 =[6

5

4];

5

3

>>

v1 + v2

 

6

4

ans =

7

7

7

7

5

>>

v2 - v1

8

6

ans =

5

3

1

9

 

10

>>

v =

[1

2];

 

>>

id = eye (2) ;

 

>>

v * id - v

 

ans =0

0

>>

w =

[3

4];

>>

v * w ’

ans =11

 

>>

v ’* w

 

ans =3

4

 

6

8

 
 
 
 

Marco Carnini Paolo Finotelli Chiara Lelli

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Assegnata una matrice, si possono calcolare facilmente autovalori ed autovettori col comando eig:

1

>>

m1 =[1

2;

3

4];

2

>>

eig ( m1 )

 

3

ans = -0.37228

4

5.37228

In questo modo si sono ottenuti gli autovalori. Per ottenere anche gli autovettori, la sintassi di eig `e:

1 >>

2 >>

[ v1 , v2 ]= eig ( m1 );

v1

3 -0.82456

-0.41597

4 0.56577

-0.90938

5 >>

v2

6 -0.37228

0.00000

7 0.00000

5.37228

Marco Carnini Paolo Finotelli Chiara Lelli

v1 `e la matrice le cui colonne sono gli autovettori di m; v2 `e la forma canonica, con gli autovalori sulla diagonale. Per prendere il vettore con gli elementi di una matrice lungo la diagonale principale si usa diag:

1

>>

diag ( m1 )

2

ans =1

3

4

4

>>

diag ( v2 )

5

ans = -0.37228

6

5.37228

Il determinante della matrice si calcola con il comando det, la matrice inversa con inv:

5.37228 Il determinante della matrice si calcola con il comando det , la matrice inversa con

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 >>

2 ans = -2

3 >>

det ( m1 )

inv ( m1 )

4 ans = -2.00000

1.00000

5 1.50000

-0.50000

Se provassimo ad invertire una matrice singolare otterremmo un messaggio di errore:

Se volessimo risolvere il sistema lineare

ovvero

2x

+ 5y = 17

3x + 6y = 21

Ax = b

(1)

1 mm =[1

>>

2;

2

4];

Potremmo risolverla in modo “diretto”:

2 inv ( mm )

>>

3 warning :

inverse :

matrix

   

singular

to

1

>>

A =[2

5;

3

6];

4 precision ,

machine

rcond

=

2

>>

b =[17;21];

0

3

>>

x = inv ( A )* b

5 ans

= Inf

Inf

4

x =1

 

6 Inf

Inf

5

 

3

7 >>

det ( mm )

 
 

8 ans =0

 
det ( mm )     8 ans =0   Marco Carnini Paolo Finotelli Chiara Lelli

Marco Carnini Paolo Finotelli Chiara Lelli

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Una soluzione migliore se la matrice A `e mal condizionata (“simile” ad una matrice singolare; l’algoritmo di soluzione `e basato sui minimi quadrati, si veda mldivide) `e:

1 A =[2

>>

5;

3

6];

2 >>

b =[17;21];

3 >>

x = A \ b

4 x =1

5 3

Talvolta la matrice o il vettore da riempire potrebbero essere molto grandi, o potremmo dover modificare un solo valore particolare:

Marco Carnini Paolo Finotelli Chiara Lelli

1 >>

2 ans =2

3 >>

4 ans =3

5 >>

6 ans =17

A (1 ,1)

A (2 ,1)

b (1)

Per le matrici si pu`o usare la notazione alternativa

1 >> A (1) 2 ans =2 3 >> A (2) 4 ans =3 5
1 >>
A (1)
2 ans =2
3 >>
A (2)
4 ans =3
5 >>
A (3)
6 ans =5
7 >>
A (4)
8 ans =6
2 ans =2 3 >> A (2) 4 ans =3 5 >> A (3) 6 ans

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

L’indicizzazione di matrici e vettori `e utile negli script o nelle function in associazione ai comandi for ed if

1 if

>>

( A (1 ,1) ==2)

2 (1 ,1) =1;

A

3 end

4 >>

5 ans =1

A (1 ,1)

1

>>

for

i =1:2

2

for

j =1:2

3

B

( i , j )= i * j ;

4

end

 

5

end

6

>>

B

7

ans =1

2

8

2

4

Marco Carnini Paolo Finotelli Chiara Lelli

Si noti che come nel C l’uguale

indica l’assegnazione ed il doppio uguale il test d’uguaglianza. Per realizzare un grafico, riportando in ascissa un vettore x ed in ordinata

un vettore y si utilizza il comando plot:

1 >>

x =1:0.5:10;

2 >>

y = x .^2;

3

>>

plot ( x , y )

Con la prima riga si `e generato un

vettore x i cui elementi vanno da 1 a 10 con passo 0.5. Nella seconda riga

si genera un vettore che contiene,

elemento per elemento, gli elementi

di x elevati al quadrato.

riga si genera un vettore che contiene, elemento per elemento, gli elementi di x elevati al

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 x = linspace (1 ,10 ,20) ;

>>

2 >>

y = x .^2;

3

>>

plot ( x , y )

Con linspace si sono generati 20 punti equispaziati fra 0 e 10. Altri comandi utili per gestire vettori e matrici sono sum e prod, che permettono di calcolare la somma ed il prodotto lungo le colonne di una matrice; ad esempio:

1

>>

aa =[1

2

;

3

4];

2

>>

sum ( aa )

 

3 ans =

4 >>

5 ans =

4

6

prod ( aa )

3

8

Marco Carnini Paolo Finotelli Chiara Lelli

`

E immediato valutare la somma ed il prodotto delle righe:

1 >>

2 ans =

3 >>

4 ans =

sum ( aa ’)

7

prod ( aa ’)

3

2

12

Un utile comando per gestire matrici

`e find, che restituisce gli indici di

tutti gli elementi non nulli in una matrice:

 

1 >>

bb =[4

0;6

0];

 

2 >> dove = find ( bb )

3

dove =1

4

2

5

>> valori = bb ( dove )

6

valori =4

7

6

find ( bb ) 3 dove =1 4 2 5 >> valori = bb ( dove

Matlab - Lezione I

 

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Quindi dove contiene gli indici degli elementi non nulli (indice per colonna), valori il valore di tali elementi. Un’applicazione potrebbe essere questa: cercare i numeri divisibili per 7 fra i primi 100 numeri.

1 >>

2 for

3 cc ( i , j )= i +10*( j -1) ;

4 end

5 end

6 >>

for

i =1:10

j =1:10

cc = cc ’

Trovo i numeri divisibili per 7 tramite mod (che restituisce il resto della divisione del primo argomento diviso il secondo)

Marco Carnini Paolo Finotelli Chiara Lelli

1 dove = find ( mod ( cc ,7) ==0) ;

>>

2 quanti = length ( dove )

>>

 

3 quanti =14

 

4 >>

quali = cc ( dove );

 

1 >>

quali ’

 

2 quali ’=

 

21

91

42

63

 

14

84

35

56

7

77

28

98

49

70

3

>>

sort ( quali ’)

 

4

ans =

 

7

14

21

28

 

35

42

49

56

63

70

77

84

91

98

Il comando sort ordina gli elementi di un vettore, il comando length ne misura la lunghezza.

98 Il comando sort ordina gli elementi di un vettore, il comando length ne misura la

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

4 Numeri complessi

2 I comandi base 3 Vettori e matrici 4 Numeri complessi Marco Carnini Paolo Finotelli Chiara

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Un numero complesso a viene rappresentato come una coppia di numeri reali

1

>>

a =5+3* i

2

a

=5.0000+3.0000* i

3

>>

real ( a )

4

ans =5

5

>>

imag ( a )

6

ans =3

Il complesso coniugato del numero si determina con il comando conj, il modulo con abs

1

>>

b = conj ( a )

2

b

=5.0000 -3.0000* i

3

>>

abs ( a )

4

ans =5.8310

5

>>

abs ( a ) - sqrt ( a * b )

6

ans =0

Marco Carnini Paolo Finotelli Chiara Lelli

Se si vuole rappresentare il numero complesso in forma esponenziale

z = x + iy = x 2 + y 2 e iϑ

ϑ = arctan(y /x) =

arccos(x/ x 2 + y 2 )

per determinare l’angolo ϑ (misurato in radianti) si usa angle

1 >>

2 theta =0.54042

theta = angle ( a )

3 a - abs ( a )* exp ( i * theta )

>>

ans

4 =

0.0000 e +00

-

4.4409 e

-16 i

Tramite il comando compass si ottiene una rappresentazione grafica.

+00 - 4.4409 e -16 i Tramite il comando compass si ottiene una rappresentazione grafica. Matlab

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Infatti,

1 >>

c1 =1.5* pi * i ;

 

2 >>

c2 = -1.5* pi * i ;

3 >>

c3 =1.5;

4 >>

c4 = c1 + c3 ;

5 >>

compass ( c1 );

6 hold

>>

on ;

7 >>

compass ( c2 );

8 >>

compass ( c3 );

9 >>

compass ( c4 );

180

10 print

>>

- depsc

figura . eps

La lunghezza del vettore rappresenta il modulo del numero complesso, la sua inclinazione (espressa in gradi nel grafico ottenuto con compass) l’angolo ϑ. L’ultimo comando salva la figura con nome “figura.eps” in formato eps a colori (“-depsc”)

Marco Carnini Paolo Finotelli Chiara Lelli

90 5 120 60 4 3 150 30 2 1 210 330 240 300
90
5
120
60
4
3
150
30
2
1
210
330
240
300

270

0

Carnini Paolo Finotelli Chiara Lelli 90 5 120 60 4 3 150 30 2 1 210

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

4 Numeri complessi

5 Alternative gratuite

e matrici 4 Numeri complessi 5 Alternative gratuite Marco Carnini Paolo Finotelli Chiara Lelli Matlab -

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Due principali alternative gratuite a MATLAB:

che presentano lati positivi e negativi:

Gratuiti

Completamente open source: si possono studiare tutti gli algoritmi adottati (ed inserirli nei propri codici).

Largamente compatibili con MATLAB.

Interfaccia grafica pi`u macchinosa (ma con qtoctave non molto diversa).

I grafici vengono realizzati appoggiandosi a gnuplot (octave).

Calcolo simbolico non implementato (octave).

Non integrati quanto MATLAB.

Marco Carnini Paolo Finotelli Chiara Lelli

non implementato (octave). Non integrati quanto MATLAB. Marco Carnini Paolo Finotelli Chiara Lelli Matlab - Lezione

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

4 Numeri complessi

5 Alternative gratuite

6 Bibliografia

4 Numeri complessi 5 Alternative gratuite 6 Bibliografia Marco Carnini Paolo Finotelli Chiara Lelli Matlab -

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Referenze (liberamente disponibili)

Marco Carnini Paolo Finotelli Chiara Lelli

di MATLAB per ingegneri matematici – Lab2010.zip Marco Carnini Paolo Finotelli Chiara Lelli Matlab - Lezione

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

1 Introduzione a MATLAB

2 I comandi base

3 Vettori e matrici

4 Numeri complessi

5 Alternative gratuite

6 Bibliografia

7 Esercizi

5 Alternative gratuite 6 Bibliografia 7 Esercizi Marco Carnini Paolo Finotelli Chiara Lelli Matlab -

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

Esercizio Si consideri in C l’equazione z 8 = 3 ` E noto che la
Esercizio
Si
consideri in C l’equazione
z 8 = 3
`
E
noto che la radice i-esima avr`a la
forma
8
z k = √ 3w k ,
essendo w k la k-esima radice
dell’unit`a,
w k = e 2πik/n
con 0 ≤ k ≤ n − 1. Si risolva
l’equazione e si rappresentino le
radici (si usino compass e solve).

Marco Carnini Paolo Finotelli Chiara Lelli

e solve). Marco Carnini Paolo Finotelli Chiara Lelli Esercizio Si consideri in C l’equazione z 4

Esercizio Si consideri in C l’equazione

z 4 8z 3 + 16z 2 8z + 15 = 0

Si risolva l’equazione e si rappresentino le radici (si usino compass e solve come nell’esercizio precedente).

e si rappresentino le radici (si usino compass e solve come nell’esercizio precedente). Matlab - Lezione

Matlab - Lezione I

Introduzione a MATLAB I comandi base Vettori e matrici Numeri complessi Alternative gratuite Bibliografia Esercizi

complessi Alternative gratuite Bibliografia Esercizi Esercizio Si considerino le funzioni y 0 = 5 sin(2 x

Esercizio Si considerino le funzioni

y 0 = 5 sin(2x)

y 1 = 10 cos(2x)

y 2 = 20 sin(2x)

Si realizzi un unico grafico nell’intervallo [0, 2π] delle tre funzioni (si utilizzino i comandi linspace, plot, hold) esportandolo in eps a colori.

Marco Carnini Paolo Finotelli Chiara Lelli

eps a colori. Marco Carnini Paolo Finotelli Chiara Lelli Esercizio Si consideri la funzione y 0

Esercizio Si consideri la funzione

y 0 = sin(30x)

La si rappresenti nell’intervallo [0, 4π] rispettivamente con 10, 20, 50, 100 e 10000 punti. Si riportino tutti i grafici nella medesima immagine, utilizzando colori differenti per grafici differenti (si veda l’help).

nella medesima immagine, utilizzando colori differenti per grafici differenti (si veda l’ help ). Matlab -

Matlab - Lezione I