Sunteți pe pagina 1din 20

ERORI DE TRUNCHIERE

Erorile produse ca urmare a calculului în virgulă mobilă sunt erori de trunchiere. Acestea
apar ca urmare a faptului că numerele sunt reprezentate cu un număr finit de zecimale.

Notaţii
x - valoarea exactă a unei mărimi;
x - valoarea aproximativă a aceleiaşi mărimi;
ex - eroarea de
d trunchiere.
t hi

Cu aceste notaţii,
notaţii este valabilă relaţia: x = x + ex

Eroarea produsă la operaţia de adunare: x + y = x + y + ex + e y ⇒ ex + y = ex + e y

Eroarea produsă la operaţia de scădere: x − y = x − y + ex − e y ⇒ ex − y = ex − e y


Eroarea produsă la operaţia de înmulţire

( )( )
x ⋅ y = x + ex ⋅ y + e y = x ⋅ y + x ⋅ e y + y ⋅ ex + ex ⋅ e y

neglijând termenul ex ⋅ e y obţinem e x⋅ y = x ⋅ e y + y ⋅ e x

Observaţie
La operaţia de înmulţire eroarea produsă depinde nu numai de erorile termenilor care
intervin în operaţia respectivă dar şi de valoarea acestora.

E
Eroarea produsă
d ă lla operaţia
i de
d împărţire
î ă i
ey
1−
x x + ex x + ex 1 x + ex y x + ex x + ex ⎛ ey ⎞
= = =⋅ ⋅ = ⋅ ≅ ⋅ ⎜⎜1 − ⎟⎟
y y + ey ⎛ ey ⎞ e y y ⎛ ey ⎞
2
y y ⎝ y⎠

y ⋅ ⎜1 + ⎟ ⎟ 1 + 1 − ⎜⎜ ⎟⎟
⎝ y⎠ y
⎝ y⎠
2
⎛ ey ⎞
⎜ ⎟ ≈0
În şirul precedent de egalităţi s-a neglijat termenul: ⎜ y ⎟
⎝ ⎠
x x ex x ex ⋅ e y ex ⋅ e y
= + − 2 ⋅ ey − 2
neglijând termenul:
2
y y y y y y

se obţine următoarea expresie pentru eroarea de trunchiere produsă la operaţia de împărţire:

ex x
ex = − 2
⋅ ey
y
y y
Observaţie
La operaţia de împărţire eroarea produsă depinde nu numai de erorile termenilor care
intervin în operaţia respectivă dar şi de valoarea acestora,
acestora cu cât împărţitorul este mai
mic cu atât valoarea erorii este mai mare.
Ca urmare rezultă că în procesul de inversare a unei matrici este de preferat ca la fiecare
etapă să se rearanjeze matricea, prin permutări de linii şi coloane, astfel încât termenul
de pe diagonală să fie cel cu valoarea absolută maximă la etapa respectivă. Acest proces
poartă denumirea de pivotare şi poate fi efectuat în două moduri:
→ Pivotare parţială, dacă la fiecare etapă se determină valoarea maximă de pe
coloana corespunzătore etapei respective
→ Pivotare totală,
totală dacă la fiecare etapă se determină valoarea maximă din întreaga
matrice.
Există o categorie de matrici numite slab condiţionate care se caracterizează prin aceea că
o mică modificare asupra valorii unui termen al matricii determină o modificare importantă
asupra termenilor matricii inverse. Aceste matrici se caracterizează prin aceea că valoarea
determinantului matricii este mult mai mic decât termenii matricii.
Exemplu:
⎡ 100 10 ⎤ ⎡ 0,2 − 2 ⎤
A=⎢ ⎥ ; A = 5 ; A −1 = ⎢ ⎥
⎣ 9,5 1 ⎦ ⎣ − 1,9 20 ⎦

presupunem că se produce o mică modificare a unuia dintre termenii matricii:

⎡ 100 10 ⎤ −1 ⎡ 1 − 10 ⎤
A=⎢ ⎥ ; A =1 ; A =⎢ ⎥
⎣ 9,9 1 ⎦ ⎣ − 9,9 100 ⎦
se poate constata o modificare semnificativă a termenilor matricei inverse.

Erorile de trunchiere pot determina obţinerea unor rezultate complet diferite faţă de
valoarea reală a matricii inverse. Ca urmare pentru calculul matricii inverse se va utiliza un
algoritm iterativ care permite
i efectuarea
f corectării matricii inverse până
â cândâ se obţine
rezultatul cu precizia dorită.
ALGORITMUL LUI HOTTELING PENTRU CALCULUL INVERSEI UNEI
MATRICI

Algoritmul se bazează pe efectuarea unei operaţii de împărţire prin operaţia de înmulţire.


V exemplifica
Vom lifi algoritmul
l i l pentru cazull numerelor
l reale:
l

Presupunem că se cunoaşte o primă


i aproximare
i (1/a
1/ ) a inversului
i l i reall a pe care
l i numărului
o notăm d1. Condiţia de convergenţa a algoritmului este ca:

e1 = 1 − a ⋅ d1 < 1

Algoritmul constă în determinarea unui şir de aproximări d2, d3, d4, … a inversului
numărului a astfel încât erorile să tindă spre zero.

Pentru a realiza condiţia cerută este necesar să se determine o relaţie de recurenţă astfel încât
eroarea la un moment dat să poată fi exprimată sub forma unei puteri a lui e1. Aceasta
deoarece:
lim e1k = 0
k →∞
Se pune condiţia: e2 = 1 − a ⋅ d 2 = e12
di care rezultă
din l succesiv:
i

e12 = e1 ⋅ e1 = (1 − a ⋅ d1 ) ⋅ (1 − a ⋅ d1 ) = 1 − 2 ⋅ a ⋅ d1 + a 2 ⋅ d12
adică:
di ă
e12 = 1 − a ⋅ d1 ⋅ [1 + (1 − a ⋅ d1 )] = 1 − a ⋅ d1 ⋅ (1 + e1 )
şi
d 2 = d1 ⋅ (1 + e1 )

Procesul de determinare al inversului unui număr va fi următorul:


d 2 = d1 ⋅ (1 + e1 ) ⇒ e2 = 1 - a ⋅ d 2

d 3 = d 2 ⋅ (1 + e2 ) ⇒ e3 = 1 - a ⋅ d 3
……………………..

d k = d k −1 ⋅ (1 + ek −1 ) ⇒ ek = 1 - a ⋅ d k

care continuă până când ek devine mai mic decât o valoare impusă.
Pentru aplicarea algoritmului în cazul matricilor se va utiliza noţiunea de normă a unei
matrici, definită astfel:

⎛ n ⎞
N [ A] = max ⎜
{ ⎜ ∑ ai, j
⎟ Dacă N [A] < 1 atunci lim N [A]n = 0
i ⎝ j =1
⎟ n →∞

Pentru a calcula inversa unei matrici utilizând algoritmul lui Hotteling se va proceda după
cum urmează:
Presupunem:
A - Matricea pentru care dorim să calculăm inversa
D1 - Prima aproximare a inversei matricii, determinată cu algoritmul descris anterior

Eroarea care se produce în acest caz se va calcula astfel:

E1 = U − A ⋅ D1

în care s-a notat cu U matricea unitate.


Următoarele aproximări ale matricii inverse se vor obţine astfel:

D2 = D1 ⋅ (U + E1 ) ⇒ E 2 = U - A ⋅ D2

D3 = D2 ⋅ (U + E 2 ) ⇒ E3 = U - A ⋅ D3
……………………….

Dk = Dk −1 ⋅ (U + E k −1 ) ⇒ E k = U - A ⋅ Dk

Procesul se întrerupe în momentul în care este îndeplinită relaţia N [E k ] < ε

în care ε este o valoare impusă iniţial.

Concluzie
Calculul inversei unei matrici se va face pparcurgând
g următoarele etape:
p
¾ determinarea unei prime aproximări a inversei prin algoritmul de inversare
direct, de preferat utilizând pivotarea parţială sau totală;
¾ corectarea valorii inversei prin parcurgerea algoritmului lui Hotteling.
REZOLVAREA SISTEMELOR DE ECUAŢII LINIARE

Există două metode de rezolvare a sistemelor de ecuaţii liniare

Metode directe
Constau în obţinerea soluţiei printr-un algoritm cu un număr finit de paşi (de regulă
egal cu numărul de ecuaţii ale sistemului) prin aducerea matricii de coeficienţi ai
sistemului
it l i la
l o formă
f ă particulară
ti l ă ( ttriunghiulară
i hi l ă sau matrice
t i unitate).
it t )
În cazul sistemelor slab condiţionate metoda se aplică repetat până la obţinerea soluţiei cu
o pprecizie impusă
p iniţial.
ţ

Metode iterative (indirecte)


( )
Constau în determinarea soluţiei într-un număr de paşi care depinde de precizia cu
care se efectuează calculul.
METODE DIRECTE. Metoda lui Gauss
Metoda are drept p rezolvarea sistemului: A ⋅ X = B
p scop
Algoritmul constă în aducerea matricii de coeficienţi A la forma de matrice unitate
modificând simultan matricea B, a termenilor liberi.
Se poate determina o secvenţa de matrici elementare cu ajutorul căreia, prin preamplificare,
matricea A să fie adusă la forma de matrice unitate:
E n ⋅ E n −1 L E 2 ⋅ E1 ⋅ A ⋅ X = E n ⋅ E n −1 L E 2 ⋅ E1 ⋅ B
rezultă că:
X = E n ⋅ E n −1 ⋅ ⋅ ⋅ ⋅E 2 ⋅ E1 ⋅ B
Algoritmul de rezolvare a sistemului va produce următoarea transformare:

⎡ a1,1 ⋅ ⋅ ⋅ ⋅ a1, n b1 ⎤ ⎡1 ⋅ ⋅ ⋅ ⋅ 0 b1( n ) ⎤


⎢ ⎥ ⎢ ⎥
⎢ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥ ⎢⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥
⎢ ⋅ ⎢ ⎥
⎢ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥⎥ ⇒ ⎢⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥
⎢ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥ ⎢ ⎥
⎢ ⎥ ⎢⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎥
⎢ ⋅ ⋅ ⋅ ⋅ a n, n bn ⎦⎥ ⎢ ⋅ ⋅ ⋅ ⋅ 1 bn( n ) ⎥⎦
⎣ a n ,1 ⎣0

Ca urmare soluţia sistemului va fi: xi = bi( n ) , i = 1, n


Se poate reduce numărul de operaţii dacă aducem matricea A la forma triunghiulară.
Acest algoritm nu este suficient pentru sistemele slab condiţionate. Este necesară aplicarea
repetată a metodei directe.
directe Succesiunea
S ccesi nea calculelor
calc lelor se vaa desfăşura
desfăş ra în etape,
etape după
d pă ccum
m se
prezintă în continuare:
Etapa 0
Se rezolvă, cu metoda Gauss, sistemul A ⋅ X = B obţinându-se soluţia: X 1

Etapa 1
Se corectează soluţia obţinută la etapa precedentă, astfel:
Se înlocuieşte soluţia în sistem: A ⋅ X 1 − B = E1
în care: E1 este matricea de eroare.
Se rescrie sistemul sub forma: A ⋅ X 1 − E1 = B
Prin rezolvarea ecuaţiei (numită ecuaţie de corecţie): A ⋅ δX 1 = − E1
se obţine matricea δX 1 care conţine corecţiile care trebuiesc aplicate soluţiilor. Ca
urmare ecuaţia iniţială se va putea scrie sub forma:

A ⋅ X 1 + A ⋅ δX 1 = B ⇒ A ⋅ ( X 1 + δX 1 ) = B
Dupăă Etapa
D E 11, soluţiile
l iil vor fi formate
f din
di soluţiile
l iil obţinute
bi la
l Etapa
E 0 la
l care se adaugă
d ă
corecţiile obţinute la Etapa 1, prin rezolvarea ecuaţiei de corecţie, adică:

X = X 1 + δX 1

Dacă erorile sunt mai mici decât o valoare impusăp ţ ε, atunci pprocedeul de
iniţial
corectare se încheie, în caz contrar se efectuează o noua etapă de corecţie.
Procedeul se reia până când erorile obţinute devin mai mici decât valoarea ε impusă
i iţi l În
iniţial. Î final
fi l soluţia
l ţi sistemului
it l i se va obţine
bţi subb forma:
f

X = X 1 + δX 1 + ⋅ ⋅ ⋅ + δX k

în care k reprezintă numărul de etape de corectare efectuate.


METODE ITERATIVE
Aceste metode
A d sunt convergente
t numaii pentru sistemele
i l de
d ecuaţii
ii a căror
ă matrice
i ded
coeficienţi este diagonal dominantă.
Prin matrice diagonal
g dominantă se înţelege
ţ g matricea la care termenii de p
pe diagonală
g au
valorile absolute mai mari sau cel mult egale cu suma valorilor absolute a termenilor
aflaţi pe aceeaşi linie cu ei. Adică este îndeplinită condiţia:

j =n
ai, i ≥ ∑ ai, j , i = 1, n
j =1
j i
j≠

În cazul tuturor metodelor iterative algoritmul porneşte de la o soluţie a sistemului aleasă


în mod arbitrar, de obicei soluţia nulă:

xi(0) = 0 , i = 1, n

Scopul metodelor este acela de a corecta succesiv soluţia iniţială până la obţinerea
soluţiei reale a sistemului.
sistemului
Metoda Jacobi
Aplicarea
p metodei ppresupune
p scrierea sistemului sub o formă în care din fiecare ecuaţie
ţ se
explicitează succesiv câte o necunoscută. Ca urmare, dacă sistemul iniţial este:

n
∑ ai, j ⋅ x j = bi , i = 1, n ⎛ ⎞
j =1 1 ⎜ j =n ⎟
acesta se rescrie sub forma: xi = ⋅ ⎜ bi − ∑ ai , j ⋅ x j ⎟ , i = 1, n
ai, i ⎜ ⎟
⎜ j =1 ⎟
⎝ j ≠i ⎠
O iteraţie, k, a metodei Jacobi constă în determinarea soluţiei sistemului, corespunzătoare
acelei iteraţii,
iteraţii prin înlocuirea în sistem a soluţiilor determinate la iteraţia precedentă.
precedentă
La prima iteraţie se utilizează soluţia de start. Ca urmare pentru o iteraţie oarecare k, se poate
scrie:
⎛ ⎞
1 ⎜ j =n ⎟
(k )
xi = ⋅ ⎜ bi − ∑ ai , j ⋅ x j
( k −1)
⎟ , i = 1, n
ai , i ⎜ ⎟
⎜ j =1 ⎟
⎝ j ≠i ⎠
Algoritmul se încheie atunci când diferenţa dintre două soluţii determinate succesiv este
mai mică decât o valoare impusă
p iniţial,
ţ , adică este îndeplinită
p condiţia:
ţ

xi( k ) − xi( k −1) ≤ ε , i = 1, n


M t d G
Metoda Gauss-Seidel
S id l

Metoda reprezintă o îmbunătăţire a metodei Jacobi în sensul că la iteraţia k, valorile


necunoscutelor sunt calculate nu numai funcţie de valorile determinate la iteraţia
precedentă dar şi de cele calculate la iteraţia în curs.

Ca urmare, relaţia de calcul a valorilor necunoscutelor devine:

⎛ ⎞
1 ⎜ j =i −1 j =n ⎟
xi( k ) = ⋅ ⎜ bi −
ai, i ⎜
∑ ai, j ⋅ x (jk ) − ∑ ai, j ( k −1)
⋅xj ⎟ ,

i = 1, n
⎜ j =1 j =i +1 ⎟
⎝ ⎠
Metoda Southwell

Aplicarea metodei presupune scrierea sistemului de ecuaţii A⋅ X = B sub o formă


în care din fiecare ecuaţie a fost separată o necunoscută. Ca urmare forma iniţială a
sistemului:
n
∑ ai, j ⋅ x j = bi , i = 1, n
j =1

va suferi următoarele transformări:


- se împarte
î t fiecare
fi ecuaţie
ţi la
l coeficientul
fi i t l de
d pe diagonala
di l principală:
i i lă
n ai, j bj
xi + ∑ ⋅xj − =0
j =1 a i , i ai, i
j ≠i
n
- după care
care, sistemul se va scrie sub forma: − xi + ∑ bi , j ⋅ x j + ci = 0
j =1
j ≠1

în care ss-aa notat:


ai, j bi
bi , j = − ci =
ai, i ai, i
Algoritmul constă în parcurgerea mai multor etape plecând de la o soluţie iniţială aleasă în
mod arbitrar. De regulă se aleg ca valori iniţiale valorile nule:
xi(0) = 0 , i = 1, n
Etapa 1:
Se înlocuiesc valorile iniţiale în sistem, ca urmare din fiecare ecuaţie va rezulta o valoare
numită rest. Valorile acestora se vor obţine cu relaţiile:

n
ri(1) = − xi(0) + ∑ bi , j ⋅ x (j0) + ci
j =1
j ≠i
Se determină valoarea absolută maximă dintre resturile calculate anterior:

rm(1) = max ri(1) , i = 1, n


i

valoarea astfel determinată va corecta valoarea necunoscutei având indicele corespunzător

x m(1) = x m( 0) + rm(1)
(1)
După ce a fost obţinută valoarea x m se recalculează resturile utilizând această valoare a
necunoscutei, se obţin astfel valori noi pentru celelalte n-1 resturi. Din nou se alege
valoarea maximă dintre cele n-1 resturi corectându-se necunoscuta corespunzătoare.
P
Procedeul
d l se repetă,
tă în
î acelaşi
l i mod,
d până
â ă la
l corectarea
t tuturor
t t necunoscutelor,
t l după
d ă care
se trece la etapa următoare.
Etapa k: Se înlocuiesc valorile necunoscutelor obţinute la etapa precedentă în sistem, se obţin
resturile:
n
ri( k ) = − xi( k −1) + ∑ bi , j ⋅ x (jk −1) + ci
j =1
j ≠i

Se determină restul cu valoarea absolută cea mai mare:

rm( k ) = max ri( k ) , i = 1, n


i

valoarea astfel determinată va corecta valoarea necunoscutei având indicele corespunzător

(k )
xm (0)
= xm + rm( 1 ) + rm(2 ) + ⋅ ⋅ ⋅ + rm(k )
(k )
După ce a fost obţinută valoarea x m se recalculează resturile utilizând această valoare a
necunoscutei se obţin astfel valori noi pentru celelalte n
necunoscutei, n-11 resturi şi se alege valoarea
maximă corectându-se necunoscuta corespunzătoare. Procedeul se repetă, în acelaşi mod,
până la corectarea tuturor necunoscutelor. Algoritmul se încheie atunci când diferenţa dintre
două so
soluţii
uţ determinate
dete ate succesiv
succes v este mai a mică
că decât o valoare
va oa e impusă
pusă iniţial,
ţ a , adică
ad că este
îndeplinită condiţia:
xi( k ) − xi( k −1) ≤ ε , i = 1, n
Exemplu
⎧⎪10 ⋅ x1 − 2 ⋅ x 2 = 8
S consideră
Se id ă sistemul:
i l ⎨
⎪⎩ − x1 + 10 ⋅ x 2 = 9

Si t
Sistemul
l are, evident,
id t soluţiile:
l ţiil x1 = 1 , x2 = 1.
Rezolvarea sistemului prin metoda Southwell presupune scrierea acestuia, succesiv, în
următoarele forme:

⎧⎪ x1 − 0,2 ⋅ x 2 = 0,8

⎪⎩− 0,1 ⋅ x1 + x2 = 0,9

Respectiv:

⎧⎪− x1 + 0,2 ⋅ x 2 + 0,8 = 0



⎪⎩− x 2 + 0,1 ⋅ x1 + 0,9 = 0

Se aleg ca valori iniţiale ale soluţiilor valorile: x1 = 0 , x2 = 0 .


Etapa 1. ⎧⎪− x1 + 0,2 ⋅ x 2 + 0,8 = 0

⎪⎩− x 2 + 0,1 ⋅ x1 + 0,9 = 0
Se înlocuiesc valorile iniţiale
ţ în sistem,, ⎧⎪r (1) = 0,8
1
⎨ (1)
se obţin următoarele valori pentru resturi: ⎪⎩r2 = 0,9
Se determină valoarea absolută maximă dintre resturile calculate anterior, care va fi:
r2(1) = 0,9
Valoarea astfel determinată va corecta valoarea necunoscutei având indicele corespunzător:

x 2(1) = x 2(0) + r2(1) = 0 + 0,9 = 0,9


Se recalculează restul r1(1) utilizând această valoare a necunoscutei x2 , şi se obţine:

r1(1) = 0 + 0,2 ⋅ 0,9 + 0,8 = 0,98


Deoarece este singurul rest rămas, nu mai este necesară determinarea unei valori maxime. Ca
urmare, va fi corectată
t tă valoarea
l necunoscutei
t i corespunzătoare,
ăt adică
di ă x1, se obţine:
bţi

x1(1) = 0 + 0,98
Ca urmare la încheierea Etapei 1 se obţin ⎧⎪ x (1) = 0,98
1
⎨ (1)
următoarele valori ale soluţiilor sistemului: ⎪⎩ x 2 = 0,9
Se constată că valorile obţinute s-au apropiat semnificativ de soluţiile sistemului.
sistemului Se pot
parcurge etape suplimentare până la obţinerea soluţiilor cu precizia dorită.

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