MetodeNumerice Cap2
MetodeNumerice Cap2
MetodeNumerice Cap2
nr. experiment u1 Λ un Y
1 a11 Λ a1n b1
Μ Μ Λ Μ Μ
i ai1 Λ ain bi
Μ Μ Λ Μ Μ
n an1 Λ ann bn
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
37
ale procesului,
A = [a i ]j 1≤ i≤ n şi cu b =[b ]
i 1≤i ≤n vectorul valorilor mărimii de
1≤ j≤ n
ieşire, relaţia (2.0) se poate rescrie sub forma . (2.0(2.0), unde
x = [c1 c 2 c n ] T , T fiind notaţia pentru operaţia de transpunere
vectorială. Rezolvarea ecuaţiei rezultate constituie, în acest caz, o identificare a
modelului pentru regimul static de funcţionare a procesului. Problema aceasta
va avea o soluţie, dacă şi numai dacă liniile sau coloanele matricei
experimentelor [ A | b] sunt vectori liniari independenţi, după cum se va
specifica ulterior.
Metodele numerice de rezolvare a unui sistem de ecuaţii algebrice liniare se
împart în următoarele două categorii: metode directe şi metode iterative
(indirecte).
Metodele directe se bazează pe reducerea sistemului (2.1) la un sistem
echivalent, direct rezolvabil prin mijloace elementare. Principial, aceasta
foloseşte eliminarea progresivă a necunoscutelor, numită şi eliminare
gaussiană.
Practic, prin transformări elementare de echivalenţă, se aduce matricea A a
sistemului la anumite forme tipice:
a) forma superior triunghiulară:
u 11 u 1n
0
U= ;
0 0 u nn
b) forma inferior triunghiulară:
l11 0 0
L= .
0
l n1 l nn
Procedura de transformare se numeşte triangularizare. Astfel, se furnizează
soluţia exactă a sistemului de ecuaţii (2.0), în cazurile (ideale) în care erorile de
rotunjire sunt absente. Numărul de operaţii în virgulă mobilă, necesare
triangularizării unei matrice pătratice de ordin n, este de ordinul lui n 3 . De
aceea, aceste metode se recomandă pentru rezolvarea unor sisteme de ecuaţii
algebrice liniare de ordin mai mic decât 10 2 .
38 2. Sisteme determinate de ecuaţii algebrice liniare
Matricele [a 11 ] , …,
[a i j]1≤ i≤ n− 1 se numesc submatrice principale ale lui A
1≤ j≤ n − 1
sau minori principali directori.
Teoremă:
Dacă matricea A ∈ℜn×n are toate submatricele principale inversabile
(nesingulare), atunci există matricele L, D, U ∈ℜn×n astfel încât:
A =L⋅D⋅U (2.0)
unde L este o matrice inferior triunghiulară, D este o matrice diagonală şi U
este o matrice superior triunghiulară.
Se pot face, în cele ce urmează, următoarele observaţii:
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
39
aibă elementele:
a [i ,kk+1] = 0, i = k +1,..., n şi
a [i ,kj+1] =a [i ,kj] , i =1,..., n; j =1,..., k −1
atribuie A k +1 ← M k ⋅ A k
ι
În final se obţine matricea A n = U .
Acest algoritm parcurge ( n −1) etape, la fiecare etapă zerorizându-se
elementele de sub diagonala principală şi păstrând nealterate transformările care
s-au efectuat în coloanele anterioare ale matricei A.
Notând cu ξvectorul conţinând elementele coloanei k a matricei A k ,
anume:
ξ = [ξ1 ξk ξk +1 ξn ] T = [a 1[ k, k] a [kk, k] a [kk+]1, k a [nk, k] ] T
,
atunci matricea de transformare M k se construieşte astfel încât vectorul
M k ⋅ ξ să aibă elementele:
M k ⋅ ξ = [ξ 1 ξ k 0 0] T .
Se consideră vectorul m k de forma:
m k = [0 0 µk +1, k µn , k ] T ,
elementele µi , k , i = k +1,..., n numindu-se multiplicatori.
Vectorul m k se numeşte vector Gauss sau vector de multiplicatori.
Subvectorul care conţine strict numai multiplicatorii se numeşte subvector
Gauss:
t k =[µk +1, k µn ,k ] T .
Definiţie:
Matricea M k se numeşte matrice de transformare elementară de ordin n şi
indice k sau matrice Gauss şi este definită prin:
T
Mk = In − mk ⋅ ek ,
T
în care e k =[0 0 1 0 0] T , elementul egal cu 1 fiind în
poziţia k.
Definită astfel, matricea M k este o matrice inferior triunghiulară unitate,
este nesingulară şi deci admite inversă. Inversa acesteia este de forma:
M −k1 = I n + m k ⋅ e k .
T
(2.0)
T T
M k ⋅ ξ = ( I n − m k ⋅ e k ) ⋅ ξ = ξ − m k ⋅ e k ⋅ ξ = ξ − m k ⋅ ξk
= [ξ1 ξk ξk +1 − µk +1, k ⋅ ξk ξn − µn ,k ⋅ ξk ] T
ultimele n − k elemente trebuind a fi zerorizate. Presupunând că ξ k ≠ 0 şi
alegând µi , k = ξi / ξk , i = k +1,..., n , va rezulta:
M k ⋅ ξ =[ξ1 ξk 0 0] T .
Dacă la etapa k a triangularizării, elementul a [kk, k] ≠ 0 şi
µi , k = a [i ,kk] / a [kk, k] , i = k +1,..., n , atunci se obţine:
M k ⋅ c k ( A k ) = [a 1[ k, k] a [kk−]1, k a [kk, k] 0 0] T ,
în care c k ( A k ) reprezintă notaţia pentru coloana k a matricei A k . Acest
rezultat evidenţiază faptul că primele k elemente din coloana k a matricei A k
rămân neschimbate, iar ultimele n − k elemente devin zero. Elementul
ξk = a [kk, k] se numeşte pivot.
Observaţii:
1. În practică, pe calculator, etapa k descrisă mai sus se poate realiza testând
condiţia:
| a [kk, k] |> ε ,
în loc de a verifica a k , k ≠ 0 , unde ε este o constantă impusă, de valoare
[k ]
Concluzii:
a) Matricea M k lasă nemodificate primele k − 1 coloane ale matricei A k .
Considerând vectorul ηca fiind coloana numărul j a matricei A k :
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
43
η = c j ( A k ) = [* * 0 0 0] T , j < k , j =1,..., k −1 ,
1 j j+1 k n
atunci se obţine:
M k ⋅ c j (A k ) = [* * 0 0 0 − µk +1, k ⋅ 0 0 − µn , k ⋅ 0] T
1 j j+1 k
k +1 n
= c j (A k )
b) Matricea M k transformă coloana k a matricei A k , zerorizând liniile
k +1,..., n .
c) Matricea M k transformă coloanele k +1,..., n ale lui A k în liniile
k +1,..., n . Considerând vectorul ηca fiind coloana j a matricei A k :
η= c j ( A k ), j = k +1,..., n ,
atunci se obţine:
M k ⋅ c j ( A k ) = [* * a [kk+]1, j − µk +1, k ⋅ a [kk, ]j a [nk, ]j − µn , k ⋅ a [kk, ]j ] T ,
notaţia * semnificând faptul că elementele implicate rămân nemodificate.
Sumarizând, asupra matricei iniţiale A se aplică transformările M 1 , ...,
M n −1 , obţinându-se în final forma superior triunghiulară U:
M n −1 ⋅ ⋅ M 2 ⋅ M 1 ⋅ A = U . (2.0)
k =1
Matricea L este inferior triunghiulară unitate şi conţine în fiecare coloană, sub
elementul unitar de pe diagonala principală, subvectorii Gauss.
Prima sub-etapă de rezolvare a sistemului (2.0) este substituţia înainte
aplicată sistemului de ecuaţii L ⋅ y =b . Vectorul y rezultat este, de fapt,
vectorul care se obţine aplicând la stânga, în aceeaşi ordine, transformările
elementare care s-au aplicat matricei A:
y = L−1 ⋅ b = M n −1 ⋅ ⋅ M 2 ⋅ M 1 ⋅ b .
Exemplul 2.2:
44 2. Sisteme determinate de ecuaţii algebrice liniare
[k ] [ k]
|aik,k |= m a{ i,k | =|}ξak . x
≤≤ nik
k
Ak = 0
ik
n
|
k
Fig. 2.1 Principiul triangularizării cu pivotare parţială a unei matrice: pivotul se
găseşte în coloana k, liniile k ÷ n; k=1,...,n
Dacă i k ≠ k , elementul maxim în modul nu se găseşte pe diagonala
principală, atunci se interschimbă (permută) liniile k şi i k . Lucrul acesta se
realizează automat cu ajutorul unei matrice de permutare de linii Pk care
multiplică la stânga matricea A k : Pk ⋅ A k . Pentru matricea care rezultă astfel,
se determină apoi matricea de transformare M k ca şi în cazul traingularizării
simple, obţinând matricea:
A k +1 = M k ⋅ (Pk ⋅ A k ) .
În felul acesta, multiplicatorii calculaţi sunt subunitari în modul
| µi , k |≤1, i = k +1,..., n ,
iar algoritmul triangularizării devine stabil
numeric. Matricea M k ⋅ Pk se numeşte matrice de transformare elementară
stabilizată.
46 2. Sisteme determinate de ecuaţii algebrice liniare
Teoremă:
Dacă matricea A ∈ℜn×n este nesingulară, atunci există o matrice
P ∈ℜn×n , numită matrice generală de permutare de linii, astfel încât:
P ⋅ A = L' ⋅ U ,
în care U este o matrice superior triunghiulară şi L' este o matrice inferior
triunghiulară unitate. cu elementele | l i , j |≤1, i > j .
Demonstraţia acestei teoreme este constructivă, constituind însuşi algoritmul
de triangularizare cu pivotare parţială a unei matrice. Se poate face observaţia
că matricea L' conţine în coloana k, sub elementul de pe diagonala principală,
subvectorul Gauss (de la triangulaizarea simplă) având liniile permutate.
Algoritmul de triangularizare cu pivotare parţială este următorul:
atribuie A 1 ← A
pentru k = 1, n − 1 execută
[k] [k]
* determinare pivot ξ k ← a [i kk ],k astfel încât |aik,k |= m { ai,k | a } x
k i≤≤ n
dacă (i k ≠ k ) atunci
* determină Pk
altfel
atribuie Pk ← I n
ι
* calcul Pk ⋅ A k
* determinare matrice M k astfel încât matricea
A k +1 = M k ⋅ (Pk ⋅ A k ) să îndeplinească condiţiile de la
triangularizarea simplă
atribuie A k +1 ← M k ⋅ (Pk ⋅ A k )
ι
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
47
atribuie U ← A n
În ansamblu, asupra matricei A sunt aplicate următoarele transformări:
M n −1 ⋅ Pn −1 ⋅ ⋅ M 2 ⋅ P2 ⋅ M 1 ⋅ P1 ⋅ A = U . (2.0)
Exemplul 2.3:
Se consideră problema de la Exemplul 2.2. Se aplică, de această dată,
triangularizarea cu pivotare parţială. În acest caz, permutarea de linii intervine
la pasul al doilea al triangularizării, permutându-se liniile 2 şi 3: P = P2 . Se
obţine, în final:
7 10 −7 0 0
y =
2.5 ; U =
0 2 .5 5 ; x =
−1 .
6.002
0 0 6.002
1
[k ] [k ]
|aik,jk |= m a{ i,j | |a} x
k i≤≤ n
.
k j≤≤ n
Dacă acest element nu se află în linia şi/sau coloana k, atunci are loc
permutarea adecvată de linii şi/sau coloane în scopul aducerii acelui element pe
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
49
k
Ak = 0
ik
n
| |
k jk
Fig. 2.2 Principiul triangularizării cu pivotare totală a unei matrice: pivotul se
găseşte în submatricea determinată de coloanele k ÷ n şi liniile k ÷ n; k=1,...,n
[k ] [k ]
|aik,jk |= m a{ i,j | |a} x
k i≤≤ n
* determinare pivot ξ k ← a [i kk ], jk care satisface:
k ≤≤ nj
dacă (i k ≠ k ) atunci
* determinare Pk (permutarea liniilor i k şi k)
altfel
atribuie Pk ← I n
ι
dacă ( j k ≠ k ) atunci
* determinare S k (permutarea coloanelor j k şi k)
altfel
atribuie S k ← I n
ι
atribuie A 'k +1 ← Pk ⋅ A k ⋅ S k
* traingularizare matrice A 'k +1 :
A k +1 ← M k ⋅ A 'k +1 = M k ⋅ (Pk ⋅ A k ⋅ S k )
ι
atribuie U ← A n
Tabloul general al transformărilor este:
M n −1 ⋅ Pn −1 ⋅ ⋅ M 2 ⋅ P2 ⋅ M 1 ⋅ P1 ⋅ A ⋅ S1 ⋅ S 2 ⋅ ⋅ S n −1 = U . (2.0)
În relaţia (2.0) se notează cu S produsul S1 ⋅ S 2 ⋅ ⋅ S n −1 şi se ţine cont de
faptul că Pk ⋅ Pk = I n . Atunci relaţia (2.0) devine:
(M n −1 ⋅ Pn −1 ⋅ ⋅ M 2 ⋅ P2 ⋅ M 1 ⋅ P1 ⋅ P1 ⋅ P2 ⋅ ⋅ Pn −1 ) ⋅
(2.0)
(Pn −1 ⋅ ⋅ P1 ) ⋅ A ⋅ S = U
P ⋅ A ⋅ S = L' ⋅ U; unde : P = I n ; S = I n .
n
det( A) = ∏ u i ,i .
i =1
L⋅U ⋅X = B. (2.0)
Notând produsul U ⋅ X cu Y, relaţia (2.0) devine: L ⋅ Y = B sau, folosind
relaţiile (2.0), se poate scrie:
L ⋅ y k =b k , k =1,..., p
. (2.0)
U ⋅ x k =yk , k =1,..., p
Astfel, în prima fază se utilizează una din descompunerile L-U ale matricei
A, anume traingularizare simplă, triangularizare cu pivotare parţială sau
triangularizare cu pivotare totală, urmată de o a doua fază de rezolvare propriu-
zisă a unui sistem de tipul (2.0). În final, matricea inversă A −1 este egală cu
matricea ale cărei coloane sunt vectorii rezultaţi la faza a doua menţionată şi
anume: A −1 = X = [ x 1 x k x n ] . Detaliile acestei proceduri sunt
următoarele, în funcţie de tipul de triangularizare a matricei de inversat A caee
este folosit:
triangularizare simplă
1. descompunere L-U (relaţia (2.0));
2. L ⋅ y k = e k , e k =[0 0 1 0 0] T , unde 1 apare în poziţia
k;
U ⋅ x k = y k , k =1,..., n
b = b1 + i ⋅ b 2 , b1 , b 2 ∈ℜn×1 , (2.0)
z = z1 + i ⋅ z 2 , z 1 , z 2 ∈ ℜn×1 .
Înlocuind relaţiile (2.0) în (2.0) se obţine:
(A 1 + i ⋅ A 2 ) ⋅ ( z1 + i ⋅ z 2 ) = b1 + i ⋅ b 2 .
Efectuând calculele se obţine:
(A 1 ⋅ z 1 − A 2 ⋅ z 2 ) + i ⋅ (A 2 ⋅ z 1 + A 1 ⋅ z 2 ) = b1 + i ⋅ b 2 . (2.0)
Din relaţia (2.0), identificând partea reală şi partea imaginară pentru cei doi
membri ai egalităţii, se obţine:
A 1 ⋅ z 1 − A 2 ⋅ z 2 = b1 ,
A 2 ⋅ z1 + A1 ⋅ z 2 = b 2 ,
ceea ce se poate scrie sub formă matricială astfel:
A 1 − A 2 z 1 b1
⋅ =
. (2.0)
A 2 A 1 z 2 b 2
A1 − A2 z1
, cu
Notând cu C matricea de blocuri x vectorul şi
A 2 A 1 z 2
58 2. Sisteme determinate de ecuaţii algebrice liniare
b1
cu d vectorul , relaţia (2.0) se reduce la:
b 2
C ⋅ x =d . (2.0)
Rezolvând sistemul (2.0), se obţine o soluţie care se poate rescrie sub forma:
x = [x 1 xn x n +1 x 2⋅n ] T ,
iar soluţia sistemului complex este:
z = [x 1 x n ] T + i ⋅ [ x n +1 x 2⋅n ] T .
G = N −1 ⋅ P, G ∈ℜn×n .
proprii subunitare în modul, altfel spus, dacă rază spectrală a matricei G este
subunitară.
Observaţii:
1. Cu cât raza spectrală subunitară a matricei G este mai mică, cu atât viteza de
convergenţă a şirului de soluţii aproximative (2.0) va fi mai mare.
60 2. Sisteme determinate de ecuaţii algebrice liniare
Dacă această ultimă condiţie este îndeplinită, atunci metoda iterativă este
sigur convergentă şi nu mai este necesar să se calculeze valorile proprii ale
matricei G de caracterizare a convergenţei. Dacă, însă, condiţia suficientă nu
este satisfăcută, atunci nu se poate afirma nimic în ceea ce priveşte
convergenţa metodei şi se recurge la calculul valorilor proprii ale matricei G,
în scopul verificării condiţiei necesare şi suficiente.
În continuare se consideră următoarea descompunere a matrcii A a
sistemului (2.0):
A =L+D+U,
în care L este o matrice inferior triunghiulară cu diagonala principală nulă
având elementele de sub diagonala principală egale cu elementele matricei A de
acelaşi rang, D este o matrice diagonală având elementele de pe diagonala
principală egale cu elementele de pe diaonala principală a matricei A, iar U este
o matrice superior triunghiulară având elementele de deasupra diagonalei
principale egale cu elementele matricei A de acelaşi rang.
Se mai face presupunerea că elementele diagonalei principale a matricei A
sunt nenule. În caz contrar, se pot face permutări de linii şi/sau coloane astfel
încât să fie îndeplinită şi această condiţie.
n
a i,i ⋅ x [i k + 1] = − ∑ a i, j ⋅ x [jk ] + b i , i = 1,...,n
j= 1
. (2.0)
j≠ i
În relaţia (2.0) fiind implicate doar numere pozitive, dacă maximul lor este mai
mic decât 1, atunci toate sunt subunitare:
n n
∑ | ai,j / ai,i | < 1 ⇔ | ai,i |> ∑ | ai,j |. (2.0)
j= 1 j= 1
j≠ i j≠ i
N = L + D, P = −U .
Relaţia (2.0) se poate rescrie, în acest caz, sub forma:
[ k +1] [k]
( L + D) ⋅ x = −U ⋅ x + b, k = 0,1,... . (2.0)
Relaţia (2.0) se poate scrie, pe linii, sub forma:
i n
∑ a i, j ⋅ x [jk +1] = − ∑ a i, j ⋅ x [jk ] + b i , i = 1,..., n ,
j=1 j=i +1
.
Se poate demonstra că, şi în cazul metodei Gauss-Seidel, dacă matricea A
este diagonal dominantă pe linii, atunci metoda este convergentă.
În general, se demonstrează că între raza spectrală subunitară a matricei
G Jacobi = −D −1 ⋅ ( L + U ) şi raza spectrală subunitară a matricei
G Gauss −Seidel = −(L + D) −1 ⋅ U există relaţia:
[k] [k ]
, r =b −A ⋅ x
[k]
în care r se numeşte reziduu corespunzător iteraţiei [k].
În acest caz, se poate scrie:
x [ k +1] = x [ k ] + ( L + D) −1 ⋅ r [ k ] . (2.0)
Se transformă relaţia (2.0), înmulţind termenul care conţine reziduul cu un
parametru ω de accelerare a convergenţei:
[ k +1]
+ ω⋅ ( L + D) −1 ⋅ r
[k ] [k ]
x =x . (2.0)
Al doilea termen din suma exprimată în relaţia (2.0) poate fi interpretat ca un
factor de corecţie pentru estimaţia de la iteraţia [k]. Astfel, soluţia de la iteraţia
[ k + 1 ] se obţine prin corectarea soluţiei de la iteraţia anterioară [k], corecţia
realizându-se în funcţie de reziduul r [ k ] .
Relaţia (2.0) se poate rescrie sub forma:
[ k +1]
− ω ⋅ (L + D) −1 ⋅ (L + D) ⋅ x
[k] [k]
x =x
(2.0)
+ ω ⋅ [ −(L + D) −1 ⋅ U ⋅ x + (L + D) −1 ⋅ b]
[k]
A ⋅ x = b; ω⋅ A ⋅ x = ω⋅ b ⇒ ω ⋅ A = N (ω) − P (ω)
în care N(ω) = ω⋅ L + D şi P(ω) = (1 − ω) ⋅ D − ω⋅ U .
numar iteratii
numar minim
iteratii
ω
1 ωoptim 2
***
Algoritmii prezentaţi lucrează până când este îndeplinită o condiţie de tipul:
|| x [ s ] − x [ s −1] || α ≤ εx .
Se foloseşte, de regulă, norma infinit şi atunci condiţia de stop este:
max{| x [is ] − x [is −1] |} ≤ ε x .
1≤i ≤n
[ k +1]
Notând x n = x şi x v = x [ k ] , atunci următorul algoritm descrie
procedura generală aplicată în cazul unei metode iterative:
[ 0]
citeşte εx , x
atribuie x n ← x [ 0]
atribuie vn ∞ ← 1
atribuie iter ← 0
cât timp ( vn ∞ > ε x ) execută
atribuie x v ← x n
atribuie iter ← iter + 1
* calculează x n
* calculează vn ∞ = max
1≤i ≤ n
{| x n (i) − x v (i) |}
2.3 Rezolvarea sistemelor prin triangularizare cu pivotare parţială
65
Definiţie:
Oricare ar fi matricea A ∈ℜn×n , se defineşte numărul său de condiţie în
raport cu norma vectorială α , notat k α (A ) , ca fiind:
k α (A) = M / m ,
≠ 0x n ≠ 0x n
unde || . || α este una din normele vectoriale uzuale (a se vedea Anexa A).
Cum în general M ≥ m , rezultă că şi k α ( A) ≥ 1 . Se poate demonstra că
1 / m =|| A −1 || α . Astfel, se poate defini numărul de condiţie în raport cu
operaţia de inversare matricială ca fiind:
k α ( A) =|| A || α ⋅ || A −1 || α .
Numărul de condiţie depinde în general de norma matricială folosită. Între
diferitele numere de condiţie corespunzătoare aceleiaşi matrice există relaţii
care reflectă relaţiile dintre normele matriciale echivalente utilizate. Astfel, dacă
66 2. Sisteme determinate de ecuaţii algebrice liniare
II. Datele iniţiale ale problemei (2.0), A şi b , sunt exacte, dar procedura de
calcul a soluţiei este afectată de eroare (erori de rotunjire). În acest caz
se disting două situaţii, II.1 şi II.2, prezentate în cele ce urmează.
II.1 Apar erori datorate decompunerii gaussiene.
Se obţin următoarele rezultate:
• A = L ⋅ U , în cazul triangularizării simple;
• P ⋅ A = L' ⋅ U , în cazul triangularizării cu pivotare parţială;
• P ⋅ A ⋅ S = L' ⋅ U , în cazul triangularizării cu pivotare totală.
Plecând de la matricea A, căreia i se aplică o procedură de triangularizare, se
obţin matricele L ( L' ), U, P, (S). Dacă se efectuează operaţia inversă, se
obţine:
~
• L ⋅ U = A , corespunzător triangularizării simple;
~
• P −1 ⋅ L' ⋅ U = A , corespunzător triangularizării cu pivotare parţială;
~
• P −1 ⋅ L' ⋅ U ⋅ S −1 = A , corespunzător triangularizării cu pivotare totală,
~ ~
unde A este matricea iniţială plus o matrice de eroare: A = A + E c .
În continuare, discuţia se referă la descompunerea cu pivotare parţială şi la
cea cu pivotare totală, deoarece procedurile corespunzătoare lor se bazează pe
matrice stabilizate, iar algoritmii sunt stabili din punct de vedere numeric.
Având in vedere volumul de calcule implicat (numărul de operaţii în virgulă
mobilă), se poate afirma că dacă ordinul n al sistemului este mic, atunci:
|| E c || α <<|| A || α , iar dacă ordinul n este mare, atunci: || E c || α <|| A || α .
Aşadar, norma matricei de eroare E c se poate apropia de cea a matricei A a
sistemului. Ca urmare, o posibilitate de a caracteriza precizia descompunerii
este de a calcula raportul:
70 2. Sisteme determinate de ecuaţii algebrice liniare
~
|| E c || α / || A || α =|| A − A || α / || A || α = ε A ,c .
De regulă se foloseşte norma 1. În general, se demonstrează că:
ε x ≤ k α ( A ) ⋅ εA , c .
Dacă εA ,c ≅10 −d , d > 0 , atunci se poate afirma că triangularizarea
matricei A se face cu d cifre zecimale exacte. Rezultă că eroarea în soluţia
calculată satisface la relaţia:
εx ≤ k α (A ) ⋅ εA ,c ≤10 p −d =10 −( d −p ) .
unde lg(.) semnifică funcţia logaritm zecimal, iar [.] semnifică funcţia parte
întreagă.
O procedură de îmbunătăţire (rafinare) a soluţiei calculate este următoarea:
1. rezolvare sistem A ⋅ x = b folosind descompunerea L-U a matricei A şi
determinarea soluţiei ~ x;
2. calcul reziduu asociat: r = b − A ⋅ ~ x;
3. rezolvare sistem A ⋅ e = r folosind rezultatele descompunerii L-U a
matricei A şi determinarea lui e ;
~
4. rafinarea soluţiei: ~ x =~ x +e ;
~ ~
~ ~ ~
5. dacă || x || 1 ≠|| x || 1 atunci ~
x =~
x şi reluare de la pasul 2, altfel x = x .
6. stop
Îmbunătăţirea soluţiei se face într-un număr maxim de iteraţii notat ITMAX.
Dacă după ITMAX iteraţii, testul de la pasul 5 continuă să fie satisfăcut (şi se
reia de la pasul 2), acesta este un semn că matricea A este prost condiţionată
deoarece:
|| e ||1 / || ~
x ||1 ≤ k 1 (A ) ⋅ (|| r ||1 / || b ||1 ) .
atribuie ik ← imc ( jk )
atribuie ik ← ik + (k-1)
atribuie jk ← jk + (k-1)
dacă ( ik ~= k ) atunci
atribuie wmx ← zeros (1,n)
atribuie wmx ← a(k,:)
atribuie a(k,:) ← a(ik,:)
atribuie a(ik,:) ← wmx
atribuie t ← b(k)
atribuie b(k) ← b(ik)
atribuie b(ik) ← t
dacă ( jk ~= k ) atunci
atribuie zmx ← zeros (n,1)
atribuie zmx ← a(:,k)
atribuie a(:,k) ← a(:,jk)
atribuie a(:,jk) ← zmx
atribuie it ← iord(k)
atribuie iord(k) ← iord(jk)
atribuie iord(jk) ← it
* triangularizare:
dacă ( abs ( a(k,k) ) > EPS ) atunci
atribuie a(k+1:n,k) ← a(k+1:n,k) / a(k,k)
atribuie a(k+1:n,k+1:n) ← a(k+1:n,k+1:n) –
a(k+1:n,k) * a(k,k+1:n)
atribuie b(k+1:n) ← b(k+1:n) – a(k+1:n,k) * b(k)
atribuie a(k+1:n,k) ← zeros (n-k,1)
altfel
scrie ‘pivot nul sau foarte mic’
scrie ‘STOP: algoritm’
* STOP program (funcţia MATLAB return)
scrie ‘k = ’, k
scrie ‘a = ’, a
scrie ‘b = ’, b
6. Faza a-II-a: calcul soluţie sistem:
* substituţie înapoi:
74 2. Sisteme determinate de ecuaţii algebrice liniare
10 −7 0 7
I. n = 3; a =− 3 2 . 099 6 ; b = 3.901
;
5 − 1 5
6
3 2 100 105
II. n = 3; a =− 1 3 100 ; b = 102
;
1 2 − 1
2
0.03 0.02 1.00 1.05
a = − 0.01 0.03 1.00 ; b =
1.02
0.50
1.00 − 0.50 1.00
(acelaşi exemplu, cu scalare pe linii)
1 −2 3 5
−1 b =
III. n = 3; a = 2 4 ; 7 ;
−1 −14 11
2
0 2 0 1 7
2 2 3 2 − 2
IV. n = 4; a = ; b = .
4 −3 0 1 − 7
6 1 −6 − 5 6
1 2 5 3 1 −1
2 2 6 4 2 − 2
II. A = , B = .
3 2 7 5 3 − 3
4 2 8 6 4 − 4
Exemple numerice:
6 0 0 6 0 0
I. A =
2 1 0
; II. A =
1 0 0
.
1 −7 1
2 1 − 8
82 2. Sisteme determinate de ecuaţii algebrice liniare
Exemple numerice:
1 2 3 4
2 2 2 2
I. A = ; II.
5 6 7 8
3 4 5 6
1 4 − 2 3
2 2 0 4
A = .
3 0 −1 2
1 2 2 − 3
1 6 1 6 11
2 7 2 7 12
I. A = 3 8 ; II. A = 3 8 13 .
4 9 4 9 14
5 10
5 10 15
P2.8. Să se realizeze programul pentru estimarea numărului de condiţie al unei
matrice pătratice reală, de ordin n, folosind relaţia de calcul:
k 1 (A) =|| A ||1 ⋅ || A −1 ||1 .
1 2 3 1 1 1 / 2 1 / 3 1 / 4
4 2 0 2 1 / 2 1 / 3 1 / 4 1 / 5
I. A = ; II. A =
− 2 0 −1 2 1 / 3 1 / 4 1 / 5 1 / 6
3 4 2 − 3 1 / 4 1 / 5 1 / 6 1 / 7
.
P2.9. Se consideră sistemul de ecuaţii algebrice liniare:
4 3 2
A ⋅ x = b, A = 2 3 4, a ∈ℜ .
2 4 a
Care este cea mai mică valoare a parametrului a pentru care metoda
iterativă Jacobi va fi convergentă?
P2.10. Să se realizeze programul pentru rezolvarea unui sistem determinat de
ecuaţii algebrice liniare, de ordinul n, prin metoda iterativă a
suprarelaxării succesive de tip Gauss-Seidel. Considerând ω drept
parametru de accelerare a convergenţei metodei iterative, ω∈[1,2] ,
programul va determina, crescând succesiv parametrul ω cu pasul 0.1
, valoarea optimă ωoptim pentru care numărul de iteraţii este minim.
Exemplu numeric:
84 2. Sisteme determinate de ecuaţii algebrice liniare
2 1 1 5
A =
2 2 1
, b =
9 .
1 1 3
6