Vés al contingut

Mètode de reducció de Gauss

De la Viquipèdia, l'enciclopèdia lliure
(S'ha redirigit des de: Mètode del pivot)

El mètode de reducció de Gauss és un procediment sistemàtic de substitució matemàtica de r vectors d'una certa base de E pels r vectors de 𝒞 independents, per tal d'aconseguir una nova base de E i les expressions dels k−r vectors que queden a 𝒞 en aquesta nova base. El fet que tal substitució sigui possible en tots els casos està garantida pel teorema de substitució de Steinitz.

Sigui:

𝒞={u1,u2,…,uk},j>k, j≠r

un conjunt de k vectors no nuls d'un espai vectorial E de dimensió n. Aquest conjunt conté un subconjunt maximal de r (0<r≤k) vectors independents.

Les transformacions elementals i la seva justificació

[modifica]

Sigui

ℬ={e1,…,en},j>k, j≠r

una base de E i siguin

u1=λ11e1+λ12e2+⋯+λ1nenu2=λ21e1+λ22e2+⋯+λ2nen⋮⋮uk=λk1e1+λk2e2+⋯+λknen

Les expressions dels vectors del conjunt 𝒞 en aquesta base. Hom sol disposar les components d'aquests vectors en una matriu de k columnes, en què cada columna conté les components d'un dels vectors:

(λ11λ21…λk1λ12λ22…λk2⋮⋮⋮⋮⋮⋮λ1nλ2n…λkn)

Naturalment, permutar dues columnes d'aquesta matriu és permutar els corresponents vectors del conjunt 𝒞, mentre que permutar-ne dues files correspon a permutar els corresponents vectors de la base ℬ. A part d'aquestes dues transformacions trivials, el mètode de reducció consisteix en l'aplicació sistemàtica i ordenada d'aquestes altres dues transformacions, dites transformacions elementals:

Normalització d'una fila

[modifica]

Considerem el vector ui, pel qual la component λij, que és a la fila j i a la columna i, no és nul·la. La fila j, que conté totes les components dels vectors corresponents al vector ej de la base, s'anomena la fila pivot després de dividir tots els seus elements per λij:

(λ11λ21…λi−11λi1λi+11…λk1λ12λ22…λi−12λi2λi+12…λk2⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮λ1j−1λ2j−1…λi−1j−1λij−1λi+1j−1…λkj−1λ1jλijλ2jλij…λi−1jλijλijλijλi+1jλij…λkjλijλ1j+1λ2j+1…λi−1j+1λij+1λi+1j+1…λkj+1⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮λ1nλ2n…λi−1nλinλi+1n…λkn)=(λ11λ21…λi−11λi1λi+11…λk1λ12λ22…λi−12λi2λi+12…λk2⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮λ1j−1λ2j−1…λi−1j−1λij−1λi+1j−1…λkj−1μ1jμ2j…μi−1j1μi+1j…μkjλ1j+1λ2j+1…λi−1j+1λij+1λi+1j+1…λkj+1⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮λ1nλ2n…λi−1nλinλi+1n…λkn)

Aleshores, els vectors de 𝒞, és a dir, les columnes de la matriu, queden expressats en la nova base

ℬij={e1,…,ej−1,λijej,ej+1,…,en}

que és la base

ℬij=ℬ∖{ej}∪{λijej}

resultat de substituir el vector ej pel vector λijej.

Reducció de les altres files amb la fila pivot

[modifica]

Es tracta ara de substituir cadascuna de les files per la suma de la fila pivot multiplicada per l'oposat de l'element de la fila que s'està substituint que és a la columna on hi ha l'1 obtingut en el pas anterior amb la fila que s'està substituint: si la fila pivot era la fila j i volem reduir la fila s (s≠j, naturalment!) les operacions a fer sobre aquesta fila s són:

λ1s−λisμ1jλ2s−λisμ2j…λks−λisμkj

i, just en la columna i, el resultat és un zero:

λis−λisμij=λis−λis⋅1=0

perquè, a la fila i, la fila pivot, μij=λijλij=1.

Després de fer això amb les n−1 files que no són la fila pivot, la matriu queda amb aquest aspecte:

(μ11μ21…μi−110μi+11…μk1μ12μ22…μi−120μi+12…μk2⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮μ1j−1μ2j−1…μi−1j−10μi+1j−1…μkj−1μ1jμ2j…μi−1j1μi+1j…μkjμ1j+1μ2j+1…μi−1j+10μi+1j+1…μkj+1⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮μ1nμ2n…μi−1n0μi+1n…μkn)

Si s'analitza quin vector hi ha ara a una columna qualsevol: la columna t:

μt1e1+μt2e2+⋯+μtj−1ej−1+μtjui+μtj+1ej+1+⋯+μtnen==(λt1−λi1μtj)e1+(λt2−λi2μtj)e2+⋯+(λtj−1−λij−1μtj)ej−1++μtjui+(λtj+1−λij+1μtj)ej+1+⋯+(λtn−λinμtj)en==λt1e1+λt2e2+⋯+λtj−1ej−1+λtj+1ej+1+⋯+λtnen++μtjui−λi1μtje1−λi2μtje2−⋯−λij−1μtjej−1−λij+1μtjej+1−⋯−λinμtjen

però, com que,

ui=λi1e1+λi2e2+⋯+λij−1ej−1+λijej+λij+1ej+1+⋯+λinen

resulta

μtjui−λi1μtje1−λi2μtje2−⋯−λij−1μtjej−1−λij+1μtjej+1−⋯−λinμtjen==μtjλijej=λtjλijλijej=λtjej

i, finalment,

μt1e1+μt2e2+⋯+μtj−1ej−1+μtjui+μtj+1ej+1+⋯+μtnen==λt1e1+λt2e2+⋯+λtj−1ej−1+λtjej+λtj+1ej+1+⋯+λtnen=ut

és a dir, el mateix vector que ja hi havia en aquesta columna, però ara expressat en la base

ℬℛij={e1,…,ej−1,ui,ej+1,…,en}

que és la base

ℬℛij=ℬ∖{ej}∪{ui}

resultat de substituir el vector ej pel vector ui.

Així, doncs, escollir una fila, j, normalitzar-la tot dividint-la per l'element (que ha de ser no nul) de la seva columna i per usar-la com a fila pivot i després reduir les altres files té com a resultat que tots els vectors (les columnes) quedin expressats en una nova base, obtinguda de l'antiga per substitució del seu vector j-èsim pel vector representat a la columna i.

Mètode de Gauss.

Exemple pràctic

[modifica]

A la pràctica no cal amoinar-se per quins canvis de base s'estan produint. Només cal saber que, després del procés complet, tindrem ben distingits els r vectors linealment independents del conjunt 𝒞 i l'expressió dels k−r que queden com a combinació lineal dels r vectors independents. Vegem-ne un exemple:

Considerem els cinc vectors

u1=(5321),u2=(−1413),u3=(1123−1),u4=(62−1−2),u5=(3867)

que disposarem en la matriu de quatre files (la dimensió de l'espai al qual pertanyen) i cinc columnes (el nombre de vectors que hi ha):

(5−1116334228213−1613−1−27)

Comencem per la primera columna (pel vector u1) i podem escollir per normalitzar i ser fila pivot qualsevol de les files en les que en la primera columna no hi hagi un zero. En el nostre cas, podem escollir-ne qualsevol, però agafarem la quarta, perquè l'element de la fila 4 i columna 1 ja val 1 i no cal normalitzar.

Com que estem en la primera de les reduccions, posem aquesta fila, la fila pivot, com a primera fila, permutant-la amb la primera:

(13−1−2734228213−165−11163)

i ara reduim les altres tres files. Per reduir la segona, cal sumar-li la fila pivot multiplicada per −3, que és l'oposat de l'element d'aquesta segona fila a la columna 1:

+34228−3⋅1−3⋅3−3⋅(−1)−3⋅(−2)−3⋅70−558−13

Per reduir la tercera, cal sumar-li la fila pivot multiplicada per −2, que és l'oposat de l'element d'aquesta tercera fila a la columna 1:

+213−16−2⋅1−2⋅3−2⋅(−1)−2⋅(−2)−2⋅70−553−8

I, per reduir la quarta, cal sumar-li la fila pivot multiplicada per −5, que és l'oposat de l'element d'aquesta quarta fila a la columna 1:

+5−11163−5⋅1−5⋅3−5⋅(−1)−5⋅(−2)−5⋅70−161616−32

i la matriu, després d'aquesta primera reducció, queda

(13−1−270−558−130−553−80−161616−32)

Ara anem per la segona reducció. Prenem la segona columna (la del vector u2) i podem escollir per normalitzar i ser fila pivot qualsevol de les tres files que encara no han actuat com a pivot (això n'exclou la primera) en les que en la segona columna no hi hagi un zero. En el nostre cas, podem escollir-ne qualsevol, però agafarem la quarta, perquè la normalització, que és dividir-la per −16 serà senzilla.

Com que estem en la segona de les reduccions, posem aquesta fila, la fila pivot, ja normalitzada, com a segona fila, permutant-la amb la segona:

(13−1−2701−1−120−553−80−558−13)

i ara reduim les altres tres. Per reduir la primera fila, cal sumar-li la fila pivot multiplicada per −3, que és l'oposat de l'element d'aquesta primera fila a la columna 2:

+13−1−27−3⋅0−3⋅1−3⋅(−1)−3⋅(−1)−3⋅210211

Per reduir la tercera, cal sumar-li la fila pivot multiplicada per 5, que és l'oposat de l'element d'aquesta tercera fila a la columna 2:

+0−553−85⋅05⋅15⋅(−1)5⋅(−1)5⋅2000−22

I, per reduir la quarta, cal sumar-li la fila pivot multiplicada per 5, que és l'oposat de l'element d'aquesta quarta fila a la columna 2:

+0−558−135⋅05⋅15⋅(−1)5⋅(−1)5⋅20003−3

i, acabada la segona reducció, la matriu queda

(1021101−1−12000−220003−3)

Comencem la tercera reducció: ens fixem en la tercera columna (la del vector u3) i podem escollir per normalitzar i ser fila pivot qualsevol de les dues files que encara no han actuat com a pivot (això n'exclou la primera i la segona) en les que en la tercera columna no hi hagi un zero. Però no podem fer-ho, perquè en aquesta tercera columna, després de la segona fila ja tot són zeros. Aleshores, cal passar a la quarta columna i escollir una fila per a esdevenir el nou pivot. Com que l'element de la quarta columna (la del vector u4) i fila tercera no és zero, podem prendre aquesta tercera fila com a pivot. La normalitzem i, com que estem a la tercera reducció i ja està al tercer lloc no cal fer permutacions de files ara. La matriu ha quedat així:

(1021101−1−120001−10003−3)

i, després de, amb el mateix mètode que les reduccions anteriors, reduir les altres tres files, obtenim

(1020201−1010001−100000)

Ara ja no hi ha cas per a una quarta reducció, perquè a totes les columnes que queden, després de la tercera fila ja tot són zeros: el procés, doncs, ha acabat.

El que n'hem obtingut és l'expressió dels vectors u1, u2, u3, u4 i u5 en una nova base, i és aquesta:

u1=(1000),u2=(0100),u3=(2−100),u4=(0010),u5=(21−10)

on ara és clar que els vectors u1, u2 i u4 són linealment independents, i que

u3=2u1−u2,u5=2u1+u2−u4

l'objectiu a aconseguir.

Usos principals del mètode

[modifica]

A part la determinació de quins vectors d'un conjunt són linealment independents i com s'expressen els altres en funció d'aquests que ja s'ha descrit, el mètode de reducció de Gauss es fa servir per a:

  • Determinar l'existència i unicitat de la solució d'un sistema d'equacions.[1]
  • Càlcul del rang d'un conjunt de vectors o d'una matriu.

Variants: Gauss vs. Gauss-Jordan

[modifica]

Si només cal calcular el rang d'un conjunt de vectors o d'una matriu, aleshores es pot seguir el procés tot ometent la reducció de les files que són per damunt de la fila pivot. El resultat és, aleshores, una matriu triangular superior. Per exemple, la reducció de la matriu

(5−1116334228213−1613−1−27)

de l'exemple feta així donaria com a matriu reduïda

(13−1−2701−1−120001−100000)

en la qual, segueix ben manifesta la independència lineal dels vectors u1, u2 i u4, però les relacions

u3=2u1−u2,u5=2u1+u2−u4

no són evidents a cop d'ull. El procés, fet així, en els països de parla anglesa, se sol conèixer com a Gauss elimination, mentre que el procediment complet, en aquests ambients, és Gauss-Jordan elimination.

Implementació en codi Java

[modifica]

La classe següent implementa el mètode de reducció de Gauss per a matrius de nombres reals, quadrades o no. Els comentaris n'il·lustren la funcionalitat.

Implementacions externes

[modifica]

Referències

[modifica]
  1. ↑ Greenberg, Michael D. Advanced Engineering Mathematics (en anglès). 2a edició. Upper Saddle River, Nova Jersey: Prentice Hall, 1998, p. 401. ISBN 0-13-321431-1.

Enllaços externs

[modifica]