MATLAB. Annalisa Pascarella pascarel@dima.unige.it .

Post on 01-May-2015

224 views 2 download

transcript

MATLABMATLAB

Annalisa PascarellaAnnalisa Pascarella

pascarel@dima.unige.itpascarel@dima.unige.it

www.aula.dimet.unige.itwww.aula.dimet.unige.it

……oggi…oggi…

Piccola introduzione a MatlabPiccola introduzione a Matlab MatriciMatrici

definizionedefinizione operazionioperazioni

EserciziEsercizi

MATLABMATLAB MATrix LABoratoryMATrix LABoratory Linguaggio di programmazione Linguaggio di programmazione

interpretatointerpretato legge un comando per volta eseguendolo legge un comando per volta eseguendolo

immediatamenteimmediatamente

Per avviarlo -> Per avviarlo ->

icona sul desktopicona sul desktop

command window

MATLAB come calcolatrice-MATLAB come calcolatrice-11

è possibile definire variabili e operare su essex = 9 -> invio

4 + 7

invio

MATLAB come calcolatrice-MATLAB come calcolatrice-22

Operatori aritmeticiOperatori aritmetici +, -, *, /, ^, +, -, *, /, ^, Caratteri specialiCaratteri speciali ;, %, : ;, %, : Variabili predefiniteVariabili predefinite i, pi, NaN, Infi, pi, NaN, Inf

2/02/0 ->-> InfInf 0/00/0 ->-> NaN (Not-a-Number)NaN (Not-a-Number)

Funzioni elementariFunzioni elementari sin, cos, log, sin, cos, log, expexp

Comandi specialiComandi speciali help, clear help, clearhelp sqrt

Lavorare con MATLABLavorare con MATLAB

In MATLAB tutte le variabili sono trattate In MATLAB tutte le variabili sono trattate come matricicome matrici scalariscalari ->-> matrici 1 x 1matrici 1 x 1 vettori rigavettori riga ->-> matrici 1 x nmatrici 1 x n

v = (vv = (v11,…, v,…, vnn)) vettori colonnavettori colonna ->-> matrici n x 1matrici n x 1

v = (vv = (v11,…, v,…, vnn))TT

matricimatrici -> -> matrici m x nmatrici m x n

mnm

n

aa

aa

A

1

111

VettoriVettori

Per definire un vettore rigaPer definire un vettore riga

Per definire un vettore colonnaPer definire un vettore colonna

a = [1 2 3 4 5]o

a = [1, 2, 3, 4, 5]

a = [1; 2; 3; 4; 5]o

a = [1 2 3 4 5] ’

trasposto

per separare le righe

Il comando :Il comando :

Importante per la manipolazione delle Importante per la manipolazione delle matricimatrici

EsempiEsempi generazione di vettori che siano delle generazione di vettori che siano delle

progressione aritmetiche di passo costanteprogressione aritmetiche di passo costante• a = [1:10]a = [1:10] o o a = 1:10a = 1:10• b = 1: .2 : 4b = 1: .2 : 4• c = 3:0c = 3:0 ->-> non produce niente!!!!non produce niente!!!!• c = 3: -1: 1c = 3: -1: 1

mediante : si possono estrarre righe e colonnemediante : si possono estrarre righe e colonne

Esercizio Esercizio

Costruire il vettore v di 40 elementiCostruire il vettore v di 40 elementiv = [1,2,…,20,20,19,…,1]v = [1,2,…,20,20,19,…,1]

Usare il comando Usare il comando lengthlength su v su v

MatriciMatrici Per definire una matricePer definire una matrice

22

21

03

RA

A = [3 0; 1 2]A = [3 0 1 2]

32

021

303

RB B = [3 0 3; 1 2 0]

size(B)size(B) ->-> dimensioni della matricedimensioni della matrice

per memorizzare le dimensioni ->per memorizzare le dimensioni -> [r c] = size(B)[r c] = size(B)

Individuare\modificare Individuare\modificare elementielementi

per selezionare un per selezionare un elementoelemento

per modificare l’elementoper modificare l’elemento

per visualizzare Bper visualizzare B

32

021

303

RB

B(2,3)

B(2,3) = 1;

B

Estrarre sottomatriciEstrarre sottomatrici

estrarre la riga Restrarre la riga R22

32

021

303

RB

B(2,:)

B(:,2:3)

estrarre la colonna Cestrarre la colonna C22B(:,2)

sottomatrice 2 x 2sottomatrice 2 x 2

B(:,[1 3])

Matrici diagonaliMatrici diagonali

22

21

03

RA

20

03A

costruisce anche matrici diagonali

40

01

Diagonale di A

d = diag(A)

diag(d)

a = [ 1 2 ]; diag(a)

20

01D

Matrici triangolariMatrici triangolari

22

21

03

RA 32

021

303

RB

matrice triangolare inferiore ->

tril(A)

matrice triangolare superiore ->

triu(B)

Identità-zero-unoIdentità-zero-uno

identità di ordine n-> eye(n)

eye(3)

100

010

001

I

matrice nulla m x n ->

000

000Z

zeros(m,n)

zeros(2,3)

matrice m x n di 1 ->

111

111Z

ones(m,n)

ones(2,3)

Esercizio 2Esercizio 2 Costruire la matrice Costruire la matrice

la I riga è la I riga è a1 = 14,12,…,2a1 = 14,12,…,2 la II riga è la II riga è a2 = 1,1,…,1a2 = 1,1,…,1 la III riga è la III riga è a3 = 0,0,…,0a3 = 0,0,…,0

Modificare l’elemento Modificare l’elemento A(1,3)A(1,3) ponendolo uguale ponendolo uguale a a 33

Estrarre 2 sottomatrici:Estrarre 2 sottomatrici: una costituita dalle ultime 3 colonneuna costituita dalle ultime 3 colonne una costituita dalla I e III riga e dalle colonne II e IVuna costituita dalla I e III riga e dalle colonne II e IV

73RA

I modoI modo

II modoII modo

III modoIII modo

Matrici a blocchiMatrici a blocchi22

21

03

RA

300

021

003

A

1121

3203D

A(3,3) = 3

C = [2 3; 1 1]

D = [A C]

C(3:4,3:4) = eye(2)

1000

0100

0011

0032

C

Operazioni - 1Operazioni - 1

clear

A=[1 2;3 4];

B=[1 0;-1 1];

C=[0 3 1;1 2 4];

D=[3 4 -1;5 2 3;0 1 -1];

110

325

143

421

130

11

01

43

21DCBA

Operazioni - sommaOperazioni - somma

421

130

11

01

43

21CBA

Somma / Differenza

A+B

A-B

A+C??? Error using = => +

Matrix dimensions must

agree.

Trasposta A’

Operazioni - prodottoOperazioni - prodotto

11

01

43

21BA

Prodotto A*B #CA = #RB

Elemento per elemento

A.*B size(A) = size(B)

Prodotto per uno scalare

A*k

DeterminanteDeterminante

110

325

143

11

01DB

Determinante det(B)

det(D)

1

0

Inversa inv(B)

inv(D)

Rango rank(D) 2

11

01

?

B^(-1)

EserciziEsercizi Costruire le matrici Costruire le matrici A e BA e B::

300

000

000

000

000

000

000

000

000

100

010

001

]8[1648

]3[193

]2[142

]1[111

B

A

floor) comando il (usare intera" parte" per sta [...] dove