Sunteți pe pagina 1din 17

Cursul 4

Schimbări de baze ı̂ntr-un spaţiu vectorial.


Subspaţii vectoriale. Aplicaţii ı̂n construcţia codurilor
detectoare şi corectoare de erori

4.1 Matricea schimbării de bază


În cursul precendent am subliniat că ı̂ntr-un spaţiu vectorial de dimensiune n există o infini-
tate de baze. Fie B, B′ două baze ı̂n spaţiul vectoria Vn /K (indicele n al lui V indică dimensi-
unea spaţiului), B = (e1 , e2 , . . . , en ), B′ = (f1 , f2 , . . . , fn ). B o numim baza veche, iar B′ , baza
nouă.
Orice vector v din spaţiu se exprimă ca o combinaţie liniară a vectorilor unei baze. În
baza B, v are exprimarea v = x1 e1 + x2 e2 + · · · + xn en , xi ∈ K, i = 1, n, iar ı̂n baza B′ :
v = y1 f1 + y2 f2 + · · · + yn fn , yi ∈ K, i = 1, n. În mod natural ne ı̂ntrebăm ı̂n ce relaţie sunt
cele două seturi de coordonate ale vectorului v:
I: x1 , x2 , . . . , xn
II : y 1 , y2 , . . . , y n

Pentru a determina o relaţie ı̂ntre ele, ţinem seama că B este o bază şi deci vectorii noii baze
se pot exprima ca o combinaţie liniară a vectorilor e1 , e2 , . . . , en :

f1 = a11 e1 + a12 e2 + · · · + a1n en


f2 = a21 e1 + a22 e2 + · · · + a2n en
.. (4.1)
.
fn = an1 e1 + an2 e2 + · · · + ann en

unde aij sunt scalari din K, i, j = 1, n.


Definiţia 4.1.1 Matricea TBB′ ce are pe coloane coordonatele vectorilor fj , j = 1, n ı̂n baza
B, se numeşte matricea de trecere de la baza B la baza B′ .
Notăm ı̂n cele ce urmează prin [v]B , matricea coloană constituită din coordonatele vectorului v
ı̂n baza B.
Cu această notaţie matricea de trecere TBB′ se exprimă succint astfel:

TBB′ = [[f1 ]B | [f2 ]B | . . . | [fn ]B ],

1
2 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

adică:
f1 f2 fn
↓ ↓ ↓ 
a11 a21 . . . an1
 a12 a22 . . . an2  (4.2)
 
TBB′ =  .. .. .. 
 . . ... . 
a1n a2n . . . ann

În mod analog se defineşte matricea de trecere de la baza B ′ la baza B. Adică dacă exprimăm
vectorii vechii baze ei , i = 1, n, ca şi combinaţii liniare a vectorilor noii baze, ei = ci1 f1 +
ci2 f2 + · · · cin fn , matricea de trecere de la baza B′ la baza B este:

e1 e2 en
↓ ↓ ↓ 
c11 c21 . . . cn1
 c12 c22 . . . cn2  (4.3)
 
TB′ B =  .. .. .. 
 . . ... . 
c1n c2n . . . cnn

TBB′ fiind matricea de trecere de la B la B′ , TB′ B realizează trecerea inversă de la B′ la B. Astfel


ne este sugerată ideea că cele două matrici sunt inverse una alteia. În continuare vom arăta că
ı̂ntr-adevăr:
−1
TB′ B = TBB ′ (4.4)
În acest scop exprimăm relaţiile dintre vectorii celor două baze ı̂n formă matricială, şi anume
(4.1):     
f1 a11 a12 . . . a1n e1
 f2   a21 a22 . . . a2n   e2 
    
 ..  =  .. .. ..   ..  (4.5)
 .   . . .  . 
fn an1 an2 . . . ann en
respectiv     
e1 c11 c12 . . . c1n f1

 e2  
  c21 c22 . . . c2n 
 f2 

 .. = .. .. ..  ..  (4.6)
 .   . . .  . 
en cn1 cn2 . . . cnn fn
Astfel avem:
     
f1 a11 a12 . . . a1n c11 c12 . . . c1n f1

 f2  
  a21 a22 . . . a2n 
 c21 c22 . . . c2n 
 f2 

 .. = .. .. ..  .. .. ..  ..  (4.7)
 .   . . .  . . .  . 
fn an1 an2 . . . ann cn1 cn2 . . . cnn fn
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 3

Pe de altă parte, vectorii f1 , f2 , . . . , fn fiind liniar independenţi ei nu se pot exprima unii ı̂n
funcţie de ceilalţi, singura exprimare fiind

fi = fi = 0f1 + 0f2 + · · · + 1fi + · · · + 0fn

sau matricial:
    
f1 1 0 ... 0 f1

 f2  
  0 1 ... 0 
 f2 

 .. = .. .. ..  ..  (4.8)
 .   . . .  . 
fn 0 0 ... 1 fn

Comparând ultimele două relaţii matriciale, rezultă că:


    
a11 a12 . . . a1n c11 c12 . . . c1n 1 0 ... 0

 a21 a22 . . . a2n 
 c21 c22 . . . c2n  
  0 1 ... 0 

 .. .. ..  .. .. .. = .. .. ..  (4.9)
 . . .  . . .   . . . 
an1 an2 . . . ann cn1 cn2 . . . cnn 0 0 ... 1

sau aplicând transpunerea ı̂n fiecare membru al acestei ultime egalităţi matriciale, obţinem:

−1
TBB′ TB′ B = In ⇔ TB′ B = TBB ′

adică matricea de trecere de la baza B′ la baza B este inversa matricii de trecere de la baza B
la baza B′ şi evident că matricile de trecere sunt nesingulare.

Vom arăta ı̂n continuare că matricea de trecere dintre două baze intervine ı̂n relaţia dintre
coordonatele aceluiaşi vector ı̂n cele două baze. Mai precis:

Propoziţia 4.1.1 Dacă vectorul v are exprimarea v = x1 e1 + x2 e2 + · · · xn en ı̂n baza B, re-


spectiv v = y1 f1 + y2 f2 + · · · + yn fn ı̂n baza B′ , atunci ı̂ntre cele două seturi de coordonate
există relaţia:
   
x1 y1

 x2 


 y2 

 ..  = TBB 
′ ..  , (4.10)
 .   . 
xn B
yn B′

Demonstraţie: Pornim de la exprimarea vectorului v ı̂n baza B′ , v = y1 f1 + y2 f2 + · · · yn fn şi


ı̂nlocuim vectorii bazei B′ ı̂n funcţie de vectorii bazei B (conform (4.5):
4 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

 
f1
 
 f2 
 4.5
v = y1 f1 + y2 f2 + · · · yn fn = y1 y2 . . . yn  .. =
 . 
fn
   (4.11)
a11 a12 . . . a1n e1
 
 a21 a22 . . . a2n 
 e2 

y1 y2 . . . yn  .. .. ..  .. 
 . . .  . 
an1 an2 . . . ann en
Pe de altă parte v = x1 e1 + x2 e2 + · · · xn en , adică
 
e1
 
 e2 

v= x1 x2 . . . xn  ..  (4.12)
 . 
en
Ultimul membru din (4.11) reprezintă de asemenea exprimarea vectorului v ı̂n baza B. Deoarece
exprimarea unui vector ı̂ntr-o bază este unică, rezultă că:
 
a11 a12 . . . a1n
 a21 a22 . . . a2n 
   
x1 x2 . . . xn = y1 y2 . . . yn  .. .. ..  (4.13)
 . . . 
an1 an2 . . . ann

Aplicând transpunerea ı̂n ambii membri ai relaţiei (4.13) matricile linie devin matrici coloană
şi conform proprietăţii (AB)T = B T AT , obţinem:
    
x1 a11 a21 . . . an1 y1
 x2   a12 a22 . . . an2   y2 
    
 ..  =  .. .. ..   ..  (4.14)
 .   . . ... .  . 
xn B a1n a2n . . . ann yn B ′
| {z }
TBB′

Observaţia 4.1.1 Relaţia dintre coordonatele vectorului v ı̂n bazele B, B′ se exprimă concen-
trat astfel:
[v]B = TBB′ [vB′ ] (4.15)
respectiv:
[v]B′ = TB′ B [vB ] (4.16)
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 5

Exemplul 1. În spaţiul vectorial R3 considerăm baza canonica B = (e1 , e2 , e3 ) şi baza B′ =
(f1 = (−1, 2, 1), f2 = (3, 0, −4), f3 = (2, 5, −1))
a) Să se determine matricile de trecere ı̂ntre cele două baze: TBB′ , TB′ B .
b) Să se determine coordonatele vectorului v = (0, 4, −3) relativ la baza B′ .
Rezolvare: a) Observăm că vectorii bazei B′ sunt exprimaţi ca triplete de numere reale, deci
ı̂n baza canonică:
f1 = (−1, 2, 1) = −1e1 + 2e2 − 4e3
f2 = (3, 0, −4) = 3e1 + 0e2 − 4e3
f3 = (2, 5, −1) = 2e1 + 5e2 − 1e3
Astfel, fără nici un calcul prealabil putem da matricea de trecere de la baza B la baza B ′ :
 
−1 3 2
TBB′ = [[f1 ]B | [f2 ]B | [f2 ]B ] =  2 0 5 
−4 −4 −1

Matricea de trecere de la baza nouă la baza veche, TB′ B este inversa matricii TBB′ . Pentru
determinarea inversei calculăm:
• transpusa matricii TBB′ :  
−1 2 −4
T
TBB ′ =  3 0 −4 
2 5 −1

• adjuncta:  
20 −5 15

TBB ′ =  −18 9 9 
−8 −16 −6

• determinantul: det(A) = −90


Astfel inversa este:  
20 −5 15
−1 −1 
TBB ′ ≡ TB ′ B = −18 9 9 
90
−8 −16 −6
b) Vectorul v este exprimat ı̂n baza canonică şi se cere să găsim descompunerea sa ı̂n baza B′ :
v = y1 f1 + y2 f2 + y3 f3 , y1 , y2 , y3 ∈ R. Coordonatele y1 , y2 , y3 se pot calcula ı̂n două moduri:
1. Înlocuim fiecare vector cu tripletul reprezentativ:

v = (0, 4, −3) = y1 (−1e1 + 2e2 − 4e3 ) + y2 (3e1 + 0e2 − 4e3 ) + y3 (2e1 + 5e2 − 1e3 )
= (−1y1 + 3y2 + 2y3 )e1 + (2y1 + 0y2 + 5y3 )e2 + (−4y1 − 4y2 − 1y3 )e3

şi obţinem sistemul:


−1y1 + 3y2 + 2y3 = 0
2y1 + 0y2 + 5y3 = 4
−4y1 − 4y2 − 1y3 = −3
6 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

sau matricial:     
−1 3 2 y1 0
 2 0 5   y2  =  4 
−4 −4 −1 y3 −3
Observăm că matricea sistemului este TBB′ . Această matrice fiind nesingulară, rezultă că
sistemul are o unică soluţie:
        
y1 0 0 20 −5 15 0
 y2  = TBB−1  −1 
′ 4  = TB′ B  4  = −18 9 9  4  =
90
y3  −3  −3 −8 −16 −6 −3
−65 65/90
−1 
9 = −1/10 
 
90
−46 46/90

Prin urmare vectorul v se exprimă ı̂n baza B′ astfel:


65 1 46
v= f1 − f2 + f3
90 10 90

2. Metoda a doua se bazează pe relaţia dedusă ı̂ntre coordonatele aceluiaşi vector ı̂n două
baze:
[v]B′ = TB′ B [v]B ,
adică:       
y1 0 20 −5 15 0
 y2  = TB′ B  4  = −1  −18 9 9  4 
90
y3 −3 −8 −16 −6 −3

Observăm că relaţia dintre coordonatele unui vector relativ la două baze este algoritmică şi evită
calcule suplimentare (comparativ cu metoda directă, 1).

Exemplul 2. În spaţiul vectorial real R2 se consideră baza canonică B = (e1 = (1, 0), e2 =
(0, 1)) şi bazele B′ = (u1 = (2, −3), u2 = (−1, 4)), B′′ = (f1 = (1, 3), f2 = (−1, 5)).
a) Să se determine matricea de trecere de la baza B′ la baza B′′ , TB′ B′′ .
b) Să se determine descompunerea vectorului v = 2u1 − 7u2 după vectorii bazei B′′ .

Rezolvare a) Vectorii celor două baze sunt exprimaţi ı̂n baza canonică. Prin urmare, din
datele problemei putem determina matricile de trecere TBB′ şi TBB′′ :
Din     
u1 = 2e1 − 3e2 u1 2 −3 e1
⇔ = (4.17)
u2 = −1e1 + 4e2 u2 −1 4 e2
rezultă că  
2 −1
TBB′ = ,
−3 4
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 7

iar din     
f1 = 1e1 + 3e2 f1 1 3 e1
⇔ = (4.18)
f2 = −1e1 + 5e2 f2 −1 5 e2
avem că:  
1 −1
TBB′′ = .
3 5
Pentru a determina matricea de trecere de la baza B′ la B′′ trebuie să exprimăm vectorii bazei B′′
ı̂n funcţie de vectorii bazei B′ . Din relaţia matricială (4.17), rezultă că vectorii bazei canonice
se exprimă ı̂n funcţie de vectorii bazei B′ prin:
   −1  
e1 2 −3 u1
= (4.19)
e2 −1 4 u2

Din (4.18) şi (4.19) rezultă exprimarea matricială a vectorilor bazei B′′ ı̂n funcţie de vectorii
bazei B′ :
    −1     
f1 1 3 2 −3 u1 1 7 9 u1
= = (4.20)
f2 −1 5 −1 4 u2 5 1 7 u2

Deci
7 9
f1 = u1 + u 2
5 5
1 7
f2 = u1 + u 2
5 5
şi prin urmare matricea TB′ B′′ este:
 
1 7 1
TB′ B′′ = (4.21)
5 9 7

Remarcăm că de fapt:


−1
TB′ B′′ = TB′ B TBB′′ = TBB ′ TB,B ′′

b) Descompunerea vectorului v după vectorii bazei B′′ este v = y1 f1 + y2 f2 , unde y1 , y2 sunt


numere reale care se pot determina, datorită faptului că se cunoaşte exprimarea lui v ı̂n baza B′ ,
v = 2u1 − 7u2 , din relaţia matricială:
   
y1 2
= TB′′ B′ (4.22)
y2 B′′
−7 B′

Matricea TB′′ B′ = TB−1 ′ B ′′ . Prin urmare rămâne doar să calculăm inversa matricei TB ′ B ′′ şi să

efectuăm inmulţirea ı̂n (4.22).


8 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

4.2 Subspaţii vectoriale


Fie V un spaţiu vectorial peste corpul K şi S o submulţime nevidă a sa. Ne ı̂ntrebăm ı̂n ce
condiţii S are structură de spaţiu vectorial peste K, relativ la operaţiile de adunare şi ı̂nmulţire
cu scalari din V ⊃ S. Evident că dacă sunt verificate cele 8 condiţii din definiţia spaţiului
vectorial pentru S, atunci S are structură de spaţiu vectorial peste K şi ı̂n acest caz spunem că
S este subspaţiu vectorial sau subspaţiu liniar al lui V .

Propoziţia 4.2.1 O submulţime nevidă S a spaţiului vectorial V peste corpul K este subspaţiu
vectorial dacă şi numai dacă următoarele două condiţii sunt verificate:
SSV1. ∀ s1 , s2 ∈ S ⇒ s1 + s2 ∈ S,;
SSV2. ∀ α ∈ K şi ∀ s ∈ S ⇒ αs ∈ S.

Evident, că ı̂n aceste condiţii (S, +) este grup comutativ şi ı̂n plus sunt satisfăcute cele 4 condiţii
din axiomele de spaţiu vectorial, relativ la ı̂nmulţirea cu scalari.

Exemplul 3. Fie θ vectorul nul din spaţiul vectorial V /K. Submulţimea S = {θ} ⊂ V este
subspaţiu vectorial al lui V , numit subspaţiul nul, sau trivial al lui V .

Orice subspaţiu vectorial S 6= {θ}, conţine vectorul nul θ, deoarece dacă s ∈ S, atunci −1s =
−s ∈ S şi deci θ = s − s ∈ S.

Exemplul 4. Mulţimea soluţiilor S ale unui sistem liniar şi omogen de m ecuaţii cu n necunos-
cute, de matrice A(aij ) ∈ Km×n , este un subspaţiu vectorial al lui Kn /K.

Într-adevăr, fie sistemul liniar şi omogen exprimat ı̂n forma matricială:
    
a11 a12 . . . a1n x1 0
 a21 a22 . . . a2n   x2   0 
    
 ..   ..  =  .. 
 .  .   . 
am1 am2 . . . amn xn 0

sau mai concis Ax = 0, unde x este vectorul coloană al necunoscutelor. Să arătăm că S = {x ∈
Kn |Ax = θ} este subspaţiu vectorial al lui Kn .
SSV1: Fie x, y două soluţii, adică Ax = θ şi Ay = θ. Atunci A(x + y) = Ax + Ay =
θ + θ = θ, deci x + y este soluţie a sistemului.
SSV2: Fie α ∈ K şi x o soluţie, adică Ax = 0. Atunci A(αx) = α(Ax) = αθ = θ, deci
αx este soluţie şi prin urmare S, mulţimea soluţiilor sistemului liniar şi omogen, de matrice A,
formează un subspaţiu vectorial al lui Kn , numit subspaţiul nul al matricii A sectioşi notat
Null(A).

Exemplul 5. Considerăm un sistem finit de vectori din V /K, S = {v1 , v2 , . . . , vr }. Mulţimea


tuturor combinaţiilor liniare posibile ale vectorilor din sistem se notează span(S),

span(S) = {v ∈ V |v = α1 v1 + α2 v2 + · · · + αr vr |α1 , α2 , . . . , αr ∈ K} (4.23)


Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 9

Această mulţime este este subspaţiu vectorial al lui V .

Într-adevăr, dacă s1 = α1 v1 + α2 v2 + · · · + αr vr ∈ span(S) şi s2 = β1 v1 + β2 v2 + · · · + βr vr ∈


span(S), atunci s1 + s2 = (α1 + be1 )v1 + (α2 + be2 )v2 + · · · + (αr + ber )vr ∈ span(S).
De asemenea, λs1 = λα1 v1 + λα2 + · · · + λαr vr ∈ span(S), ∀ λ ∈ K. Deci este subspaţiu
vectorial al lui V , numit subspaţiul generat de sistemul de vectori S.
Dacă un spaţiu vectorial V /K coincide cu span(S), atunci S se numeşte sistem de genera-
tori pentru V .

Exemplul 6. Să se determine subspaţiul lui R3 /R generat de vectorii v1 = (−2, 1, 4)T , v2 =


(3, 2, 0)T .

Notăm cu S subspaţiul generat de cei doi vectori.

S = {v(x, y, z)T ∈ R3 | v = αv1 + βv2 , α, β ∈ R}

Înlocuind vectorii din relaţie cu coordonatele lor avem:


       
x −2 3 −2α + 3β
 y  = α 1 +β 2  =  α + 2β 
z 4 0 4α

Mulţimea vectorilor (x, y, z)T din S coincide cu mulţimea vectorilor (x, y, z)T pentru care sis-
temul:
−2α + 3β = x
α + 2β = y
4α = z
este compatibil (⇔ există α, β ∈ R, astfel ı̂ncât v = αv1 + βv2 ). Condiţia de compatibilitate se
obţine impunând condiţia ca rangul matricii sistemului să coincidă cu rangul matricii prelungite.
Rangul matricii A a sistemului este 2. Pentru ca şi rangul matricii
 
−2 3 x
A= 1 2 y 
4 0 z

să fie 2, impunem condiţia ca determinantul



−2 3 x

det(A) = 1 2 y = 0,

4 0 z

şi astfel condiţia de compatibilitate devine: −8x + 12y − 7z = 0. Deci subspaţiul generat de
cei doi vectori este mulţimea vectorilor v(x, y, z)T din R3 ale căror coordonate verifică relaţia
−8x+12y−7z = 0, adică mulţimea soluţiilor unui sistem liniar şi omogen cu o singură ecuaţie.
10 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

Exemplul 7. În spaţiul vectorial R2 /R se dă sistemul de vectori

S = {v1 = (1, −2)T , v2 = (−2, 4)t }

Să se determine subspaţiul generat de S.


Conform definiţiei subspaţiului generat, avem că:

span(S) = {w ∈ R2 |w = α1 v1 + α2 v2 , α1 , α2 ∈ R}

Înlocuind vectorii v1 , v2 cu cuplurile de numere reale ce ı̂i reprezintă şi efectuând operaţiile
avem:
span(S) = {w = (x, y)T ∈ R2 | (x, y)T = (α1 − 2α2 , −2α1 + 4α2 )T }
Deci span(S) = {w = (x, y) ∈ R2 | y = −2x ⇔ 2x + y = 0}. Din punct de vedere
geometric, subspaţiul generat de cei doi vectori coincide cu dreapta ce trece prin origine, de
ecuaţie y = −2x.

4.2.1 Dimensiunea unui subspaţiu vectorial


Fie V un spaţiu vectorial peste corpul K, de dimensiune n şi S ⊂ V un subspaţiu vectorial
al lui V . Dimensiunea lui S este mai mică sau egală cu n. Dacă dimensiunea lui S este n, atunci
S ≡V.

Exemplul 8. Să se determine o bază ı̂n subspaţiul vectorial

S = {v(x, y, z)T ∈ R3 | x − 3y − 5z = 0}

al lui R3 şi dimensiunea acestui subspaţiu.

S este conform definiţiei mulţimea soluţiilor sistemului format dintr-o ecuaţie liniară şi omogenă:
x − 3y − 5z = 0. Pentru a determina mulţimea soluı̂ tiilor observăm că matricea sistemului este
A = [1 − 3 − 5]. ∆p = |1| este un determinant principal. Deci x este necunoscută principală,
iar α := y, β := z sunt necunoscute secundare. Deci x = 3α + 5β. Prin urmare S, mulţimea
soluţiilor se poate exprima astfel:
     
3α + 5β 3 5
3
S = {v ∈ R | v =  α = α 1 + β 0  , α, β ∈ R}
   
β 0 1

Prin urmare subspaţiul S este generat de vectorii s1 = (3, 1, 0)T , s2 = (5, 0, 1)T . Deoarece
acesţi vectori sunt liniar independenţi, rezultă că o bază ı̂n S este BS = (s1 , s2 ), deci dimensi-
unea subspaţiului S este 2 (numărul de vectori din bază).

Exemplul 9. Să se determine dimensiunea subspaţiului vectorial al lui R3 /R generat de vectorii


v1 = (1, 2, 1), v2 = (1, 0, 2), v3 = (5, 6, 7).
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 11

Să studiem relatia dintre vectori (liniar dependenţi sau independenţi?). Asociem vectorilor ma-
tricea  
1 1 5
A = [v1 |v2 |v3 ] =  2 0 6 
1 2 7
Prin transformări elemntare pe linie obţinem forma scară redusă:
 
1 0 3
SA =  0 1 2 
0 0 0

Rezultă că matricea SA , şi deci şi A au rangul 2, diferit de numărul de vectori (3). Prin ur-
mare vectorii sunt liniar dependenţi, şi anume coloana 3, se exprimă ca o combinaţie liniară a
coloanelor 1 şi 2, adică v3 = 3v1 + 2v2 . Vectorii v1 , v2 sunt liniar independenţi.
Prin definiţie S este generat de (v1 , v2 , v3 ), deci:

S = {v ∈ R3 | v = α1 v1 + α2 v2 + α3 v3 = α1 v1 + α2 v2 + α3 (3v1 + 2v2 )
= (α1 + 3α3 )v1 + (α2 + 2α3 )v2 }
| {z } | {z }
β1 β2

Prin urmare o bază ı̂n S este constituită din vectorii (v1 , v2 ), şi astfel dimensiunea subspaţiului
S este dim(S) = 2.
Din exemplele prezenate deducem că orice subspaţiu vectorial al lui Kn este dat fie ca
mulţimea soluţiilor unui sistem liniar şi omogen, fie prin sistemul de generatori. Şi ı̂n al doilea
caz subspaţiul poate fi descris de soluţiile unui sistem liniar şi omogen. Ecuaţiile sistemului se
numesc ecuaţiile subspaţiului.

4.2.2 Algoritm de determinare a unei baze ı̂nntr-un subspaţiu vectorial de ecuaţii Ax = θ


1
Deducem algoritmul pe baza unui exemplu concret, prezentarea generală fiind laborioasă
şi dificil de ı̂nteles.

Exemplul 10. Să se determine o bază ı̂n subspaţiul vectorial S = {x ∈ R5 |Ax = θ} adică o
bază ı̂n subspaţiul vectorial al soluţiilor sistemului Ax = θ:
 
  x1  
2 −2 4 0 −10  0
  x2  

 3 −3 −1 7 6 0 
   x3  =  
 −1 1 7 −9 −22     0 
 x4 
7 −7 2 12 1 0
x5
Cum prin transformări elementare pe linie mulţimea soluţiilor nu se schimbă, S coincide cu
mulţimea soluţiilor sistemului ce are ca matrice forma scară redusă a lui A, adică a sistemului:
1
Cunoaşterea algoritmului nu este obligatorie. Este util doar dacă doriţi să implementatţi constituirea bazei
direct din forma scară a matricii sistemului, fără a rezolva efectiv sistemul.
12 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

 
  x1  
1 −1 0 2 1  0
 0 x2 
0 1 −1 −3     0 

 0
 x3 = 
0 0 0 0    0 
 x4 
0 0 0 0 0 0
x5
Rangul matricii sistemului este 2 si pivoţii se află in poziţiile (1, 1), (2, 3). Deci un determinant
principal se obţine din elementele de intersecţie a liniilor 1,2 cu coloanele 1,3. Prin urmare
necunoscutele x1 şi x3 sunt necunoscute principale, iar x2 , x4 , x5 renotate respectiv, α, β, γ sunt
necunoscute secundare. Rezolvând ecuaţiile principale 2 şi 3:

x1 − α + 2β + γ = 0
x3 − β − 3γ = 0

Obţinem mulţimea soluţiilor de forma:


         
x1 α − 2β − γ 1 −2 −1
 x2   α   1   0   0 
         
 x3  =  β + 3γ  = α  0  +β  1  +γ  3 , α, β, γ ∈ R
         
 x4   β   0   1   0 
x5 γ 0 0 1
| {z } | {z } | {z }
u1 u2 u3

Deci orice soluţie se exprimă ca o combinaţie liniară a vectorilor soluţie u1 , u2 , u3 ( cei trei
vectori constituie un sistem de generatori pentru subspaţiul soluţiilor. Dacă cei trei vectori sunt
liniar independenţi, atunci ei formează o bază.
Dacă presupunem că αu1 + βu2 + γu3 = θ atunci din relaţia de mai sus citită de la dreapta
spre stânga rezultă că:    
α − 2β − γ 0

 α   0 
 


 β+γ  = 0 
 
 β   0 
γ 0
adică α = β = γ = 0 şi deci vectorii sunt liniar independenţi.
Oricare ar fi sistemul Ax = θ, A ∈ Km×n , reducând matricea A la forma scară redusă, şi
identificând necunoscutele principale şi secundare, se poate arăta ca mai sus că orice soluţie
se exprimă ca o combinaţie liniară a n − r vectori din Kn , unde r este numărul de pivoţi
(sau echivalent, rangul matricii), coeficienţii combinaţiei liniare fiind necunoscutele secundare
(α, β, γ, ı̂n exemplul de mai sus).
Pentru a evita rescrierea sistemului ce are matricea SA să analizăm pe exemplul de mai sus
cum se deduce din coloanele formei scară baza din spaţiul soluţiilor sistemului.
Observăm că rezolvând sistemul având matricea scara redusă, vectorii bazei de mai sus
u1 , u2 , u3 se deduc din coloanele formei scară astfel:
4.3. Codul Hamming de detectare şi corectare a erorilor 13

• se defineşte un tablou int princ[r] şi unul int sec[n-r]. princ[i] stochează
indicele celei de-ai i-a necunoscute principale, iar sec[i] stochează indicele celei de-a i-a
necunoscute secundare.
În cazul nostru princ[2]={1, 3}, iar sec[3]={2, 4, 5}.
Din faptul că soluţia generală a sistemului este de forma:

x 2 u 1 + x 4 u2 + x 5 u 3

unde x2 , x4 , x5 sunt necunoscutele secundare, atunci un vector uj = (a1 , a2 , a3 , a4 , an )T (n=5,


ı̂n cazul nostru) ce are ca şi coeficient necunoscuta secundară xk se defineşte parcurcând următoarele
etape:
• se setează uj pe vectorul nul: ai = 0, i = 1, n;
• se setează ak = 1;
• aprinc[i] = −sik , i = 1, r, unde sik este elementul din linia i coloana k a matricii formă
scară redusă.

4.3 Codul Hamming de detectare şi corectare a erorilor


Transmiterea informaţiei pe diverse canale de comunicaţie sub forma de blocuri de biţi este
supusă erorii datorită unor perturbări (numite generic, zgomot) ce pot apare ı̂n canal (mediul
prin care informaţia trece de la sursă spre receptor). Pentru a asigura integritatea datelor
recepţionate se impune detectarea şi corectarea erorilor. Cel mai simplu exemplu este verifi-
carea informaţiei ı̂nscrise pe un CD sau DVD. În locul comparării bit cu bit se practică divizarea
informaţiei binare ı̂n blocuri adiacente de 2k biţi care ı̂nainte de a fi transmişi sunt codificaţi, ı̂n
sensul că ı̂n locul unui şir de 2k biţi se transmite un şir de 2k + m biţi. Cei m biţi adădăugaţi
blocului iniţial se numesc biţi de verificare. Secvenţa de 2k + m biţi, recepţionată, este apoi
testată pentru a detecta eventualele erori şi a le corecta.
O modalitate de codificare, detectare şi corectare a erorii ı̂ntr-un bloc de biţi transmişi,
bazată pe tehnici de algebră liniară pe un spaţiu vectorial Zn2 /Z2 a fost inventată de Hamming.
Pentru a descrie modalitatea propusă de Hamming precizăm câteva particularităţi ale acestui
spaţiu vectorial:
• Zn2 conţine 2n vectori binari (vectorul nul şi 2n −1 vectori nenuli). De exemplu Z32 conţine
8 vectori binari
               
0 1 0 0 1 1 0 1
 0 , 0 , 1 , 0 , 1 , 0 , 1 , 1 
0 0 0 1 0 1 1 1

• În spaţiul vectorial Zn2 /Z2 suma (modulo 2) a unui vector cu el ı̂nsuşi este vectorul nul:
v + v = 0, ∀ v ∈ Zn2 . Cu alte cuvinte opusul unui vector este el ı̂nsuşi. De eemplu dacă
v = (1, 1, 0, 1, 0, 0, 1), atunci v + v = (0, 0, 0, 0, 0, 0, 0), deoarece 0 ⊕ 0 = 0 şi 1 ⊕ 1 = 0
(⊕ semnifică adunarea modulo 2).
Codul Hamming de tip (7,4)
14 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

Informaţia binară ce trebuie transmisă este divizată ı̂n blocuri de câte patru biţi. Înainte de
a transmite un bloc v = (b1 , b2 , b3 , b4 ) acesta este codificat, de un vector w din Z72 , adică de un
vector de 7 biţi. Cei trei biţi ce apar ı̂n plus se numesc biţi de verificare. Modul de asociere a
codului w, blocului reprezentat de v este următorul:
◮ Se constituie matricea binară H, de tip 3 × 7 (unde 3 este numărul biţilor de verificare)
ce are drept coloane vectorii nenuli din spaţiul Z32 . Plasarea acestor vectori ı̂n diferite coloane
conduce la coduri diferite. Fie de exemplu matricea:

c1 c2 c3 c4 c5 c6 c7
↓ ↓ ↓ ↓ ↓ ↓ ↓
0 0 0 1 1 1 1
H= 0 1 1 0 0 1 1 
1 0 1 0 1 0 1
◮ Observăm că fiecare coloană cj se obţine ca produsul:

cj = Hej , 1 , . . . , 0)T ∈ Z72


unde ej = (0, . . . , |{z} (4.24)
j

Mulţimea , Null(H), a soluţiilor sistemului liniar şi omogen:


 
x1

 x2 
  

 x3 
 0
H
 x4 = 0 


 x5 
 0
 x6 
x7
este un subspaţiu liniar al spaţiului vectorial Z72 . Deoarece matricea H are rangul 3, dimensiunea
spaţiului nul al lui H este 7−3 = 4. O bază ı̂n acest subspaţiu determinată conform algoritmului
din secţiunea anterioară, dar cu operaţii modulo 2, este formată din vectorii: u1 , u2 , u3 , u4 .
Matricea E = [u1 |u2 |u3 |u4 ], numită matrice codificare este:
 
1 1 0 1

 1 0 1 1 


 1 0 0 0 

E=
 0 1 1 1 


 0 1 0 0 

 0 0 1 0 
0 0 0 1

Dacă se doreşte transmiterea blocului de biţi v = (b1 , b2 , b3 , b4 )T printr-un canal de comunicaţie,


acesta se codifică ı̂n prealabil, prin ı̂nmulţire la dreapta cu matricea codificare. Vectorul w = Ev
este un vector pe 7 biţi. Deoarece avem:
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 15

   
b1 b1
 b2   b2 
w = Ev = E 
 b3  = [u1 |u2 |u3 |u4 ] 
   = b 1 u1 + b 2 u 2 + b 3 u 3 + b 4 u 4
b3 
b4 b4
rezultă că vectorul w, numit vector cod, este o combinaţie liniară a vectorilor din baza spaţiului
Null(H), a soluţiilor sistemului omogen de matrice H, cu alte cuvinte w este o soluţie a sis-
temului Hx = 0, adică Hw = 0.
◮ Vectorul cod w ∈ Z72 se transmite printr-un canal de comunicaţie si este receptat vec-
torul w′ ∈ Z72 . Orice vector cod receptat este testat de eroare ţinând seama că vectorii cod
transmişi corect sunt vectori din subspaţiul Null(H).
Pentru a identifica erorile să caracterizăm ı̂n prealabil vectorii din Null(H). În acest scop definim distanţa
Hamming ı̂ntre doi vectori binari w1 , w2 :
d(w1 , w2 )=numărul poziţiilor ı̂n care biţii din w1 şi w2 diferă.
De exemplu distanţa dintre w1 = (1, 1, 0, 1, 0, 0, 1)T şi w2 = (1, 0, 0, 1, 0, 1, 1)T este 2, pentru că diferă biţii
din poziţiile 2 şi 6.
Deoarece Null(H) este subspaţiu vectorial al lui Z72 , rezultă că dacă w1 , w2 ∈Null(H), atunci şi w = w1 −
w2 ∈Null(H). Deci distanţa Hamming dintre w1 , w2 este egală cu distanţa Hamming d(w1 −w2 , θ) dintre diferenţa
celor doi vectori şi vectorul nul. Cunoscând această proprietate se poate demonstra că distanţa dintre orice două
coduri w1 , w2 ∈Null(H) este mai mare sau egală cu 3. Pentru aceasta se arată că distanţa dintre w şi θ este mai
mare sau egală cu 3, d(w, θ) ≥ 3, oricare ar fi w ∈ Null(H).
Având această informaţie să ilustrăm cum poate acţiona codul Hamming dacă distanţa dintre vectorul transmis,
w, şi vectorul recepţionat, w′ , este 1,2 sau mai mare sau egală cu 3 (cu alte cuvinte ı̂n cursul transmiterii s-a eronat
un bit, doi biţi sau mai mult de doi).
Deoarece vectorul transmis w ∈Null(H), rezultă că Hw = 0 sau echivalent, dacă w = (d1 , d2 , . . . , d7 )T ,
atunci:

Hw = d1 c1 + d2 c2 + · · · + dk ck + · · · + d7 c7
unde ı̂nmulţirea şi adunarea se efectuează modulo 2, iar ck sunt coloanele matricii H. Presupunem că ı̂n cursul
transmiterii este eronat bitul dk , adică este recepţionat ca dk + 1 (dk = 0 ⇒ dk + 1 = 1, iar dk = 1 ⇒ dk + 1 =
0). Fie w′ = (d1 , d2 , . . . , dk + 1, . . . d7 )T . Atunci

Hw′ = d1 c1 + · · · (dk + 1)ck + · · · + d7 c7 = d1 c1 + · · · + dk ck + · · · d7 c7 +1ck =


| {z }
=0,pt că Hw=0
= (−1modulo 2)ck = ck

Prin urmare ı̂n cazul unei singure erori codul Hamming este capabil ca ı̂n etapa de testare (calcul al produsului
Hw′ ) să identifice exact poziţia erorii, şi anume este poziţia k indicată de indicele coloanei ck = Hw′ .
În mod analog, dacă sunt eronaţi doi biţi, de exemplu din poziţiile j, k, j 6= k atunci:

Hw′ = cj + ck

Deoarece cj , ck sunt vectori nenuli din Z32 , suma lor este tot un vector nenul din Z32 , adică o coloană a matricii
Hamming, H.
Astfel testarea unui cod recepţionat w′ constă ı̂n a calcula produsul Hw′ :
 Dacă un singur bit a fost eronat prin transmitere, atunci aşa cum arătat mai sus Hw′ =
cj , unde j este poziţia bitului eronat. Să arătăm că ı̂n acest caz eroarea de un singur bit poate
16 Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007

fi corectată. Şi anume dacă Hw′ = cj , atunci adunând la vectorul cod recepţionat vectorul
ej ∈ Z72 (adică adunând un 1 ı̂n poziţia celui de-al j-lea bit al lui w′ )avem
H(w + ej ) = Hw′ + Hej
Deoarece Hw′ = cj şi conform relaţiei (4.24) avem Hej = cj rezultă că H(w′ + ej ) =
cj + cj = 0 (deoarece ı̂n Zn2 suma unui vector cu el ı̂nsuşi este 0). Prin urmare w′ + ej este
soluţie a sistemului liniar şi omogen de matrice H, deci un cod admisibil, care corectează bitul
din poziţia j a codului w′ , eronat.
. Dacă ı̂n vectorul w′ există 2 biţi eronaţi, ı̂n poziţiile j, k, j 6= k, atunci Hw′ =
cj + ck 6= 0. Prin această ı̂nmulţire se deduce că vectorul recepţionat w′ este eronat dar nu poate
fi corectat corespunzător, deoarece dacă cj + ck = cℓ , atunci operaţia w′ + eℓ corectează bitul
din poziţia ℓ, nu din poziţia j, sau k. În concluzie codul Hamming, pe lângă codificare permite
şi corectarea unui singur bit transmis eronat. Dacă ı̂nsă w′ ar conţine doi biţi eronaţi, aceeaşi
metodă aplicată la corectarea unui singur bit conduce la o corectare eronată.
În concluzie codul Hamming poate detecta si corecta o singură eroare, dar nu poate face
distinţie ı̂ntre un cod cu o singură eroare sau cu două erori.
Un cod Hamming general este definit de o pereche (2k + m, 2k ), unde 2k este lungimea
unui block de biţi ce se codifică, iar 2k + m este lungimea vectorului cod obţinut după codifi-
carea blocului (cu alte cuvinte se folosesc m biţi de verificare). Codul Hamming de tip (7, 4)
corespunde cazului k = 2, m = 3. De interes particular pentru sistemele de memorie ale cal-
culatoarelor este codul Hamming de tip (72, 64) = (26 + 8, 26 ), numit SECDED (Single Error
Correction, Double Error Detection).
Decodificarea codurilor receptionate şi corectate se va discuta după ce parcurgem partea
teoretică pe care se bazează.
Exemplul 11. Pentru a evidenţia capabilitatea codului Hamming de tip (7, 4) ı̂n cazul ı̂n care ı̂n
cursul transmiterii se produc una, două, trei sau mai multe erori, considerăm un bloc de 4 biţi
reprezentat de vectorul v = (0, 1, 1, 0)T . După codificare obţinem vectorul
 
1
 1 
 
 0 
 
w = Ev =   0 

 1 
 
 1 
0
a) Presupunem că s-a recepţionat  
1

 1 


 1 


w =
 0 


 1 

 1 
0
Cursul 4, Algebră liniară
c E. Petrişor, octombrie 2007 17

care diferă de w ı̂n poziţia 3, adică distanţa Hamming ı̂ntre cele două coduri este 1. Calculând
Hw′ obţinem vectorul:  
1
Hw′ =  1  6= 0
0
Deci w′ este identificat ca fiind eronat. Deoarece Hw′ = c3 (coloana a 3-a din matricea H,)
rezulta că prin adunarea w′ + e3 este corectat codul recepţionat, ı̂n mod corespunzător.
b) Dacă ı̂nsă se recepţionează  
1
 1 
 
 1 

 
w =  0 

 0 
 
 1 
0
care diferă de w prin biţii din poziţiile 3 şi 5, atunci calculând Hw′ obţinem c6 . Cum ”sistemul”
de testare ”nu ştie” care biţi au fost eronaţi, ı̂n acest caz se identifică doar că există eroare, dar
corectarea w′ + e6 este nepotrivită, deoarece nu bitul 6 a fost eronat. Deci codul Hamming
identifică erorile cauzate de modificarea a doi biţi, dar nu le corectează.
c) Dacă prin canalul de comunicaţie au fost eronaţi biţii din poziţiile 3,5,6, atunci se recepţionează:
 
1
 1 
 
 1 

 
w =  0 

 0 
 
 0 
0

care este prima coloană din matricea E, adică un vector din Null(H) şi la testarea Hw′ se obţine
θ, deci codul recepţionat, w′ , este interpretat corect, deşi ı̂n realitate este eronat.
d) Dacă au fost eronaţi biţii din poziţiile 3, 5,7, se recepţionează
 
1
 1 
 
 1 

 
w =  0 

 0 
 
 1 
1

Cum Hw′ = c1 sistemul identifică că este eronat codul recepţionat, dar nu ı̂l corectează ”corect”
prin operaţia H(w′ + e1 ).

S-ar putea să vă placă și

  • Curs 6 Alg Lin CTI
    Curs 6 Alg Lin CTI
    Document14 pagini
    Curs 6 Alg Lin CTI
    adella4ever
    Încă nu există evaluări
  • Curs8AlgLinCTI Corectat
    Curs8AlgLinCTI Corectat
    Document16 pagini
    Curs8AlgLinCTI Corectat
    adella4ever
    Încă nu există evaluări
  • Curs 5 Alg Lin CTI
    Curs 5 Alg Lin CTI
    Document17 pagini
    Curs 5 Alg Lin CTI
    adella4ever
    Încă nu există evaluări
  • Curs 3 Alg Lin CTI
    Curs 3 Alg Lin CTI
    Document15 pagini
    Curs 3 Alg Lin CTI
    adella4ever
    Încă nu există evaluări
  • Curs 3 Alg Lin CTI
    Curs 3 Alg Lin CTI
    Document15 pagini
    Curs 3 Alg Lin CTI
    adella4ever
    Încă nu există evaluări
  • Curs2AlgLinCTI v2
    Curs2AlgLinCTI v2
    Document16 pagini
    Curs2AlgLinCTI v2
    adella4ever
    Încă nu există evaluări
  • Curs 1 Alg Lin CTI
    Curs 1 Alg Lin CTI
    Document16 pagini
    Curs 1 Alg Lin CTI
    adella4ever
    Încă nu există evaluări
  • De la Everand
    Încă nu există evaluări
  • De la Everand
    Încă nu există evaluări
  • De la Everand
    Încă nu există evaluări