Sei sulla pagina 1di 7

Lab11 (sistemi) Lab11 (sistemi)

Soluzione di sistemi lineari Esistenza delle soluzioni

Metodi per la soluzione di sistemi di Quante soluzioni?


equazioni lineari: 1 se singolare
Eliminazione di variabili 0 o infinite se non singolare
Metodo di Cramer
6 x -10 y = 2 Abbiamo una soluzione:
Matrice inversa
3 x -4 y = 2 intercetta in y = 4, x = 7
Tipi di sistemi:
Sistemi determinati 3 x -4 y = 5 Nessuna soluzione:
Sistemi indeterminati 6 x -8 y = 3 Rette parallele!
Sistemi sovradeterminati

1 2

Lab11 (sistemi) Lab11 (sistemi)

Primo sistema: Secondo sistema:

3 4
Lab11 (sistemi) Lab11 (sistemi)

 Per esempio: 2 x1 + 3 x2 + 3 x3 =7
Rappresentazione come matrici 4 x1 + 2 x2 + 9 x3 =5
6 x1 7 x2 + 2 x3 =1
 Sistema di n equazioni in m incognite (le x)
 In forma matriciale: A*x=b
a11 x1 + a12 x2 K + a1m xm = b1 con

a21 x1 + a22 x2 K + a11 xm = b2 2 3 3 x1 7


A = 4 2 9 x = x2 b = 5
M O M
6 7 2 x3 1
an1 x1 + an 2 x1 + anm xm = bn

5 6

Lab11 (sistemi) Lab11 (sistemi)

a11 x1 + a12 x2 K + a1m xm = b1


a21 x1 + a22 x2 K + a11 xm = b2 Esistenza delle soluzioni
M O M
an1 x1 + an 2 x1 + anm xm = bn Nel sistema di n equazioni in n incognite (A
quadrata)
 In generale: A*x=b
Ax=b
Vettori colonna  Se il determinante di A nullo non c una
A una n per m
(minuscola)
x una m per 1 soluzione unica!
b una n per 1  Possono esserci 0 o infinite soluzioni, a
seconda del valore di b

7 8
Lab11 (sistemi) Lab11 (sistemi)

Metodi di soluzione Metodo di Gauss in Matlab

 Metodo di Gauss  Si usa loperatore divisione sinistra: x = A\b.


Sommiamo unequazione (moltiplicata per un Per Esempio,
coefficiente) ad unaltra
Eliminiamo una variabile alla volta.
>> A = [6, -10; 3, -4]; b = [2; 5];
 Matrice Inversa
>> x = A\b
 Determinante di Cramer
x =
7 4

9 10

Lab11 (sistemi) Lab11 (sistemi)

Metodo di Cramer
 Questo metodo funziona sicuramente se
abbiamo n equazioni ed n incognite (A
 L i-esima soluzione del sistema A x = b sono
quadrata) e det(A) diverso da 0. ricavabili con lespressione:
 Se det(A) = 0 o se A non quadrata
dobbiamo usare altri metodi (anche se in
certi casi la divisione sinistra funziona
uguamente).  Dove Ai la matrice ottenuta dalla matrice A
sostituendo la i-esima colonna con il vettore b
 Non comodo per i computer ma ci dice
perch det(A) deve essere non nullo!

11 12
Lab11 (sistemi) Lab11 (sistemi)

Metodo della matrice inversa Sistemi indeterminati

 Il comando inv(A) calcola linversa di A  In un sistema indeterminato ci sono meno


 Per risolvere 2x + 9y = 5 equazioni che incognite (in generale)
3x - 4y = 7
 In pratica non abbiamo abbastanza
>>A = [2,9;3,-4]; informazioni per risolverlo
>>b = [5;7]  Possono esistere infinite soluzioni, in cui una
>>x = inv(A)*b Se A singolare o pi incognite dipendono dalle altre
x = inv(A) ci restituisce
un messaggio di  Con questi sistemi Cramer e la matrice
2.3714 inversa non funzionano.
0.0286 errore!!!

13 14

Lab11 (sistemi) Lab11 (sistemi)

Un esempio banale  Il sistema pu essere indeterminato anche


con A, quadrata, se det(A)=0.
Abbiamo il sistema: x +3 y = 6
 Possiamo trovare x in funzione di y:
 Anche in questo caso potremmo avere
x = 6 3 y , ma niente di pi infinite soluzioni (oppure nessuna)
 Abbiamo 2 incognite ed una sola equazione.  In questo caso Cramer non funziona, e la
 Il metodo della divisione a sinistra trover una divisione sinistra ci da un messaggio di
soluzione con una variabile nulla: errore (A singolare)
>>A = [1, 3]; b = 6;
 Possiamo usare la
>>solution = A\b pseudo-inversa:
solution =  In Matlab:
0 x = pinv(A) * b
2 Cio x=0, y=2
Ci fornisce la soluzione di norma minima.
15 16
Lab11 (sistemi) Lab11 (sistemi)

La funzione rref
Sistemi sovradeterminati
 Nei sistemi indeterminati possiamo dare una
soluzione esprimendo alcune incognite in
 un sistema si dice sovradeterminato quando
funzione delle altre.
ci sono pi equazioni che incognite (in
 Possiamo sempre ridurre un sistema in generale)
questa forma (reduced row echelon form,
 In questi casi Cramer e linversa non
matrice a righe ridotte)
funzionano perch A non quadrata
 Il comando rref([A b]) fornisce in uscita la
 In alcuni casi pu esistere una soluzione,
matrice [C d] che identifica il sistema ridotto
ottenibile con la divisione sinistra x = A \ b
Cx=d

17 18

Lab11 (sistemi) Lab11 (sistemi)

Un esempio:
 In altri casi non esiste una soluzione esatta
 Allora la divisione a sinistra fornisce la  Dobbiamo trovare lequazione della retta
soluzione nel senso dei minimi quadrati y=mx+b
 Per Matlab non ci dice se esatta o dei che passi per i seguenti punti:
minimi quadrati. (0,2) (5,6) (10,11)
 Per scoprirlo dobbiamo verificare il rango di  Le incognite sono i coefficienti (m, b) e il
A e il rango di [A b], se sono uguali la sistema :
soluzione esatta, altrimenti stata trovata 0 m + b = 2 Le matrici sono:
la soluzione ai minimi quadrati. 5 m + b = 6 A = [0 1;5 1;10 1]
10 m + b = 11
b = [ 2 ; 6 ; 11 ]
19 20
Lab11 (sistemi) Lab11 (sistemi)

>> A = [0 1;5 1;10 1] ;b = [ 2 ; 6 ; 11 ]; La nostra soluzione:


>> rank(A)
ans =
2
>> rank([A b])
ans =
3
>> A\b
Ecco i coefficienti:
ans =
0.9000 m
1.8333
b
>> A*ans
ans =
1.8333
6.3333
10.8333

21 22

Lab11 (sistemi) Lab11 (sistemi)

Perch minimi quadrati?


Una condizione pi generale

 Possiamo dire che il sistema A x = b con m


equazioni ed n incognite ha soluzione esatta
se e solo se
rank (A) == rank ( [ A b ] )
 Se questa soddisfatta e:
 Rank(A)=n la soluzione unica
 Rank(A)<n ci sono infinite soluzioni e abbiamo
rank(A) incognite che dipendono dalle altre

23 24
Lab11 (sistemi) Lab11 (sistemi)

% Script file lineq.m


% Solves the set Ax = b, given A and b.
% Check the ranks of A and [A b].
if rank(A) == rank([A b])
% The ranks are equal.
Size_A = size(A);
% Does the rank of A equal the number of
Oppure % unknowns?
minimi if rank(A) == size_A(2)
quadrati!
% Yes. Rank of A equals the number of
% unknowns.
disp(There is a unique solution,
which is:)
x = A\b % Solve using left division.
25 26

Lab11 (sistemi)

else
% Rank of A does not equal the number
% of unknowns.
disp(There is an infinite number of
solutions.)
disp(The augmented matrix of the
reduced system is:)
rref([A b]) % Compute the augmented
% matrix.
end
else
% The ranks of A and [A b] are not equal.
disp(There are no solutions.)
end
27