Upload
dobre-daniel
View
232
Download
0
Embed Size (px)
Citation preview
8/19/2019 04 capitolul IV.pdf
1/65
Petru Florin Gavril Capitolul IV - Matrice
101
CAPITOLUL IV - MATRICE
IV.1. Matricea în algebră
IV.1.1. Generalităţi. Notaţii şi definiţii
Definiţia 4.1.1
O ecua ţie liniară cu n necunoscute x 1 , x 2 , ...,x n este o ecuaţie de forma
a1 x1+a2 x2+......+an xn=b (1)
unde ai(i=1,2,...,n) şi b sunt numere complexe.
Vom considera un sistem de m astfel de ecuaţii cu n necunoscute:
mnmnmm
nn
nn
b xa xa xa
b xa xa xa
b xa xa xa
...
.............................................
...
...
2211
22222121
11212111
(2)
unde aij,bi(i=1,2,...,m,j=1,2,…,n) sunt numere complexe. Numerele aij poartă numele de
coeficienţi ai necunoscutelor, iar numerele bi se numesc termeni liberi.
A rezolva sistemul (2) înseamnă a determina toate sistemele ordonate de numere
(α1, α2, ... αn) astfel încât înlocuim în sistem necunoscutele x1, x2, ...,xn respectiv cu
numerele α1, α2, ... αn fiecare dintre ecuaţiile sistemului este verificată. Se ştie că un astfel
de sistem pentru cazul n=m=2 sau n=m=3 se pot rezolva folosind metoda substituţiei sau a
reducerii. Cum practica impune rezolvarea unor sisteme de forma (2) care au un număr
mare de ecuaţii şi necunoscute, există metode generale de rezolvare prin operaţii aplicate
coeficienţilor necunoscutelor precum şi termenilor liberi ai sistemului. Acest lucru impune
un studiu mai atent al sistemelor de ecuaţii liniare, studiu în care un rol important îl au
următoarele două matrice:
A =
mnmm
n
n
aaa
aaa
aaa
...
............
...
...
21
22221
11211
respectiv A =
Prima matrice se numeşte matricea sistemului (2) , iar a doua matrice este cunoscută sub
numele de matricea extinsă a sistemului (2) . În capitolul următor vom vedea clar
importanţa acestor două matrice în studiul sistemelor de ecuaţii liniare.
mmnmm
n
n
baaa
baaa
baaa
...
...............
...
...
21
222221
111211
8/19/2019 04 capitolul IV.pdf
2/65
Petru Florin Gavril Capitolul IV - Matrice
102
Noţiunea de matrice:
Fie M = 1, 2, … m, N = 1, 2, … n mulţimea primelor m respectiv n numere naturale
nenule. Vom nota cu C, aşa cum am obişnuit, mulţimea numerelor complexe şi fie E C.
Definiţia 4.1.2 Numim matrice de tipul (m, n) cu elemente din E o funcţie A : M N → E, astfel
încât perechii ordonate (i, j) îi corespunde elementul aij E,:
A(i, j) = aij E, () (i, j) M N.
Reprezentarea în mod natural a unei matrice este un tablou bidimensional cu m linii şi n
coloane se face astfel:
A =
mnmm
n
n
aaa
aaa
aaa
...
............
...
...
21
22221
11211
(3)
Datorită notaţiei (3), în loc de matrice de tipul (m, n) se mai spune matrice cu m linii şi n
coloane. Numerele aij se numesc elementele matricii A; i reprezintă linia, iar j reprezintă
coloana în care este situat elementul aij al tabloului A.
De multe ori matricea A se mai notează şi astfel:
A =n j
miija
1
1 sau A =n j
miija,...1
,...1
(3’)
Restricţia funcţiei A la mulţimea elementelor de forma (i, 1), (i, 2), … (i, n) defineşte linia
de rang i a matricei. De fapt, linia de rang i a matricei este determinată de şirul de
elemente ai1, ai2, … ain, i 1, 2, … m.
În mod analog, restricţia funcţiei A la mulţimea elementelor de forma (1, j), (2, j), … (n, j),
unde j 1, 2, … n, defineşte coloana de rang j a matricei A.
O matrice de tipul (m, n) are m*n elemente.
Noţiunea de matrice a fost introdusă în studiul sistemelor de ecuaţii liniare de cătrematematicianul englez Arthur Caylay (1821-1895) în anul 1858. El a folosit notaţia A =
n jmiija
11 , notaţia (3’) fiind introdusă de M. Bocher în anul 1919.
Noţiunea de matrice s-a introdus pentru „ algebrizarea noţiunii de reprezentare geometrică”
– unei transformări geometrice asociindu-i-se o matrice pentru a reduce studiul
transformărilor geometrice la studiul matricelor.
Matricele pot fi gândite şi ca o generalizare a vectorilor – vectorii sunt matrice cu o singură
linie sau cu o singură coloană.
8/19/2019 04 capitolul IV.pdf
3/65
Petru Florin Gavril Capitolul IV - Matrice
103
Cazuri particulare:
1) Dacă n = 1, matricea de tipul (m, 1) se numeşte matrice coloană şi este de
forma:
A =
1
31
21
11
ma
a
a
a
.
2) Dacă m = 1, matricea de tipul (1, n) se numeşte matrice linie şi este de forma:
A = (a11, a12, a13, … a1n)
3) Dacă m = n, matricea de tipul (m, n) se numeşte matrice pătratică de ordinul n
şi este de forma:
A =
nnnn
n
n
aaa
aaa
aaa
...
............
...
...
21
22221
11211
.
Pentru o matrice pătratică de ordin n, sistemul ordonat de elemente
(a11, a22, a33, … ann) se numeşte diagonala principală a matricei A, iar sistemul ordonat de
elemente (a1n, a2n-1, a3n-2, … an1) se numeşte diagonala secundară a matricei A.Suma de forma a11 + a22 + a33 + … + ann se numeşte urma matricei A şi se
notează:
Tr(A) =
n
i
iia1
.
Vom nota cu M n(C) mulţimea tuturor matricelor pătratice de ordin n cu elemente din C şi
cu M mn(C) mulţimea tuturor matricelor de tip (m, n) cu elemente din C. În mulţimea M
n(C) există şi următoarele cazuri particulare de matrice: 1) matricea unitate de ordin n de forma:
In =
1...000
...............
0...010
0...001
cu a11 = 1, i = 1, … n şi aij =0, () i j.
Se mai notează astfel:
In = (ij) n ji ,1 , unde ij este simbolul lui Kronecker, definit astfel
8/19/2019 04 capitolul IV.pdf
4/65
Petru Florin Gavril Capitolul IV - Matrice
104
ij =
jidaca
jidaca
0
1.
2) matricea diagonală de ordin n de forma:
A =
nna
aa
...000
...............
0...000...00
22
11
= (aij∙ij) n ji ,1 .
3) matrice triung hiulară de ordin n care poate fi de forma:
A1 =
nnnnn aaaa
aa
a
...
...............
0...0
0...00
321
2221
11
sau A2 =
nn
n
n
a
aaa
aaaa
...000
...............
...0
...
22322
1131211
.
Este matricea în care aij = 0 pentru i j, sau pentru i j.
A1 se numeşte matrice triunghiulară inferior, iar A2 se numeşte matrice
triunghiulară superior
4) matricea scalară de forma:
A =
...000
...............
0...00
0...00
, unde α C.
5) matricea nulă este matricea în care toate elementele sunt egale cu 0; este de
forma:
0n =
0...000
...............
0...000
0...000
În mulţimea M mn(C) distingem câteva submulţimi importante şi anume:
M mn( ) care reprezintă mulţimea matricelor pătratice de tipul (m, n) cu elemente numere
reale, M mn(Q) care reprezintă mulţimea matricelor pătratice de tipul (m, n) cu elemente
numere raţionale, M mn(Z) care reprezintă mulţimea matricelor pă tratice de tipul (m, n) cu
elemente numere întregi.
Este clar că avem incluziunile:
M mn(Z) M mn(Q) M mn( ) M mn(C).
8/19/2019 04 capitolul IV.pdf
5/65
Petru Florin Gavril Capitolul IV - Matrice
105
Elementele mulţimii M mn(C) se notează cu litere mari din alfabetul latin: A, B, C, … sau
A’, B’, C’, … .
Egalitatea matricelor
Fie A şi B M mn(C) două matrice. Cum A şi B sunt funcţii A, B : M N → C, spunemcă matricele A şi B sunt egale dacă şi numai dacă sunt egale ca funcţii.
Deci, A = B () i M, j N, A(i, j) = B(i, j).
Folosind notaţia (3) corespunzătoare unei matrice şi presupunând că:
A =
mnmm
n
n
aaa
aaa
aaa
...
............
...
...
21
22221
11211
şi B =
mnmm
n
n
bbb
bbb
bbb
...
............
...
...
21
22221
11211
Atunci A = B aij = bij, () i M, j N.
IV.1.2. Operaţii cu matrice
IV.1.2.1 Adunarea matricelor
Definiţia 4.1.3
Fie A, B M m n( C ), A =n jmiija
11 , B =
n jmiijb
11 . Definim matricea
C =n jmiijc 1
1 astfel:
cij = aij + bij , () i = m,1 , j = n,1 .
Matricea C se numeşte suma matricelor A şi B şi se notează C = A + B.
Definiţia 4.1.4
Operaţia internă pe M m n( C ), prin care oricăror două matrice A, B se asociază
suma lor C, se numeşte adunarea matricelor.
Observaţie: Are sens să vorbim de adunarea matricelor doar dacă ele sunt de acelaşi tip.
Proprietăţile adunării matricelor:
1) Comutativitatea: ()A, B M mn(C), A + B = B + A.
2) Asociativitatea: ()A, B, C M mn(C), (A + B) + C = A + (B + C).
Demonstraţia decurge din asociativitatea numerelor complexe.
3) Element neutru: matricea nulă (cu toate elementele nule) are rol de element
neutru la adunarea matricelor, adică: ()A M mn(C), A + Omn = Omn + A.
8/19/2019 04 capitolul IV.pdf
6/65
Petru Florin Gavril Capitolul IV - Matrice
106
4) Matricea opusă: ()A M mn(C), () – A M mn(C), astfel încât
A + (-A) = (-A) + A = Omn
Observaţii:
1) Proprietăţile de mai sus arată că mulţimea M mn(C) are o structură de grupabelian.
2) Odată cu adunarea, se defineşte şi operaţia de scădere a matricelor. Prin
diferenţa A-B se înţelege matricea A+(-B).
3) Ecuaţia matriceală B + X = A, unde A, B M mn(C) are drept soluţie unică
matricea X = A-B, cu X M mn(C).
IV.1.2.2. Înmulţirea matricelor cu scalari din corpul K
Definiţia 4.1.5Se numeşte produs dintre numărul λ K şi matricea A =
n jmiija
11 M m n( K ),
matricea B =n jmiijb
11 M m n( K ), notată B = λA, unde b ij= λaij.
Deci, înmulţirea cu scalari din corpul K a matricelor din M mn(K ) este o operaţie
externă, care asociază fiecărei perechi (λ, A) K M mn(K ) o matrice λA M mn(K ).
Observaţie:
Înmulţirea cu scalari din corpul K se poate defini pentru orice matrice, adică esteo operaţie peste tot definită pe M (K ), unde am notat cu M (K ) mulţimea tuturor matricelor
cu elemente din corpul K.
Operaţia astfel definită are următoarele
Proprietăţi:
1) 1∙A = A, 1 K este elementul unitate din K.
2) λ∙(∙A) = (λ∙)∙A, unde λ, K, A M (K ).
3) λ∙(A + B) = λ∙A + λ∙B, unde λ K, A, B M (K ).4) (λ + )∙A = λ∙A + ∙A, unde λ, K, A M (K ).
Se constată deci că operaţiile de adunare şi înmulţire a matricelor cu scalari din
corpul K determină pe M mn(K ) o structură de spaţiu liniar peste corpul K.
IV.1.2.3. Înmulţirea matricelor
Definiţia 4.1.6
Fie A =n jmiija
11 o matrice de tip (m, n) şi B =
p jniijb
11 o matrice de tip (n, p). Prin
produsul matricelor A şi B, notat AB se înţelege o nouă matrice C= p jmiijc
11 de tipul (m, p)
8/19/2019 04 capitolul IV.pdf
7/65
Petru Florin Gavril Capitolul IV - Matrice
107
în care orice element cij situat la intersecţia liniei „i” cu coloana „j” este egal cu suma
produselor elementelor din linia „i” a matricei A cu elementele din coloana „j” a matricei
B, efectuată după regula următoare.
cij = ai1b1j + ai2b2j + … + ainbnj = kjn
k
ik ba1 , ( ) i= m,1 , j= n,1 (1)
Proprietăţi:
1) Distributivitatea faţă de adunare
Dacă A M mn(K ), iar B1, B2 M n p(K ), atunci are loc relaţia:
A(B1 + B2) = A B1 + AB2 (2)
Dacă A1, A2 M mn(K ), iar B M n p(K ), atunci are loc relaţia:
(A1 + A2)B = A1B + A2B (3)
2) Asociativitatea
() A M mn(K ), B M n p(K ) şi C M pq(K ), are loc egalitatea:
(AB)C = A(BC) (4)
3) () A M mn(K ), au loc relaţiile:
ImA = A (5)
AIn = A (6)
unde Im este matricea unitate de ordin m, iar I n matricea unitate de ordin n.
4) () A M mn(K ), au loc relaţiile:
O pm ∙ A = O pn (7)
A ∙ Onp = Omp (8)
unde O pm , O pn , Onp , Omp sunt matrice nule.
5) Înmulţirea matricelor, în general, nu este comutativă
Definiţia 4.1.7
Dacă A ∙B = B ∙A, atunci matricele A şi B se numesc permutabile.
Observaţii:
1) Matricea nulă On şi matricea unitate In de ordin n sunt permutabile cu orice
matrice de acelaşi ordin, adică au loc relaţiile următoare:
A ∙ In = In ∙ A = A (10)
A ∙ On = On ∙ A = On (11)
() A M nn(K ).
8/19/2019 04 capitolul IV.pdf
8/65
8/19/2019 04 capitolul IV.pdf
9/65
Petru Florin Gavril Capitolul IV - Matrice
109
Propoziţia 4.1.1
Mulţimea matricelor simetrice de ordin n formează un subspaţiu liniar al
spaţiului liniar M n( K ).
Observaţie:
Produsul a două matrice simetrice nu este, în general, o matrice simetrică.
Definiţia 4.1.10
O matrice A se numeşte antisimetrică dacă satisface condiţia:t A = - A.
Observaţie:
Într -o matrice antisimetrică, elementele situate simetric în raport cu diagonala
principală sunt opuse, iar elementele diagonalei principale sunt nule, adică:
aij = a ji , () i, j = 1, 2, … n, i j
aii = 0, () i = 1, 2, … n.
Propoziţia 4.1.2
Mulţimea matricelor antisimetrice de ordin n formează un subspaţiu liniar al lui
M n( K ).
Propoziţia 4.1.3
Produsul a două matrice antisimetrice de ordin n, permutabile între ele, este o
matrice simetrică de ordin n.
Definiţia 4.1.11
O matrice A M n( ) se numeşte ortogonală dacă şi numai dacă A∙t A = I n , unde
I n este matricea unitate de ordin n.
Definiţia 4.1.12
O matrice A M n( C )este cu elemente pur imaginare dacă aij=
ija , ( )i, j= n,1
unde
ija este conjugatul numărului complex a ij.
Definiţia 4.1.13
O matrice A M n( C ) se numeşte hermitică dacă A =t ( A ).
Definiţia 4.1.14
O matrice A M n( C ) se numeşte antihermitică dacă A = -t ( A ).
Definiţia 4.1.15
O matrice A M n( C ) se numeşte unitară dacăt ( A )∙A = A ∙ t ( A ) = I n.
8/19/2019 04 capitolul IV.pdf
10/65
Petru Florin Gavril Capitolul IV - Matrice
110
IV.1.4. Permutările unei mulţimi finite. Determinanţi.
Permutările unei mulţimi
Definiţia 4.1.16
Să notăm cu A mulţimea primelor n numere naturale, adică A = 1, 2, …, n.O funcţie bijectivă σ : A A se numeşte permutare (substituţie) de gradul n.
Observaţii:
1.Vom nota mulţimea tuturor permutărilor de gradul n cu Sn sau cu σn, iar
elementele din Sn le vom nota cu litere mici greceşti: υ, ψ, θ, …, σ, τ. Se
obişnuieşte ca o permutare σ de gradul n să se noteze astfel:
σ =
n
n
.........21
...........21
2. Numărul tuturor permutărilor de gr ad n este n!.
În mulţimea Sn distingem un element remarcabil şi anume funcţia identică
1A : A A, care poartă numele de permutare identică, notată cu e. Aşadar,
e =
n
n
...321
...321.
Definiţia 4.1.17
Fie A = 1, 2, …, n. Definim submulţimea M = (i, j) / 1≤ i j ≤ n. Dacă σ S neste o permutare de gradul n, o pereche ordonată (i, j) M se numeşte inversiune a
permutării σ dacă σ(i) σ(j).
Vom nota cu m(σ) numărul tuturor inversiunilor permutării σ. Se observă că m(σ)
este cel mult egal cu numărul elementelor mulţimii M, care este egal cu C 2n .
Deci, 0 ≤ m(σ) ≤ C 2n = 2
)1( nn.
Numărul ε(σ ) = (-1)m(σ)
se numeşte signatura permutării σ. Permutarea σ se numeşte pară, respectiv impară dacă ε(σ ) = +1 respectiv
ε(σ ) = -1.
Determinanţi
Definiţia 4.1.18
Se numeşte determinant asociat unei matrice de ordin 2 cu a ij K,
K – corp comutativ, i, j 1, 2 , A =
2221
1211
aa
aa , numărul Δ K, notat cu:
8/19/2019 04 capitolul IV.pdf
11/65
Petru Florin Gavril Capitolul IV - Matrice
111
Δ = detA =2221
1211
aa
aa = a11a22 - a12a21
Observaţie:
Mulţimea S2 a permutărilor mulţimii 1, 2 este formată din două elemente:
σ1 =
21
21 şi σ2 =
12
21. m(σ1) = 0; m(σ2) = 1 deci σ1 – permutare pară, iar σ2 –
permutare impară.
Definiţia 4.1.19
Se numeşte determinant asociat unei matrice de ordin 3 cu a ij K (K – corp
comutativ), i, j 1, 2, 3 , A=
333231
232221
131211
aaaaaa
aaa
, numărul Δ K, notat cu:
Δ = detA =
333231
232221
131211
aaa
aaa
aaa
= 3
3
21 321 i
S
ii aaa
Definiţia 4.1.22:
Se numeşte determinant asociat unei matrice pătratice de ordin n cu a ij K
( K – corp comutativ) , i, j 1, 2, …, n , A =
nnnn
n
n
aaa
aaa
aaa
21
22221
11211
numărul unic
determinat Δ K, dat de formula:
Δ = detA =
nnnn
n
n
aaa
aaa
aaa
21
22221
11211
= nS
nnaaa
)()2(2)1(1 ...)(
Observaţii:
1. Produsul a1σ(1)a2σ(2)…anσ(n) se numeşte termen al determinantului de ordinul n.
2. Uneori numărul Δ = detA se mai notează prescurtat şi A saun jniija
11 .
3. În formula determinantului unei matrice există n! termeni, dintre care n!/2 au
semnul (+), iar n!/2 au semnul (-).
8/19/2019 04 capitolul IV.pdf
12/65
Petru Florin Gavril Capitolul IV - Matrice
112
4. Definiţia determinantului se aplică şi matricelor de ordin 1, când A = (a 11). În
acest caz, detA = a11.
5. Noţiunea de determinant are sens numai pentru matrice pătratice.
Teorema 4.1.1
Dacă la o linie (sau coloană) a matricei A adunăm elementele altei linii (sau
coloane) înmulţite cu acelaşi număr, atunci această matrice are acelaşi determinant ca şi
matricea A.
Teorema 4.1.2
Dacă A, B sunt două matrice pătratice de ordin n cu elemente din acelaşi corp,
atunci det(AB) = detA ∙ detB.
Calculul determinanţilor
Calculul determinanţilor de ordin doi şi trei
Fie determinantul de ordin doi
Δ =2221
1211
aa
aa
cu două linii şi două coloane format din 4 elemente. Valoarea determinantului (4) este dată
de expresia
Δ = a11a22 – a12a21
Valoare care se obţine făcând diferenţa dintre produsul elementelor de pe
diagonala principală şi produsul elementelor de pe diagonala secundară.
Să considerăm acum determinantul de ordin trei
Δ =
333231
232221
131211
aaa
aaa
aaa
Valoarea acestui determinant poate fi calculată în două moduri şi anume:
Regula triunghiurilor
Valoarea determinantului (5) este dată de expresia:
Δ = a11a22a33 + a13a21a32 + a12a23a31 – a13a22a31 – a11a23a32 – a12a21a32
Termenii cu „+” din (5’) sunt: produsul elementelor de pe diagonala principală şi
două produse de elemente situate în vârfurile a două triunghiuri (isoscele) care au bazele
paralele cu prima diagonală (vezi Fig.1). Termenii cu „-” sunt: produsul elementelor de pe
8/19/2019 04 capitolul IV.pdf
13/65
Petru Florin Gavril Capitolul IV - Matrice
113
diagonala secundară şi două produse de elemente situate în vârfurile a două triunghiuri
(isoscele) care au bazele paralele cu diagonala secundară (vezi figura4.2).
333231
232221
131211
aaa
aaa
aaa
333231
232221
131211
aaa
aaa
aaa
Figura 4.1 Figura 4.2
Calculul determinanţilor de ordin n
Fie determinantul de ordin n următor:
d =
nnnnn
n
n
aaaa
aaaa
aaaa
321
2232221
1131211
Determinantul de ordin n-1 care se obţine din d suprimând linia i şi coloana j se
numeşte minorul elementului aij şi se notează cu d ij.
Numărul Aij = (-1)i+j
dij se numeşte complementul algebric al elementului aij în
determinantul d.
Teorema 4.1.3
Fie determinantul de ordin n, d =n jniija
11 . Atunci, ( ) 1 ≤ i ≤ n are loc
egalitatea:
d = ai1 Ai1 + ai2 Ai2 + … + ain Ain
Egalitatea (1) poartă denumirea de dezvoltarea determinantului d după linia i.
Teorema 4.1.4
Fie determinantul de ordin n, d =n jniija
11 . Atunci, ( ) 1≤ j ≤ n are loc
egalitatea
d = a1j A1j + a2j A2j + … + anj Anj
Egalitatea (3) poartă denumirea de dezvoltarea determinantului d după coloana j.
8/19/2019 04 capitolul IV.pdf
14/65
Petru Florin Gavril Capitolul IV - Matrice
114
Determinanţi triunghiulari
Sunt acei determinanţi care au toate elementele situate deasupra uneia din diagonale, nule.
Δ =
nnnn aaa
aa
a
...
............
00
000
21
2221
11
(1)
Dezvoltându-l după prima linie, vom avea:
Δ = a11
nnnn aaa
aa
a
...
............
0...
0...0
32
3332
22
Procedând analog, vom obţine:
Δ = a11 a22 a33 … an-1n-1 ann.
Valoarea unui determinant triunghiular de tipul (1) este egală cu produsul elementelor de
pe diagonala principală.
Determinanţi simetrici şi antisimetrici
1) Un determinant Δ =n jniija
11 se numeşte simetric, dacă elementele simetrice faţă
de diagonala principală sunt egale, adică aij=a ji
Un astfel de determinant are2
)1( nn elemente diferite.
2) Un determinant Δ =n jniija
11 se numeşte antisimetric, dacă elementele sale au
proprietatea aij = - a ji adică elementele simetrice faţă de diagonala principală
sunt egale şi de semn contrar.
IV.1.5. Rangul unei matrice. Matrice inversabile
Rangul unei matrice
Fien jmi jia A
11, )( o matrice din M mn(C) şi k N astfel încât 1 ≤ k ≤ min(m,n).
Dacă luăm din matricea a k linii şi k coloane, elementele care se găsesc la intersecţia
acestor linii şi coloane formează o matrice pătratică al cărei determinant se numeşte mino r
de ordin k al matricei A.
Din matricea A se pot obţine k n
k
m C C minori de ordin k.
8/19/2019 04 capitolul IV.pdf
15/65
8/19/2019 04 capitolul IV.pdf
16/65
Petru Florin Gavril Capitolul IV - Matrice
116
iterative prezentate în capitolul IV al prezentei lucrări, precum şi cu ajutorul
sistemelor de ecuaţii liniare prezentate în acelaşi capitol.
Matrice inversabile
Definiţia 4.1.24
O matrice pătratică A M n( K ) se numeşte singulară sau degenerată dacă
detA=0 şi se numeşte nesingulară sau nedegenerată dacă detA 0, unde prin detA am
notat determinantul matricei A.
Observaţie:
Matricea unitatea de ordin n, In, este nesingulară deoarece detIn = 1 0.
Definiţia 4.1.25
O matrice pătratică A M n( K ) este inversabilă dacă () B M n( K )astfel încât
A∙B = B∙A = I n.
Matricea B se numeşte inversa matricei A.
Observăm că şi A este inversa matricei B.
Teorema 4.1.7
Inversa unei matrice, dacă există, este unică.
Notaţie: Inversa unei matrice A, dacă există, se notează cu A-1 şi astfel vom avea:
A ∙ A-1 =A-1 ∙ A = In, de unde (A-1
)-1
= A.
Teorema 4.1.8
Fie A M n( K ) o matrice pătratică. Matricea A este inversabilă dacă şi numai
dacă este nesingulară (detA 0).
Proprietăţi:
1) Dacă A M n(K ) este inversabilă, atunci şi A-1
este inversabilă şi are loc
egalitatea (A-1
)-1
= A.
2) Dacă A M n(K ) este nesingulară, atunci şi A-1
este nesingulară deoarece are
loc egalitatea (A-1
)-1
= A.
3) Între determinantul matricei A şi determinantul matricei A-1 are loc egalitatea
det A-1
= Adet
1
4) Inversa matricei unitate de ordin n este tot matricea unitate de ordin n:
In-1
= In
5) Inversa matricei transpuse este egală cu transpusa matricei inverse:
(tA)-1 = t(A-1)
8/19/2019 04 capitolul IV.pdf
17/65
Petru Florin Gavril Capitolul IV - Matrice
117
6) Dacă A şi B sunt matrice inversabile , de acelaşi ordin, atunci produsul lor
este AB este tot o matrice inversabilă şi inversa matricei produs este egală cu
produsul matricelor inverse, luate în ordine schimbată, adică:(AB)-1 = B-1A-1
7) Dacă A M n(Q) sau A M n( ), cu detA 0, atunci A-1
M n(Q) sau
A-1M n( ) .
8) Dacă A Mn(Z) şi detA = 1 , atunci A-1 Mn(Z), adică A este inversabilă
în Mn(Z).
9) Fie A, B Mn(C) astfel încât A să fie nesingulară şi ecuaţiile matriceale
A∙X=B, Y∙A=B. Soluţiile celor două ecuaţii sunt două matrice distincte,
deoarece înmulţirea matricelor în Mn(C) nu este comutativă.
X = A
-1
∙ B şi Y = B ∙ A
-1
.
IV.1.6. Sisteme de ecuaţii liniare
IV.1.6.1. Definiţii. Notaţii.
Sistemele de ecuaţii liniare intervin aproape în toate domeniile matematicii aplicate. În
unele cazuri, ele apar în mod natural, din însăşi formularea problemei. În alte cazuri,
sistemele de ecuaţii liniare rezultă din aplicarea unor metode numerice de rezolvare a
problemelor iniţiale. Problema aproximării funcţiilor şi problema rezolvării de sisteme de
ecuaţii diferenţiale sunt exemple tipice de astfel de probleme.
Definiţia 4.1.23:
Fie K un corp comutativ. Se numeşte sistem de ecuaţii liniare cu coeficienţi în K
în necunoscutele x1 , x2 , …, xn un ansamblu de egalităţi:
mnmnmm
nn
nn
b xa xa xa
b xa xa xa
b xa xa xa
...
......................................
...
...
2211
22222121
11212111
(1)
unde aij , bi K .
Sistemul (1) poate fi scris sub formă condensată astfel:
n
j
i jij b xa1
, 1 ≤ i ≤ m (2)
Matricea de tip mn:
8/19/2019 04 capitolul IV.pdf
18/65
Petru Florin Gavril Capitolul IV - Matrice
118
A =
mnmm
n
n
aaa
aaa
aaa
...
............
...
...
21
22221
11211
, notată şi A =n jmiija
11 , se numeşte
matricea coeficienţilor sistemului, iar matricea de tip m(n-1):
A =
mmnmm
n
n
baaa
baaa
baaa
...
...............
...
...
21
22221
111211
,
având primele n coloane, coloanele matricei A şi ultima coloană formată din coloana
termenilor liberi ai sistemului se numeşte matricea extinsă.
Matricea B =
mb
b
b
...
2
1
este matricea termenilor liberi, iar dacă notăm cu X =
m x
x
x
...
2
1
,
matricea necunoscutelor, sistemul (1) se mai scr ie şi sub forma matriceală:
A ∙ X = B (3)
Definiţia 4.1.24:
Un sistem ordonat de elemente n ,...,, 21 din K se numeşte soluţie a
sistemului (1), dacă înlocuind în (1) x j prin j , 1 ≤ j ≤ n, toate cele m ecuaţii sunt
verificate, adică
n
j
i jij ba1
, 1 ≤ i ≤ m.
Dacă sistemul (1) are măcar o soluţie, se spune că este compatibil determinat
dacă soluţia este unică şi nedeterminat, dacă există mai multe soluţii.
Dacă sistemul (1) nu admite soluţii, se spune că este incompatibil.
A r ezolva un sistem de ecuaţii liniare (1) înseamnă a decide dacă acesta este
compatibil sau incompatibil, iar în cazul compatibilităţii, a -i găsi soluţia unică, atunci când
este determinat, şi soluţia generală când este nedeterminat.
De studiul compatibilităţii unui sistem de ecuaţii liniare mă voi ocupa în
continuare în cadrul acestui capitol al lucrării, totodată trecând în revistă şi câteva clase
importante de astfel de sisteme.
8/19/2019 04 capitolul IV.pdf
19/65
Petru Florin Gavril Capitolul IV - Matrice
119
IV.1.6.2. Sisteme de tip Cramer
Sistemele liniare de forma:
nnnnnn
nn
nn
b xa xa xa
b xa xa xa
b xa xa xa
...
......................................
...
...
2211
22222121
11212111
(4)
în care matricea A a sistemului este o matrice pătratică cu elemente din corpul comutativ
K , A M n(K ) şi B =t(b1, b2, …, bn) este o matrice nenulă de tip n1, sunt sisteme de tip
Cramer.
Sistemele de mai sus se pot scrie sub formă matriceală astfel:
A ∙ X = B (5)
unde, X =t(x1, x2, …, xn) este coloana necunoscutelor.
Teoremă: - regulile lui Cramer
Cu notaţiile de mai sus, dacă d = detA este nenul, atunci sistemul (4) are soluţie
unică şi anume
x1 =d
d 1 , x2 =d
d 2 , …, xn =
d
d n (6)
d j fiind determinantul care se obţine din d prin înlocuirea coloanei j cu coloana termenilor
liberi.
Observaţie:
Formulele (6) poartă numele de formulele lui Cramer. În concluzie, un sistem de
tip Cramer este compatibil determinat dacă matricea sa este nesingulară, iar soluţia este
dată de formulele (6). Pentru a găsi soluţia sistemului (4) avem de calculat aşadar n+1
determinanţi şi de efectuat n împărţiri.
IV.1.6.3. Sisteme de m ecuaţii cu n necunoscute
Revenim la un sistem de forma (1) prezentat la începutul capitolului, şi anume:
mnmnmm
nn
nn
b xa xa xa
b xa xa xa
b xa xa xa
...
......................................
...
...
2211
22222121
11212111
(1)
Vom păstra de asemenea toate notaţiile făcute la început. Evident, în cele ce urmează, se
pune problema compatibilităţii unui astfel de sistem de ecuaţii liniare. Pentru rezolvarea
acestei situaţii există câteva rezultate remarcabile şi anume:
8/19/2019 04 capitolul IV.pdf
20/65
Petru Florin Gavril Capitolul IV - Matrice
120
Teorema lui Kronecker-Capelli
Sistemul de ecuaţii liniare (1) este compatibil rangA = rang A .
Având în vedere consideraţiile făcute la calculul rangului unei matrice în
capitolul anterior, această teoremă se mai poate enunţa şi în felul următor:
Teorema lui Rouché:
Sistemul (1) este compatibil toţi minorii caracteristici sunt nuli.
După cum se poate observa, aceste teoreme nu spun nimic de rezolvarea propriu-
zisă a unui sistem de forma (1). Despre acest lucru ne vom ocupa în continuare.
Vom numi minor principal al unei matrice de rang r, un minor de ordin r nenul şi
minor caracteristic de ordin r+1 , minorul obţinut din minorul principal bordându-l cu
elemente corespunzătoare coloanei termenilor liberi, precum şi cu cele ale uneia din liniile
rămase din A .
Observaţie:
Minori caracteristici există dacă m r, iar numărul lor este egal cu m-r (m –
numărul de ecuaţii, iar r – rangul matricei A).
Presupunem că sistemul (1) este compatibil şi că rangA = r. Vom lua minorul
principal ca fiind situat la intersecţia primelor r linii cu primele r coloane din A:
rr r r
r
r
aaa
aaaaaa
...
............
...
...
21
22221
11211
0.
Orice linie i, i r, a matricelor A şi A este o combinaţie liniară a primelor r linii
(toţi minorii de ordin r fiind nuli). De aici rezultă că orice ecuaţie i (i r) a sistemului (1)
este o combinaţie liniară de primele r ecuaţii ale sistemului, cu anumiţi coeficienţi. De
aceea, orice soluţie a primelor r ecuaţii satisfac toate ecuaţiile din (1). Astfel, este suficient
să rezolvăm sistemul:
r nrnr r
nn
nn
b xa xa xa
b xa xa xa
b xa xa xa
...
.........................................
...
...
2211
22222121
11212111
(1’)
care va fi echivalent cu (1), având aceeaşi mulţime de soluţii.
Matricea noului sistem are rangul r, r ≤ n.
8/19/2019 04 capitolul IV.pdf
21/65
Petru Florin Gavril Capitolul IV - Matrice
121
1) Dacă r = n, sistemul (1’) este de tip Cramer, compatibil determinat, iar soluţia
unică a sistemului, dată de formulele (6), va fi soluţia sistemului.
2) Dacă r n, fixăm minorul principal, necunoscutele corespunzătoare lui –
necunoscute principale şi trecem în (1’), în membrul drept, toţi termenii care
conţin necunoscutele secundare: xr+1, xr+2, …, xn. Acestora din urmă le atribuim
valori arbitrare, respectiv λ1, λ2, λ3, …, λn-r .
Se obţine sistemul:
r nrnr r r rr rr r r
r nnr r r
r nnr r r
aab xa xa xa
aab xa xa xa
aab xa xa xa
......
..........................................................................
......
......
11,2211
211,222222121
111,111212111
(1’’)
care este un sistem Cramer, compatibil şi se rezolvă cu ajutorul formulelor (6). Soluţia
unică a sistemului (1’’) este ( r ,...,, 21 ) iar ( r ,...,, 21 ,λ1, λ2, λ3, …, λn-r ) este
soluţia sistemului (1’), adică a sistemului (1). Deoarece λ1, λ2, λ3, …, λn-r sunt alese
arbitrar, obţinem pentru (1) o infinitate de soluţii, care constituie mulţimea tuturor
soluţiilor sistemului (1).
Deci, pentru a rezolva un sistem de m ecuaţii cu n necunoscute procedăm în felul următor:
1) Se studiază compatibilitatea sistemului. Pentru aceasta se caută un minor
principal al lui A, matricea sistemului, apoi se caută şi se calculează minorii
caracteristici.
Putem avea cazurile:
există cel puţin unul nenul, sistemul fiind astfel incompatibil;
toţi sunt nuli, sistemul fiind astfel compatibil.
2) Dacă sistemul (1) este compatibil atunci formulăm sistemul de tip (1’’).
3) Se rezolvă sistemul (1’’) şi se scrie apoi mulţimea soluţiilor sistemului (1) de
forma ( r ,...,, 21 ,λ1, λ2, λ3, …, λn-r ).
IV.1.6.4. Sisteme omogene
Definiţia 4.1.25:
Un sistem de ecuaţii liniare se numeşte sistem omogen dacă termenul liber al
fiecărei ecuaţii este nul (adică fiecare ecuaţie este omogenă).
Forma generală a unui sistem omogen cu m ecuaţii şi n necunoscute este
următoarea:
8/19/2019 04 capitolul IV.pdf
22/65
Petru Florin Gavril Capitolul IV - Matrice
122
0...
.........................................
0...
0...
2211
2222121
1212111
nmnmm
nn
nn
xa xa xa
xa xa xa
xa xa xa
(9)
Observăm de la început că un sistem omogen este totdeauna compatibil deoarece
admite soluţia banală x1 = x2 = … = xn = 0.
Se pune în schimb problema dacă sistemele omogene admit şi alte soluţii şi dacă
da, atunci rămâne de studiat cum le determinăm. Este de remarcat faptul că rezultatele de
la celelalte tipuri de sisteme se aplică şi sistemelor omogene, cu condiţia să considerăm
termenii liberi zero.
Procedăm astfel:
vom scrie matricea ataşată sistemului (A) şi-i determinăm rangul. Fie acesta r.
putem avea situaţiile:
dacă r = n, atunci sistemul admite soluţia banală ca soluţie unică;
dacă r n, sistemul admite o infinitate de soluţii care se determină în acelaşi
mod cu soluţiile sistemelor discutate în paragraful IV.3. din prezentul
capitol.
Observaţie
Deoarece necunoscutelor secundare li se atribuie valori arbitrare, obţinem şi
soluţii nenule în acest caz pentru un sistem omogen.
Deci, condiţia necesară şi suficientă ca un sistem omogen să admită şi soluţii
nenule este ca r n.
În cazul în care sistemul omogen are n ecuaţii şi n necunoscute, se scrie matricea
sistemului şi se calculează determinantul acesteia, după care se constată una din
următoarele sitaţii:
dacă detA 0, rangA = n, sistemul admite soluţia banală, soluţie unică;
dacă detA = 0, rangA n, sistemul admite şi soluţii nenule.
Deci, condiţia necesară şi suficientă pentru ca un sistem omogen, cu n ecuaţii şi n
necunoscute, să admită şi soluţii diferite de soluţia banală este ca determinantul matricei
sistemului să fie nul.
Dacă un sistem omogen are n ecuaţii şi n+1 necunoscute, iar rangul matricei A
este n, atunci sistemul este compatibil. Fie sistemul:
8/19/2019 04 capitolul IV.pdf
23/65
Petru Florin Gavril Capitolul IV - Matrice
123
0...
.........................................
0...
0...
11,2211
11,22222121
11,11212111
nnnnnnnn
nnnn
nnnn
xa xa xa xa
xa xa xa xa
xa xa xa xa
(10)
cu matricea A =1.1
,1
n j
niija . Cum rangA = n, se pot forma n+1 minori de ordin maxim n,
nenuli. Vom considera un 1 , minor de ordin n nenul suprimând din A coloana 1. Acesta
va fi ales minor principal, necunoscuta x1 – necunoscută secundară şi x2, x3, …, xn+1 ca
necunoscute principale. Analog putem alege minorii 2 , 3 , …, 1n .
Putem rezolva ecuaţiile principale în raport cu necunoscutele principale după
formulele lui Cramer deoarece i 0. Soluţiile sistemului (10) sunt formate din sisteme
de (n+1) numere proporţionale cu 1 , - 2 , 3 , …, (-1)n
1n :
1
1
x = -
2
2
x =
3
3
x = … =
11
1
nn
n x = t.
De obţinem că:
x1 = t ∙ 1
x2 = -t ∙ 2
x3 = t ∙ 3
………….
xn+1 = (-1)n t ∙ 1n .
Dând lui t valori arbitrare obţinem toate soluţiile sistemului (10).
Proprietăţi:
1) Dacă n ,...,, 21 şi n ,...,, 21 sunt soluţii ale unui sistem omogen
atunci şi nn ,...,, 2211 este soluţie a sistemului. 2) Dacă n ,...,, 21 este soluţie a unui sistem omogen, atunci şi
nk k k ,...,, 21 este soluţie a aceluiaşi sistem.
IV.1.6.5. Metode de rezolvare a sistemelor de ecuaţii liniare
Regulile lui Cramer de rezolvare a sistemelor pătratice de ordin n, cu matricea
sistemului nesingulară nu reprezintă un algoritm practic atunci când n este mare, deoarece
implică un număr mare de calcule, n+1 determinanţi, fiecare cu (n -1)n! înmulţiri.
În aplicaţiile practice se folosesc două tipuri de metode:
8/19/2019 04 capitolul IV.pdf
24/65
Petru Florin Gavril Capitolul IV - Matrice
124
1) metode directe, prin care soluţia exactă se obţine într -un număr finit de operaţii
aritmetice (f ăcând abstracţie de erorile de rotunjire);
2) metode iterative pentru care vectorul x – soluţia sistemului (1) Ax = b – este
limita unui şir de vectori xn pentru n → ∞.
Metodele directe pot fi încadrate în următoarea schemă generală:
Se determină transformarea P nesingulară cu care sistemul (1) devine
P∙Ax = Pb (2)
Astfel încât noua matrice PA, să fie de o formă cât mai simplă, care să permită o rezolvare
imediată. Dacă PA nu este suficient de simplă, se mai foloseşte o transformare nesingulară
Q la dreapta, astfel încât sistemul devine:
PAQy = Pb, cu x = Qy (3)
De obicei, matricele PA şi PAQ sunt matrice triunghiulare dar pot fi şi de altă formă
convenabilă pentru rezolvarea sistemului (1).
De exemplu, dacă în sistemul (3) PA este o matrice superior triunghiulară
PA = n j
niijt ,1
,1
şi Pb = niic ,1 , atunci sistemul devine:
nnmn
nn
nn
c xt
c xt xt
c xt xt xt
.........
...
...
22222
11212111
(4)
Din ultima ecuaţie se obţine:
xn =mn
n
t
c.
Înlocuind în penultima ecuaţie, avem:
xn-1 =1,1
,11
nnmn
nnnmnn
t t
t ct c
şi tot aşa până la prima ecuaţie, de unde se obţine:
x1 =11
2
11
t
xt cn
j
j j
.
Algoritmul este:
xn =mn
n
t
c
8/19/2019 04 capitolul IV.pdf
25/65
8/19/2019 04 capitolul IV.pdf
26/65
Petru Florin Gavril Capitolul IV - Matrice
126
333231
232221
131211
aaa
aaa
aaa
∙
3
2
1
x
x
x
=
3
2
1
b
b
b
(2)
unde A = 3,1, jiija este matricea sistemului, X = 3,1ii x este matricea coloană a
necunoscutelor, iar B = 3,1iib este matricea coloană a termenilor liberi, notaţii cu care ne-
am întâlnit şi în capitolul 3.
La primul pas al metodei lui Gauss urmări eliminarea necunoscutei x1 din toate
ecuaţiile sistemului, cu excepţia primei ecuaţii. Pentru aceasta împărţim mai întâi prima
linie la elementul pivot a11, presupus nenul (dacă nu este aşa, reordonăm şi renumerotăm
ecuaţiile pentru a fi îndeplinită această condiţie):
3333231131
2323222121
1
13
1
132
)1(
121
b xa xa xa
b xa xa xa
b xa xa x
Scădem apoi prima ecuaţie înmulţită cu primul coeficient al celei de -a doua
ecuaţii, din această ecuaţie şi, respectiv, înmulţită cu primul coeficient al celei de -a treia
ecuaţii, din aceasta din urmă. Obţinem astfel sistemul:
1
33
1
332
1
32
123
1232
122
1
13
1
132
)1(
121
b xa xa
b xa xa
b xa xa x
,
unde
1
11
1
1
11
1
111
1
1
111
1
1
3,2,1,3,2,1,
3,2,1,
babb
jiaaaa
abb
jaaa
iii
jiijij
j j
.
Matriceal, primul pas al metodei lui Gauss duce la
1
33
1
32
1
23
1
22
1
13
1
12
0
0
1
aa
aa
aa
∙
3
2
1
x
x
x
=
1
3
1
2
1
1
b
b
b
(3)
În continuare, urmărim eliminarea necunoscutei x2 din ultima ecuaţie. Pentru
aceasta, împărţim mai întâi a doua ecuaţie la elementul pivot 122a , presupus nenul (dacă nu
este aşa, interschimbăm ecuaţiile a doua şi a treia) şi apoi scădem linia obţinută, înmulţită
cu 132a din ecuaţia a treia.
8/19/2019 04 capitolul IV.pdf
27/65
Petru Florin Gavril Capitolul IV - Matrice
127
Obţinem:
2
33
2
23
1
13
1
12
00
10
1
a
a
aa
∙
3
2
1
x
x
x
=
2
3
2
2
1
1
b
b
b
(4)
unde
2
2
1
2
12
2
2
1
2
12
1
22
1
2
2
2
1
22
1
2
2
2
3,2,3,
3,2,
babb
jiaaaa
abb
jaaa
iii
jiijij
j j
.
În sfârşit, încheiem faza eliminării împărţind cea de-a treia ecuaţie la elementul pivot 233a ,
care, pentru un sistem cu matrice nesingulară, trebuie să fie nenul. Rezultă:
100
10
12
23
1
13
1
12
a
aa
∙
3
2
1
x
x
x
=
3
3
2
2
1
1
b
b
b
(5)
unde
233
2
3
3
3 abb .
Faza substituţiei implică parcurgerea ecuaţiilor sistemului (5) rezultat în fazaeliminării, în sens invers şi stabilirea soluţiei sistemului potrivit procedeului recursiv:
x3 = 33b
x2 = 22b -
223a x3 (6)
x1 = 11b - (
112a x2 +
113a x3)
Metoda de eliminare a lui Gauss permite şi calculul determinantului matricei
sistemului. Se observă că, matricea A(3) a sistemului (5) fiind triunghiulară, are
determinantul egal cu produsul elementelor diagonale, adică det A(3) = 1.
Având în vedere că împărţirea liniilor matricei sistemului la elementele pivot a
condus la o matrice având determinantul egal cu determinantul matricei iniţiale împărţit la
produsul elementelor pivot, rezultă:
det A(3)
= 233
1
2211
det
aaa
A = 1
adică
detA = a11 122a
233a (7)
8/19/2019 04 capitolul IV.pdf
28/65
Petru Florin Gavril Capitolul IV - Matrice
128
Metoda de eliminare a lui Gauss pentru cazul unui sistem de n ecuaţii cu n
necunoscute scris matricial sub forma:
A ∙ X = B
se aplică în acelaşi mod.
Metoda Gauss-Jordan
Metoda Gauss-Jordan reprezintă o formă modificată a metodei lui Gauss. Spre
deosebire de metoda Gauss, în care matricea sistemului este adusă prin transformări
elementare la formă superior triunghiulară, în metoda Gauss-Jordan matricea sistemului
este transformată în matricea unitate. Prin aceasta, deşi faza eliminării este mai laborioasă,
faza substituirii inverse este eliminată. În plus, printr -o codificare eficientă, simultan cu
rezolvarea unei ecuaţii matriceale, metoda Gauss-Jordan permite înlocuirea matricei
sistemului cu inversa acestaia.
În urma pasului k de eliminare este eliminată necunoscuta xk din toate ecuaţiile
sistemului, cu excepţia ecuaţiei pivot k şi sistemul este adus la forma:
k
nn
k
nk
k
nk
k
k k
k
kn
k
kk
nk
nk
aa
aa
aa
aa
aa
1
111
1
2
2
2
12
1
1
1
11
000
000
100
010
001
∙
n
k
k
x
x
x
x
x
1
2
1
=
k
n
k
k
k
k
b
b
b
b
b
1
2
2
1
1
(18)
unde noile elemente ale liniei pivot k sunt, ca şi în metoda Gauss:
11
11 ,...,1,
1
k
kk
k
k
k
k
k
kk
k
kj
k
kj
k
kk
abb
nk jaaa
a
(19)
iar noile elemente ale liniilor nepivot sunt:
k
k
k
ik
k
i
k
i
k
kj
k
ik
k
ij
k
ij
k
ik
babb
k inink jaaaa
a
11
11 ,,...1,,...1,
0
(20)
Se observă că la pasul k se modifică toate elementele matricei sistemului situate
în dreapta coloanei k, coloană care devine identică cu coloana corespunzătoare a matricei
unitate. La fiecare pas se modifică, în schimb, toate elementele matricei termenilor liberi.
În final, după pasul k=n, sistemul are forma
8/19/2019 04 capitolul IV.pdf
29/65
Petru Florin Gavril Capitolul IV - Matrice
129
In∙X=B(n)
(21)
unde In reprezintă matricea unitate de ordinul n. Este evident că nu este necesară, ca în
cazul metodei Gauss, o fază a substituţiei inverse, iar soluţia sistemului este:
xk = k
k b , k = 1,…,n (22)
Ca şi în cazul metodei Gauss, determinantul matricei A(n) = In este egal cu 1. Având însă în
vedere că în obţinerea matricei A(n) liniile matricei iniţiale au fost împărţite pe rând la
elementele pivot, avem:
det A(n)
= 112211 ...
detn
nnaaa
A = 1
de unde
detA = a11 1
22a …
1n
nna (23)
Ca şi în cazul metodei Gauss, deoarece după pasul k informaţia utilă din matricea
A(k)
se găseşte exclusiv în coloanele k+1, …, n, coloana k fiind în fond identică cu coloana
corespunzătoare a matricei unitate, noile elemente ale matricei A(k) sunt calculate efectiv
numai pentru j=k+1, …, n. În ceea ce priveşte pivotarea, aceasta se poate realiza la fel ca în
cazul metodei Gauss.
IV.1.6.5.2. Metode iterative de aproximare a soluţiilor sistemelor de ecuaţii
liniareFie sistemul de n ecuaţii cu n necunoscute
Ax = b, det A 0 (1)
Ideea generală a metodelor iterative constă în construirea unor şiruri de vectori ce
converg la soluţia exactă, care se obţin fără a modifica forma matricei:
...2,1,0,
,1
0
k x F x
dat xk k
n
cu şirul )(k
x convergent la soluţia sistemului (1).O clasă largă de metode iterative se obţine dacă avem o descompunere a matricei
A de forma A = B – C, unde B este o matrice nesingulară şi uşor de inversat, de regulă
diagonală sau triunghiulară. Există o infinitate de astfel de descompuneri, pentru că
alegându-l pe B cum dorim, luăm C = B – A şi avem descompunerea A = B – C. Sistemul
(1) se scrie atunci sub forma Bx = Cx + b, care permite definirea unei metode iterative
astfel: oricare ar fi iteraţia iniţială x(0)n se determină termenii succesivi ai unui şir )(k x
prin recurenţă, cu relaţia:
8/19/2019 04 capitolul IV.pdf
30/65
Petru Florin Gavril Capitolul IV - Matrice
130
b xC x B k k )()1( , k = 1,2,3,… (2)
Deoarece B este nesingulară şi uşor de inversat pentru orice x(k) deja determinat,
se obţine următorul vector din şir x (k+1) cu relaţia
b B xC B x
k k
1)(1)1(
(3) adică
c x M x k k )()1( , (4)
unde C B M 1 (matricea iteraţiei) şi b Bc 1 .
Propoziţia 4.1.4
Dacă şirul )(k x este convergent atunci el converge la soluţia sistemului (1).
Să vedem în ce condiţii şirul )(k x este convergent.
Teorema 4.1.9
Condiţia necesară şi suficientă ca şirul )(k x dat de relaţia (2) să fie convergent
pentru orice x(0)
n este ca raza spectrală a matricei M să fie subunitară, adică
1)( M . O condiţie suficientă de convergenţă este existenţa unei norme naturale pentru
care M 1 M max ; este valoare proprie a lui M .Metoda lui Jacobi
Una dintre cele mai vechi şi mai cunoscute metode iterative pentru rezolvarea
sistemelor de ecuaţii liniare este metoda lui Jacobi.
Fie ij n nA a şi i n b b . În descompunerea anterioară alegem
11 22 nnB diag a ,a ,...,a , iar metoda iterativă corespunzătoare este:
i
nk 1 k
ii i ij j
j 1
j i
a x b a x
, i 1,n , unde ik
x şi i
k 1x
sunt componentele vectorilor
k x respectiv
k 1x
. În ipoteza importantă iia 0, i 1,n , care asigură că matricea
B este nesingulară, obţinem recurenţa i
nk 1 k
i ij j
j 1ii j i
1x b a x ,
a
i 1,n care se
numeşte metoda lui Jacobi.
Conform teoremei anterioare, condiţia necesară şi suficientă de convergenţă ametodei lui Jacobi este ca modulele valorilor proprii ale matricei iteraţiei să fie subunitare.
8/19/2019 04 capitolul IV.pdf
31/65
Petru Florin Gavril Capitolul IV - Matrice
131
Ecuaţia caracteristică a acestei matrice este 0)det( 1 C B I sau, echivalent,
0))(det( 1 C B B . Cum 1B 0 , condiţia necesară şi suficientă de convergenţă este
ca toate modulele rădăcinilor ecuaţiei 0)det( C B să fie subunitare. Această condiţie
nu are decât o valoare teoretică. În practică se folosesc doar condiţii suficiente, care din
teorema anterioară cer să existe o normă a matricei M a iteraţiei care să fie subunitară. Din
metoda lui Jacobi se vede că elementele acestei matrice ij i,j 1,nM m sunt
ij
ij ii
a, pentru i j
m a
0, pentru i j
. Dacă luăm1
, adică1
M 1 echivalent cu
n
ij1 j 1,ni 1
M max m 1
(sume pe coloane) obţinem condiţia suficientă de convergenţă
nij
i 1 iii j
a1, j 1, n
a
.
Dacă luăm e , adică eM 1 echivalent cu
1/ 2
2n n
ijei 1 j 1i j
M m 1
obţinem
condiţia suficientă de convergenţă
2n n
ij
i 1 j 1 ii j i
a 1
a
.
Luând norma
, adică M 1
, iarn
ij
i 1,n
j 1 ii
aM max 1
a
(sume pe linii),
obţinem condiţia suficientă de convergenţăn
ij
i 1 iii j
a1, j 1, n
a
sau
n
ij ii
j 1 j i
a a , pentru i 1, n
, condiţie care se numeşte dominanţa diagonală pe linii.
8/19/2019 04 capitolul IV.pdf
32/65
Petru Florin Gavril Capitolul IV - Matrice
132
Metoda Gauss-Seidel
Metoda Gauss-Seidel reprezintă o modificare a metodei Jacobi, cu scopul
creşterii vitezei de convergenţă şi reducerii memoriei necesare. Ideea de bază a metodei
Gauss-Seidel constă în utilizarea în calculul componentei k 1ix
a aproximaţiei soluţiei
sistemului de la pasul k 1 a componentelor k 1 k 1 k 11 2 i 1x ,x ,...x
, deja calculate, în
locul componentelork k k
1 2 i 1x ,x ,...x de la iteraţia anterioară, cum se întâmplă în cazul
metodei Jacobi.
În metoda Gauss-Seidel, recurenţa devine:
i 1 n
k 1 k 1 k ij ijii j j
j 1 j i 1ii ii ii
a a bx x x
a a a
, pentru i 1,n , k = 0,1,2,…
(1)
Aceasta se încadrează în schema precedentă dacă presupunem că iia 0 pentru i 1,n
şi luăm drept
11
21 22
n1 n2 nn
a 0 ... 0
a a ... 0B
..... ..... ... ..
a a ... a
matrice triunghiulară inferior, iar C = B – A
matrice inferioară superior cu 0 pe diagonala principală. Cu această alegere sistemul
B x C x b se scrie după împărţirea la iia :
i 1 nij iji
i j j
j 1 j i 1ii ii ii
a a bx x x
a a a
(2)
pentru i 1,n iar sistemul k 1 k Bx Cx b , k = 0,1,2,… se scrie sub forma (1). Teorema 4.1.10
Criteriul de dominanţă a diagonalei pe linii asigură convergenţa metodei G auss-
Seidel pentru orice iteraţie iniţială 0
x .
8/19/2019 04 capitolul IV.pdf
33/65
Petru Florin Gavril Capitolul IV - Matrice
133
IV.2. Tablouri bidimensionale
IV.2.1. Generalităţi. Notaţii şi definiţii
Definiţia 4.2.1:
Numim tablou bidimensional o structură de date formată din elemente de acelaşitip organizate pe linii şi coloane. Se utilizeză frecvent noțiunea preluată din matematică de
matrice.
Fiecare element se identifică în mod unic prin linia şi coloana la intersecţia cărora
se află. Astfel dacă notăm o matrice cu a elementul aflat la intersecţia liniei i cu coloana j
în matricea a se notează a[i][j],a[i,j] sau a(i,j) în funcţie de limbajul de programare utilizat.
O matrice mai poate fi privită şi ca un „vector de vectori”, adică ca un tablou
unidimensional ce conţine elemente de tip tablou unidimensional(fiecare linie este privităca un singur element), abordare ce permite utilizarea subprogramelor ce prelucrează
vectori pentru a prelucra linii dintr-o matrice ce vor fi transmise ca parametru.
Ilustrăm în continuare o matrice a cu 4 linii şi 3 coloane, având elemente numere
întregi.
Declaraţia unei variabile de tip matrice este asemănătoare cu a unui vector. La
declarare trebuie să specificăm în unele limbaje un număr maxim de linii şi coloane iar în
altele subdomeniu. Numărul de linii şi coloane depinde de enunţ, de modul de prelucrare a
matricei(se utilizează sau nu linia şi coloana 0) dar şi de mediul de programare
utilizat(Borland Pascal/Free Pascal, Borland C++/MinGW Studio).
Declaraţie Pascal
:array[1..,1..] of
sau
:array[1..]of array[1..] of
Pentru utilizarea subprogramelor ce primesc parametrii de tip vector pentru a prelucra linii
dintr-o matrice se utilizează o declaraţie de tipul:
type
linie|vector=array[1..] of
matrice=array[1..] of linie|vector
11105
950
7412
211
4
3
2
1
321
linia 3
coloana 2
a[3][2]=-5
8/19/2019 04 capitolul IV.pdf
34/65
Petru Florin Gavril Capitolul IV - Matrice
134
var :matrice;
Observaţie:
Declaraţia cu tipuri permite atribuiri de linii şi coloane.
Declaraţie C++
[][]
unde:
- identificatorul variabilei matrice
- tipul elementelor matricei
, - numărul maxim de linii, respectiv coloane
Exemplu:
Pascal: a:array[1..20,1..30] of integer; – se declar ă o matrice cu 20 de linii
numerotate de la 1 la 20 şi 30 de coloane numerotate de la 1 la 30. Numărulmaxim de valori ce poate fi memorat este 600.
C++: float a[20][30]; – se declar ă o matrice cu 20 de linii numerotate de la 0 la
19 şi 30 de coloane numerotate de la 0 la 29. Numărul maxim de valori ce poate fi
memorat este 600.
Dimensiunile declarate sunt maxime pentru programul sursă în care au fost făcute, în
practică utilizându-se declararea a două variabile n respectiv m pentru a memora numărul
de linii şi coloane. Valorile lui n şi m se citesc anterior elementelor matricei sau sedetermină pe parcursul execuţiei programului(de obicei la citirea matricelor de dimensiuni
necunoscute din fişiere sau la utilizarea matricelor cu număr necunoscut de linii şi un
număr variabil de coloane, caz în care se ataşează un tablou d ce reţine în d[i] numărul de
coloane completate pe linia i).
IV.2.2. Parcurgerea, citirea şi afişarea unei matrice
Parcurgeri în matrice
Pentru a parcurge o matrice se utilizează în general două structuri repetitive, una pentru a parcurge liniile şi una pentru a parcurge coloanele. Ordinea în care sunt executate
cele două structuri determină prelucrarea elementelor pe linii sau pe coloane.
Descriem în continuare algoritmii de parcurgere precum şi ordinea în care vor fi
prelucrate elementele:
Prelucrare pe linii
Pascal C++
var a:array[1..10,1..20] of ;
n,m,i,j:integer;
a[10][20];
int n,m,i,j;
8/19/2019 04 capitolul IV.pdf
35/65
Petru Florin Gavril Capitolul IV - Matrice
135
………
for i:=1 to n do
for j:=1 to m do
............
for(i=0;i
8/19/2019 04 capitolul IV.pdf
36/65
Petru Florin Gavril Capitolul IV - Matrice
136
Afișările a[i][j]=_ nu sunt obligatorii, ele se folosesc doar pentru a şti care este
elementul curent ce urmează a fi citit.
Afişarea unei matrice
Afişarea matricelor se face pe linii şi coloane aşa încât să poată fi urmărită
distribuţia elementelor pe linii şi coloane.
Pascal C++
var a:array[1..10,1..20] of
;
n,m,i,j:integer;
………
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j],’ ‘);
writeln;
end;
a[10][20];
int n,m,i,j;
............
for(i=0;i
8/19/2019 04 capitolul IV.pdf
37/65
Petru Florin Gavril Capitolul IV - Matrice
137
Diagonala secundară
Diagonala secundară conţine elementele a1n, a2 n-1 , a3 n-2,...,an1 caracterizate de
relaţia i+j=n+1.
Zona de deasupra diagonalei principale
Elementele de deasupra diagonalei principale sunt a12, a13, a14,...,a1n, a23, a24,
a25,...,a2n, ...., an-1 n-1, an-1 n. Relaţia dintre coordonate comună tuturor elementelor din
această zonă este ij.
În practică prelucrarea elementelor se poate face exclusiv pe diagonale respectiv
pe zonele identificate mai sus(ex:ordonarea diagonalelor respectiv verificarea simetriei sau
a triunghiularităţii) sau se poate opta pentru o parcurgere a tuturor elementelor matricei şi
prelucrarea diferenţiată a elementelor în funcţie de relaţia dintre coordonate(ex:
completarea elementelor cu anumite valori, calculul simultan al mai multor rezultate
obţinute pentru fiecare zonă în parte).
În funcţie de enunţ se mai pot identifica zona de deasupra diagonalei
secundare(i+jn+1), precum şi zonele N, S, E,
V situate între cele două diagonale.
Modalităţi de prelucrare a elementelor în matrice pătratică de dimensiune n
Implementare Pascal Implementare C++
//primul element este a[1][1]
Diagonala principală
for i:=1 to n do
for (i=1;i
8/19/2019 04 capitolul IV.pdf
38/65
Petru Florin Gavril Capitolul IV - Matrice
138
Sub diagonala principală
for i:=2 to n do
for j:=1 to i-1 do
for (i=2;i
8/19/2019 04 capitolul IV.pdf
39/65
Petru Florin Gavril Capitolul IV - Matrice
139
cunoscut fiind faptul ca elevii aprofundează mai bine cunoştinţele de manipulare a
vectorilor sau sunt utilizate la capitolul şiruri(cu precădere la clasele cu predare C++ acolo
unde este necesară utilizarea unui tablou de cuvinte, limbajul Pascal permiţând utilizarea
unui array of string ). Parcurgerile matricelor sunt reluate la capitolul Recursivitate tot în
acelaşi an punând din nou în evidenţă particularităţile matricelor pătratice. Tot în capitolul
Recursivitate matricea este abordată ca mijloc de memorare a hărţilor sau a unor fotografii
atunci când sunt prezentaţi algoritmii Fill . În clasa a XI-a(intensiv şi neintensiv) matricele
sunt utilizate masiv în capitolul Teoria grafurilor. Grafuri neorientate.Grafuri orientate
reprezentând fie matricea de adiacenţă, matricea vârfuri-arce, matrici de existenţă a
lanţurilor/drumurilor(algoritmul Roy-Warshall ), matricea costurilor, matricea drumurilor
minime(algoritmul Roy-Floyd ) sau pentru a memora listele de adiacenţă în acest caz fiind
necesar şi vectorul gradelor. Capitolul Backtracking utilizează matricele la probleme cum
ar fi Comis voiajor , Cavalerii mesei rotunde ce se pot trata şi prin teoria grafurilor ,
matricea fiind un mijloc de memorare a soluţiilor optime atunci când acestea sunt cerute
sau „harta” în probleme tratate prin Backtracking în plan de tipul Labirint , Săritura
calului. Programarea dinamică(clasa a XI-a intensiv) este un alt capitol în care matricele
reprezintă f ie posibilitatea de a stoca rezultate intermediare(utile pentru calculul rapid al
soluţiilor acolo unde spaţiul de memorie ocupat nu reprezintă o problemă) – Piramida de
numere, Înmulţirea optimă de matrice, fie stochează datele de intrare în probleme
rezolvabile utilizând, spre exemplu, algoritmul Lee.
La matematică prima abordare a matricelor se face la algebră în clasa a XI -
a(determinanţi, inversă, rang, sisteme) şi continuă în algebra de clasa a XII-a(monoizi,
grupuri, inele, corpuri).
Chiar dacă operaţiile cu matrice se studiază la matematică în clasa XI-a,
informatic ele sunt abordate încă din clasa a IX -a. Adunarea, înmulţirea cu scalar şi
înmulţirea matricelor sunt probleme abordate la clasă în cadrul capitoluluiTablouri.Tablouri bidimensionale(Matrice) ca aplicaţii elementare cu grad redus de
dificultate(adunarea matricelor, înmulţirea cu scalar ) sau cu grad mediu de
dificultate(înmulţirea matricelor).
Tipurile particulare de matrice pătratice(matricea diagonală, matricea simetrică,
matricea triunghiulară inferior/superior) apar ca probleme ce se rezolvă în clasa a IX -a
după prezentarea matricelor pătratice şi a elementelor particulare lor(diagonale, zonele de
deasupra/sub diagonala principală).
8/19/2019 04 capitolul IV.pdf
40/65
Petru Florin Gavril Capitolul IV - Matrice
140
Determinanţii, matricele inversabile şi sistemele de ecuaţii se studiază la
matematică în clasa a XI-a ceea ce permite realizarea în paralel la orele de informatică a
unor subprograme pentru calculul determinantului unei matrice(prin triunghiularizare –
metoda lui Gauss în cadrul capitolului Subprograme, sau recursiv prin dezvoltare după o
linie), pentru determinarea rangului unei matrice, a matricei inverse acolo unde este
posibil, precum şi a unor aplicaţii de rezolvare a sistemelor de m ecuaţii cu n necunoscute.
Abordarea problematicii mai sus amintite se poate realiza la clasele de profil informatică
neintensiv fie în orele din trunchiul comun fie în cadrul unui opţional în timp ce la profilul
intensiv, care nu permite adăugarea unui opţional(indiferent de disciplină) – numărul de
ore din trunchiul comun fiind maxim, abordarea se poate realiza printr-o bună organizare a
materiei în cadrul capitolului Programare orientată obiect (unde prezintă posibilitatea de
supraîncărcare a operatorilor pentru realizarea operaţiilor de adunare, înmulţire cu scalar şi
înmulţire a matricelor), pentru o parcurgere cât mai facilă a problematicii fiind necesar şi
un colectiv de elevi de nivel mediu spre înalt.
Aplicaţiile create în cadrul orelor ce tratează problematica matematică a
matricelor se pot realiza individual sau ca un tot unitar, un proiect(ales uneori de elevii cu
un nivel bun de pregătire ca temă de proiect pentru obţinerea Atestatului de competenţe
profesionale) ce se poate caracteriza în funcţie de finalitate ca un soft utilitar sau
educaţional(după cum oferă rezultatele direct sau prezintă calea/metoda prin care se obţine
rezultatul). Bineînţeles că sursele pot fi optimizate, dar ideea ce se urmăreşte este de a arăta
elevilor că informatica poate fi şi este un sprijin în rezolvarea unor probleme de matrice
aplicând întocmai algoritmii prezentaţi la orele de matematică fără a beneficia, din păcate,
de intuiţia umană, de „flerul” rezolvitorului ce poate găsi uneori soluţii mai rapide(de
exemplu calculul prin dezvoltare după o linie a unui determinant care are două linii sau
două coloane proporţionale, ori triunghiularizarea unui determinant Vandermonde).
IV.3.2 Aplicaţii interdisciplinare
Vom prezenta în continuare codurile sursă Pascal şi C++ ale unor programe ce
realizează operaţiile de bază(adunarea matricelor, înmulţirea cu scalar, înmulţirea
matricelor) şi programe/subprograme ce realizează calculul determinantului unei matrice,
determină rangul unei matrice, construieşte matricea inversă sau realizează discuţia naturii
unui sistem cu calculul soluţiei atunci când este compatibil determinat respectiv afişarea
unei soluţii pentru o instanţă dată a necunoscutelor secundare în cazul unui sistem
compatibil nedeterminat. Pentru determinant se vor prezenta două subprograme diferite de
8/19/2019 04 capitolul IV.pdf
41/65
Petru Florin Gavril Capitolul IV - Matrice
141
calcul – unul prin dezvoltare după o linie, celălalt prin transformarea în matrice
triunghiulară. Descrierea matematică a metodelor aplicată nu va fi reluată în secţiunile
următoare ele fiind detaliate în secţiunea IV.1 a capitolului curent. Ultima aplicaţie
descrisă, Parantezarea optimă a înmulţirii matricelor , va fi descrisă pe larg. Sursele au fost
realizate în orele de curs cu elevii din clasele IX-XII.
IV.3.2.1 Suma a două matrice
Pascal C++
program suma_matrice;
type
vector=array[1..10] of integer;
matrice=array[1..10] of vector;
var n,m:integer;
a,b,s:matrice;
procedure citire(var
a:matrice;n,m:integer);
var i,j:integer;
begin
writeln('Introduceti elementele
de pe fiecare linie separate prin
spatii!');
for i:=1 to n dofor j:=1 to m do
read(a[i,j]);
end;
procedure suma(a,b:matrice; var
c:matrice; n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
c[i,j]:=a[i,j]+b[i,j];
end;
procedure afisare(a:matrice;
n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
#include
void citire(int a[][10],int n,int m)
{int i,j;
cin>>"Introduceti elementele de pe
fiecare linie separate prin spatii!";
for(i=1;ia[i][j];
}
void suma(int a[][10],int b[][10],int
c[][10],int n, int m)
{int i,j;
for(i=1;i
8/19/2019 04 capitolul IV.pdf
42/65
Petru Florin Gavril Capitolul IV - Matrice
142
write(a[i,j]:5,' ');
writeln;
end;
end;
begin
write('Numarul de linii:');
readln(n);
write('Numarul de coloane:');
readln(m);
citire(a,n,m); citire(b,n,m);
suma(a,b,s,n,m);
writeln('Suma dintre A:');
afisare(a,n,m);
writeln('si B:'); afisare(b,n,m);
writeln('este C:');
afisare(s,n,m); readln;
end.
cin>>m;
citire(a,n,m);
citire(b,n,m);
suma(a,b,s,n,m);
cout
8/19/2019 04 capitolul IV.pdf
43/65
Petru Florin Gavril Capitolul IV - Matrice
143
procedure afisare(a:matrice;
n,m:integer);
var i,j:integer;
begin {afisare matrice a} end;
beginwrite('Numarul de linii:');
readln(n);
write('Numarul de coloane:');
readln(m);
citire(a,n,m);
write(’Valoare
scalar:’);readln(scalar);
writeln('Produsul scalar dintre
A:');
afisare(a,n,m); writeln('si
’,scalar,’este:’);
inmultire_scalar(a,scalar,n,m);
writeln('este :'); afisare(a,n,m);
readln; end.
int n,m, scalar;
cout
8/19/2019 04 capitolul IV.pdf
44/65
Petru Florin Gavril Capitolul IV - Matrice
144
s:=0;
for k:=1 to m do
s:=s+a[i,k]*b[k,j];
c[i,j]:=s;
end;end;
procedure afisare(a:matrice;
n,m:integer);
var i,j:integer;
begin
{afisare matrice a}
end;
begin
writeln(’Matricea A:’);
write('Numarul de linii:');
readln(n);
write('Numarul de coloane:');
readln(m); citire(a,n,m);
writeln(’Matricea B:’);
write('Numarul de coloane:');
readln(p); citire(b,m,p);
produs(a,b,pr,n,m,p);
writeln('Produsul dintre
A:');afisare(a,n,m);writeln('si
B:'); afisare(b,m,p); writeln('este
C:'); afisare(pr,n,p); end.
m);
{int i,j;
//afisare matrice a
}
void main(){int a[10][10],b[10][10],pr[10][10];
int n,m,p;
cout
8/19/2019 04 capitolul IV.pdf
45/65
Petru Florin Gavril Capitolul IV - Matrice
145
a:matrice;n:integer)
var i,j:integer;
begin
{citire matrice a}
end;function det
(a:matrice;n:integer;i,j,p:inte ger
):integer;
var b:matrice;
k,l,x:integer;
begin
if n=1
then
det:=a[1][1]
else
begin
x:=a[i,j];
{constr. complementul algebric al
a[i][j]}
for k:=1 to i-1 do
b[k]:=a[k];
for k:=i to n-1 do
b[k]:=a[k+1];
for l:=1 to n-1 do
for k:=j to n-1 do
b[l][k]:=b[l][k+1];
if j
8/19/2019 04 capitolul IV.pdf
46/65
Petru Florin Gavril Capitolul IV - Matrice
146
else p=-1;
writeln('det(A)=',detl(a,n,L,1,p));
end.
p=1;
else
p=-1;
cout
8/19/2019 04 capitolul IV.pdf
47/65
Petru Florin Gavril Capitolul IV - Matrice
147
Pascal
(secvenţă program)
C++
(secvenţă program)
program rang_matrice;
type
vector=array[1..10] of integer;
matrice=array[1..10] of vector;
var ms:matrice;
vlin,vcol,lr,cr:vector;
i,j,r1,r2,nlin,nlr,ncr,ec,nec:integ
er;
procedure cauta
(a:matrice;m,n:integer; var
x,y:integer);
var i,j:integer;
begin
{se cauta in matricea a un element
diferit de 0; coordonatele sale se
memoreaza in x si y}
end;
procedure
c_minor(vlin,vcol:vector;nlin:
integer;a:matrice;var
minor:matrice; m,n:integer);
var i,j:integer;
begin
for i:=1 to nlin do
for j:=1 to nlin do
minor[i,j]:=a[vlin[i],vcol[j]];
end;
procedure init (m,n:integer);
var i:integer;
begin{lr si cr retin liniile si
coloane ramase neselectate; initial
nu se alege nimic}
for i:=1 to m do
lr[i]:=i;
#include
int
ms[10][10],vlin[10],vcol[10],lr[10];
int nlin,nlr,ncr,ec,nec, cr[10];
void cauta(int a[][10],int m, int n,
int &x,int &y)
{int i,j;
/*se cauta in matricea a un element
diferit de 0; coordonatele sale se
memoreaza in x si y*/
}
void c_minor(int vlin[],int
vcol[],int nlin, int a[][10],int
minor[][10])
{int i,j;
for(i=1;i
8/19/2019 04 capitolul IV.pdf
48/65
Petru Florin Gavril Capitolul IV - Matrice
148
nlr:=m;
for i:=1 to n do
cr[i]:=i;
ncr:=n;
end;
procedure elimina(var v:vector;var
dv:integer;x:integer);
var j,i:integer;
begin{elimina o linie sau o coloana
din lr sau cr dupa selectare}
i:=1;
while (i
8/19/2019 04 capitolul IV.pdf
49/65
Petru Florin Gavril Capitolul IV - Matrice
149
vlin[nlin]:=l; vcol[nlin]:=c;
stoprang:=false;
if m>n then dmax:=n
else dmax:=m;
{se elimina linia si coloanapentru a nu fi reselectate}
elimina(lr,nlr,vlin[nlin]);
elimina(cr,ncr,vcol[nlin]);
while (nlin
8/19/2019 04 capitolul IV.pdf
50/65
Petru Florin Gavril Capitolul IV - Matrice
150
then nlin:=nlin+1;
j:=ncr+1;{iesire
fortata}
i:=nlr+1; end
elseif (i=nlr)and(j=ncr)
then begin
dmax:=0;
writeln('Am epuizat
toate posibilitatile de a gasi un
minor de dimensiune ',nlin,'
diferit de 0'); end
else
writeln('Construim un
alt minor de aceeasi dimensiune')
end;
if stoprang then
stoprang:=false;
end;
if not(stoprang) then
rang:=nlin-1;
end;
end;
procedure citire;
var i,j:integer;
begin
{citire matrice ms [ecXnec]}
end;
begin
clrscr; citire; init(ec,nec);
for i:=1 to ec do
begin for j:=1 to nec do
write(ms[i,j]:5);
writeln; end;
r1:=rang(ms,ec,nec);writeln('Rangul
matricei A=',r1); end.
if (stoprang)
stoprang=0;
}
if (!stoprang)
return nlin-1;}
}
void citire()
{int i,j;
//citire matrice ms [ecXnec]
}
void main()
{
citire();
init(ec,nec);
for (i=1;i
8/19/2019 04 capitolul IV.pdf
51/65
Petru Florin Gavril Capitolul IV - Matrice
151
IV.3.2.6 Determinarea inversei unei matrice
Algoritmul studiat la orele de algebră se aplică şi pentru determinarea inversei
unei matrice.
Pascal
(secvenţă program)
C++
(secvenţă program)
program determinare_inversabila;
type vector=array[1..5] of integer;
matrice=array[1..5] of vector;
linieadj=array[1..5] of real;
matrice_reala=array[1..5] of
linieadj;
varms,mt,madj:matrice;
minv:matrice_reala;
i,j,n,i1,j1,detms:integer;
procedure citire;
begin{citire matrice ms[nXn]}end;
procedure transpunere(var
a:matrice; n:integer);
var i,j,aux:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
begin
aux:=a[i,j];a[i,j]:=a[j,i];a[j,i]:=
aux;
end;
writeln;
writeln('Matricea transpusa
este....');
for i:=1 to n do
begin writeln;
for j:=1 to n do
write(a[i,j]:5);
end;
writeln;
#include
#include
int
ms[10][10],mt[10][10],madj[10][10];
float minv[10][10];
int i,j,n,i1,j1,detms;
void citire();
{
//citire matrice ms
}
void transpunere(int a[][10], int
n)
{int i,j,aux;
for( i=1;i
8/19/2019 04 capitolul IV.pdf
52/65
Petru Florin Gavril Capitolul IV - Matrice
152
end;
function determinant
(a:matrice;n:integer;
i,j,p:integer):integer;var b:matrice; k,l,x:integer;
begin
{vezi IV.3.4.1}
end;
procedure adjuncta;
var
i,j,i1,j1,i2,j2:integer;
calg:matrice;
begin
for i:=1 to n do
for j:=1 to n do
begin
for i1:=1 to i-1 do
calg[i1]:=mt[i1];
for i1:=i to n-1 do
calg[i1]:=mt[i1+1];
for i1:=1 to n-1 do
for j1:=j to n-1 do
calg[i1,j1]:=calg[i1,j1+1];
writeln('Calculam determinantul
complementului algebric al
elementului
aT(',i,',',j,')=',mt[i,j]);
writeln('Complementul algebric
este:');
for i2:=1 to n-1 do
begin
for j2:=1 to n-1 do
write(calg[i2,j2]:6);
writeln;
end;
if (i+j) mod 2=0
then
begin
n,int i, int j, int p)
{int b[10][10],k,l,x;
//vezi IV.3.4.1
}
void adjuncta();
{
int i,j,i1,j1,i2,j2, calg[10][10];
for(i=1;i
8/19/2019 04 capitolul IV.pdf
53/65
Petru Florin Gavril Capitolul IV - Matrice
153
madj[i,j]:=determinant(calg,n-
1,1,1,1);
writeln('Elementul
a*(',i,',',j,') este determinantul
complementului adica ',madj[i,j]);end
else
begin
madj[i,j]:=-
determinant(calg,n-1,1,1,1);
writeln('Elementul
a*(',i,',',j,') este determinantul
complementului cu semn schimbat
adica ',madj[i,j]);
end;
readkey;
end;
end;
procedure inversa(var
minv:matrice_reala; n:integer);
var i,j:integer;
begin
writeln;
writeln('Matricea adjuncta
este......');
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write(madj[i,j]:6);
end;
writeln;
writeln('Matricea inversa se
obtine inmultind A* cu inversul
determinantului metricei A');
for i:=1 to n do
for j:=1 to n do
begin
minv[i,j]:=madj[i,j];minv[i,j]:=minv[i,j]/detms;
cout
8/19/2019 04 capitolul IV.pdf
54/65
Petru Florin Gavril Capitolul IV - Matrice
154
end;
writeln;
writeln('Mat