matlab stefano gagliardo [email protected] gagliard

24
MATLAB Stefano Gagliardo [email protected] http://www.dima.unige.it/~gagliard/

Upload: narciso-d-ambrosio

Post on 01-May-2015

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

MATLAB

Stefano Gagliardo

[email protected]://www.dima.unige.it/~gagliard/

Page 2: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Scopo della lezione:

Introduzione a Matlab

Matrici

Esercizi

Page 3: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

MATLAB MATrix LABoratory Linguaggio di programmazione interpretato

legge un comando per volta eseguendolo immediatamente

Page 4: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

POTENZIALITA’ DI MATLAB

• Operazioni elementari tra matrici (moltiplicazione, determinante, rango, inversa ecc.);

• risoluzione sistemi lineari;

• calcolo degli autovalori e autovettori di matrici;

• grafica: grafici 2D e 3D

Page 5: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

MATLAB come calcolatrice

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

4 + 7

invio

lo memorizza in ans

Page 6: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Comandi elementari I

Operatori aritmetici + - * / ^

Caratteri speciali ; % :

Variabili predefinite i, pi, NaN, Inf2/0 -> Inf0/0 -> NaN (Not-a-Number)

Page 7: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Funzioni elementari:sin, cos, log, exp

Comandi speciali: clear, clc

help

lookfor

Comandi elementari II

Page 8: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Lavorare con MATLABIn MATLAB tutte le variabili sono trattate

come matrici, e quindi:

scalari -> matrici 1 x 1

vettori riga -> matrici 1 x n v = (v1,…, vn)

vettori colonna -> matrici n x 1 v = (v1,…, vn)T

matrici -> matrici m x n

mnm

n

aa

aa

A

1

111

Page 9: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Vettori

Per definire un vettore riga

Per 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

Page 10: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Matrici

Per definire una matrice:

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

22

21

03

RA

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

32

021

303

RB

R1=[3 0 3] R2=[1 2 0] B = [R1;R2]

Page 11: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Creazione vettori

vettori che siano delle progressionearitmetiche di passo costante p:

v=val_iniziale:p:val_finale

b = 1: .2 : 4c = 3: -1: 1

Se p=1 si può omettere

Page 12: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Esercizio 1 Costruire un vettore di 40 elementi così

fatto: i primi 20 elementi sono 1,2,…,20gli ultimi 20 20,19,…,1

Chiamare questo vettore v

SOLUZIONE:

v = [1:20 20:-1:1]

Page 13: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Individuare\modificare elementi

per selezionare un elemento

per modificare l’elemento

per visualizzare B

32

021

303

RB

B(2,3)

B(2,3) = 1;

B

Page 14: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Estrarre sottomatrici

estrarre la riga R2

32

021

303

RB

B(2,:)

B(:,2:3)

estrarre la colonna C2B(:,2)

sottomatrice 2 x 2

B(:,[2 3])

Page 15: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Matrici diagonali (diag)

22

21

03

RA

1. MATRICE A: diagonale di A -> d = diag(A) con d vettore colonna

2. VETTORE d: B = diag(d) ->

20

03B

Page 16: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Matrici triangolari

22

21

03

RA 32

021

303

RB

matrice triangolare inferiore

tril(A)

matrice triangolare superiore

triu(B)

Page 17: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Matrici notevoli

identità di ordine n -> eye(n)

matrice nulla m x n -> zeros(m,n)

matrice m x n di 1 -> ones(m,n)

matrice m x n a valori randomcompresi tra 0 e 1 -> rand(m,n)

Page 18: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Esercizio 2 Costruire una matrice A 3 x 7 cosi fatta:

la prima riga a1 = 7,6,…,1 la seconda riga a2 = 1,1,…,1 la terza riga a3 = 0,0,…,0

Estrarre 2 sottomatrici: una costituita dalle ultime 3 colonne una costituita dagli elementi della I e III riga ,

II e IV colonna

Page 19: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Operazioni I

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];

Page 20: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Operazioni - somma

Somma / Differenza

A+B

A-B

A+C

??? Error using = => +

Matrix dimensions must

agree.

Trasposta A’

Page 21: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Operazioni - 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

Page 22: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Determinante

Determinante det(B)

det(D)

1

0

Inversa inv(B)

inv(D)

Rango rank(D) 2

?

110

325

143

11

01DB

11

01

Page 23: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Esercizio 3

Definite:

1. Valutare quale delle seguenti operazioni sono lecite e nel caso lo siano eseguirle con Matlab:

A+B, A*B, A.*B, A*B’;

2. Calcolare: D=(A*A’)-I, con I matrice identica;

3. Verificare le proprietà della trasposta: A=(A’)’, (A+B)’=A’+B’, A*B’=(B*A’)’,

det(D’)=det(D), (cA)’=cA’ con c scalare.

03572

10034

54103

02421BA

Page 24: MATLAB Stefano Gagliardo gagliardo@dima.unige.it gagliard

Esercizio 4

5200

4020

30020

40002

59.42.41.44

300

000

000

100

010

001

01168

0163

0142

0121

C

BA