Top Banner
MATLAB
22

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

May 01, 2015

Download

Documents

Macario Neri
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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