MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

22
MATLAB

Transcript of MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Page 1: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

MATLAB

Page 2: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

RiassuntoCos’è MatlabComandi elementariVettoriMatriciOperazioni

Page 3: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Outline

Sistemi lineari

--

Fattorizzazione LUM-fileEsercizi

nm

nn

A

A

R

RbxA

Page 4: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Sistemi Lineari

Teorema di Rouchè-Capelli rango(A) = rango(A|b) <=> il sistema è

risolubile rango(A) = rango(A|b) = n => unica

soluzione rango(A) = rango(A|b) = p < n => ∞n-p

soluzioni

mnnm bxA

bxA

RRR

matrice dei coefficienti

matrice dei termine noti

Page 5: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Risoluzione di sistemi Lineari

Sostituzione Cramer

Se A è quadrata & invertibile Algoritmo di Gauss

operazioni elementari sulle righepivotizzazione (parziale o totale) ->

importante quando si implementa l’algoritmo al calcolatore

Page 6: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

A quadrata non singolare

bAxctxA

bxAn

nnnxn

..!0det R

RRR

x = A\bil simbolo non è quello della divisione!!

x = inv(A)*b

la soluzione è calcolata mediante l’algoritmo Gaussiano con pivot parziale tempo richiesto minore del calcolo dell’inversa

Page 7: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Esempio

2

2

3

111

111

111

bA

A = [1 1 1; 1 1 -1; 1 -1 1];b = [3 2 2]’;det(A)x = A\b

)2

1,

2

1,2(),,( zyx

ci assicuriamo che il det di A sia diverso da zero

Page 8: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Il comando rref

Per studiare e risolvere un sistema qualunque si deve ridurre la matrice completa (A|b)

Si usa il comando rref(reduced row echelon form)

100

010

001

110

225

143

rref(A)

Page 9: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

A quadrata singolare

0det

2

14

14

110

325

143333

A

bAbA RR

A = [3 4 -1; 5 2 3; 0 1 -1];A = [3 4 -1; 5 2 3; 0 1 -1];b = [14 14 2]’;b = [14 14 2]’;rank(A)rank(A)rank([A b])rank([A b])rref([A b])

per vedere se il sistema èrisolubile confrontiamo il rango di A con quello dellamatrice completa (A|b)

questo sistema è risolubile in quanto rango(A)=rango(A|b)=2 => ∞ soluzioni

),2,2(),,(

0000

2110

2101

2110

14325

14143

zzzzyx

Page 10: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

A = [1 0 1; 0 -1 0]; b = [0 1]’;rank(A)rank([A b])rref([A b])

A rettangolare2332

1

0

010

101RRR

bxAbA

),1,(),,(

1010

0101

1010

0101

zzzyx

questo sistema è risolubile in quanto questo sistema è risolubile in quanto rango(A)=rango(A|b)=2 => ∞ soluzionirango(A)=rango(A|b)=2 => ∞ soluzioni

Page 11: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

…riassumendo…A quadrata NON singolare

A quadrata singolare o A m x n

rref ci restituisce la matrix ridotta le soluzioni le dobbiamo scrivere noi a partire

dalla matrix ridotta ottenuta

x = A\b

rank(A)rank(A)rank([A b])rank([A b])rref([A b])rref([A b])

Page 12: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Esercizio 1Studiare e risolvere, eventualmente, i

seguenti sistemi lineari:

1

3

1

00110

12110

01121

2

4

1

11

21

31

0

4

1

101

121

431

bA

bA

bA

Page 13: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Fattorizzazione LU

dove: U è la matrice triangolare superiore

ottenuta da A mediante l’algoritmo di Gauss con pivotizzazione parziale

L è una matrice quadrata invertibile e “a meno di permutazioni delle righe” è una matrice triangolare inferiore con tutti 1 sulla diagonale

LUActULA

bxAbAx nnxn

..,0det

,

RR

Page 14: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

LU in MATLAB

A=[1 0 1 1 3 2 1 -3 -8]det(A)[L U] = lu(A)

831

231

101

A

Page 15: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Risoluzione di un sistema con LU

[L U] = lu(A);y = L\b;x = U\y

yUx

bLybAx

bLUxbAxLUA

In Matlab

Il tempo complessivo richiesto dai tre comandi

equivale a quello richiesto dall’algoritmo Gaussiano

sistema triangolare

Page 16: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Quando si hanno più sistemi con la stessa matrice dei coefficienti A conviene decomporre una sola volta A in LU e risolvere i sistemi lineari con i comandi precedenti => risparmio di tempo

Quando conviene LU?kibAx i ,...,2,1

[L U] = lu(A);y = L\bi; i=1,…,kx = U\y;

Page 17: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

M-fileE’ possibile scrivere degli script in Matlab

cliccando su new File -> New -> M-file

Page 18: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Editor

Dopo aver scritto i comandi • si salva il file cliccando su save• si assegna un nome al file (es. prova_lu.m)

Page 19: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Richiamare lo script

• si definiscono A e b • si richiama lo script prova_lu

Page 20: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Esercizio 2

Dopo essersi accertati che il sistema ammette un’unica soluzione trovare la soluzione con Gauss e mediante la decomposizione LU

1

5

0

011

311

113

bA

Page 21: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Esercizi 3 e 4Provare a scrivere uno script per risolvere

un sistema triangolare con il metodo di Cramer

Studiare il seguente sistema

1

2

1

0101

1213

1112

4

3

2

100

240

321

bA

bA

Page 22: MATLAB. Riassunto Cosè Matlab Comandi elementari Vettori Matrici Operazioni.

Esercizio 5 Sia H la matrice di Hankel 7x7 del vettore v =

(7,6,…,1) (si genera col comando hankel(v) ) Costruire una matrix A 7x7 t.c.

le prime 6 righe e 6 colonne siano tratte da H l’ultima colonna sia la successione 7,6,…,1 l’ultima riga sia la successione 3*7-1,3*7-4,…1

Risolvere se possibile il sistema lineare Ax = b, dove b=(0 1 2 2 2 1 1)T

Scrivere le soluzioni