cnacap2 erori de calcul +×i aproxim¦éri

15
1 Capitolul 2 ERORI DE CALCUL ŞI APROXIMĂRI - APROXIMĂRI ÎN MATLAB „Daca nu ştii unde vrei sa ajungi nu are importanţă pe ce drum o iei.” (anonim) 2.1. Reprezentări ale numerelor utilizate în calculator Din cele mai vechi timpuri, oamenii utilizează sistemul zecimal de reprezentare a numerelor, sistem de numeraţie cu baza 10. Pentru reprezentarea oricăror numere, indiferent cât de mari, se folosesc cele 10 cifre cu valori diferite. Simbolurile acestor cifre, folosite actual în întreaga lume, sunt denumite de europeni cifre arabe, iar de arabi cifre indiene, după culturile de la care fiecare le-au preluat. Sistemul zecimal este un sistem de numerație pozițional, în care poziția fiecărei cifre indică înmulțirea valorii cifrei respective cu o putere a lui 10. Fiecare poziție indică o valoare de 10 ori mai mare decât poziția din dreapta sa. Dacă există parte fracționară, ea urmează după număr, după un separator zecimal, care în România este virgula. Limbajul Matlab utilizează notaţia zecimală iar ca separator zecimal se foloseşte punctul. Tabel 2.1 Corespondenţa între sistemele de numeraţie Zecimal 0 1 2 3 4 5 6 7 8 9 10 Binar 0 1 10 11 100 101 110 111 1000 1001 1010 Chiar dacă nu este evident acest lucru, majoritatea computerelor utilizează la efectuarea calculelor sistemul binar de reprezentare a numerelor, sistem în care există doar două cifre posibile, 0 și 1. Computerul primeşte datele de intrare scrise în sistem zecimal, face transformările corespunzătorea, execută operaţiile aritmetice în sistem binar şi înainte de a afişa rezultatul îl transformă în baza zece. Cea mai fiabilă metodă de stocare a datelor de calculator și respectiv de prelucrare se bazează pe sistemul binar deoarece 1 bit, celula de memorie cu capacitate minimă care reprezintă unitatea elementară de informaţie care poate fi ori un 0, ori un 1 şi anume: "celula este magnetizată sau nu este magnetizată" sau "trece curent sau nu trece

Upload: abziulian

Post on 19-Jan-2016

42 views

Category:

Documents


2 download

DESCRIPTION

n

TRANSCRIPT

Page 1: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

1

Capitolul 2

ERORI DE CALCUL ŞI APROXIMĂRI -APROXIMĂRI ÎN MATLAB

„Daca nu ştii unde vrei sa ajungi nu are importanţă pe ce drum o iei.”

(anonim)

2.1. Reprezentări ale numerelor utilizate în calculator

Din cele mai vechi timpuri, oamenii utilizează sistemul zecimal de

reprezentare a numerelor, sistem de numeraţie cu baza 10. Pentru reprezentarea

oricăror numere, indiferent cât de mari, se folosesc cele 10 cifre cu valori diferite.

Simbolurile acestor cifre, folosite actual în întreaga lume, sunt denumite de europeni

cifre arabe, iar de arabi cifre indiene, după culturile de la care fiecare le-au preluat.

Sistemul zecimal este un sistem de numerație pozițional, în care poziția fiecărei cifre

indică înmulțirea valorii cifrei respective cu o putere a lui 10. Fiecare poziție indică

o valoare de 10 ori mai mare decât poziția din dreapta sa. Dacă există parte

fracționară, ea urmează după număr, după un separator zecimal, care în România

este virgula. Limbajul Matlab utilizează notaţia zecimală iar ca separator zecimal

se foloseşte punctul.

Tabel 2.1 Corespondenţa între sistemele de numeraţie

Zecimal 0 1 2 3 4 5 6 7 8 9 10

Binar 0 1 10 11 100 101 110 111 1000 1001 1010

Chiar dacă nu este evident acest lucru, majoritatea computerelor utilizează

la efectuarea calculelor sistemul binar de reprezentare a numerelor, sistem în care

există doar două cifre posibile, 0 și 1. Computerul primeşte datele de intrare scrise în

sistem zecimal, face transformările corespunzătorea, execută operaţiile aritmetice în

sistem binar şi înainte de a afişa rezultatul îl transformă în baza zece. Cea mai fiabilă

metodă de stocare a datelor de calculator și respectiv de prelucrare se bazează pe

sistemul binar deoarece 1 bit, celula de memorie cu capacitate minimă care

reprezintă unitatea elementară de informaţie care poate fi ori un 0, ori un 1 şi anume:

"celula este magnetizată sau nu este magnetizată" sau "trece curent sau nu trece

Page 2: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

2

curent", etc. Pentru exemplificare, numărul 2731 se scrie în format binar

101010101011 deoarece acesta se constituie prin sumele:

2731 = 2048 + 512 + 128 + 32 + 8 + 2 + 1 = 1 x 211

+ 0 x 210

+ 1 x 29 + 0 x 2

8 +

+ 1 x 27 + 0 x 2

6 + 1 x 2

5 + 0 x 2

4 + 1 x 2

3 + 0 x 2

2 + 1 x 2

1 + 1 x 2

0

Acelaşi număr poate fi scris similar în sistem de numeraţie zecimal astfel:

2731 = 2000+ 700 + 30 +1 = 2 x 103 + 7 x 10

2 + 3 x 10

1 + 1 x 10

0

Un alt aspect important este reprezentat şi de faptul că, având resurse

limitate, computerul nu poate utiliza întreaga mulţime infinită a numerelor reale R ci

doar o submulţime a acesteia, pe care o vom nota F. Nu toate numerele reale pot fi

reprezentate exact. Mulțimea numerelor reale este alcătuită din mulțimea fracțiilor

zecimale, pozitive și negative, cu o infinitate de zecimale. Numerele reale sunt

definite intuitiv ca fiind acele numere care sunt în corespondență unu-la-unu cu

punctele de pe o dreaptă infinită: axa numerelor.

Numerele reale ale mulţimii F, mulţime de dimensiuni finite, constituie obiectul aşa

numitei aritmetici în virgulă mobile (flotante) utilizată de computere. Proprităţile

acestor numere sunt diferite faţă de numerele mulţimii R. Orice număr real x este, în

principiu, reprezentat de către computer cu numărul notat fl(x), care nu corespunde

întotdeauna numărului x ci este doar o aproximare a acestuia. Reprezentarea în

virgulă mobile presupune existent unei baze b (întotdeauna pară) şi a unei precizii p.

Conform IEEE (Institute of Electrical and Electronics Engineers), standardul care

precizează formatul de reprezentare în memorie în simpla si dubla precizie a unui

numar real este IEEE-754 iar reprezentarea se face în virgula mobila normalizată (b

= 2):

53 241 0 2222 1

1

221

0 ,p},,{,)...()x(flx ke

p

p

Numărul este reprezentat prin printr-un cuvânt de n biti, conţinând urmatoarele

câmpuri:

Semn Exponent Mantisă

unde s este bitul de semn al numărului (s = 0 număr pozitiv şi s = 1 număr negativ),

m este mantisa numărului, reprezentând cifrele semnificative (α0, α1, α2 ...), iar e este

exponentul (puterea la care trebuie ridicata o valoare numita bază si care inmulteste

cifrele semnificative ale numarului). Valoarea numarului real reprezentat in virgula

mobila este data de expresia: es bm)()x(fl 1

Ȋn general baza este egală cu 2 iar mantisa trebuie să îndeplinească condiţia:

1 > m ≥ ½.

Fig. 2.1. Reprezentarea numerelor într-un cuvânt (semn, exponent cu semn şi mantisă)

Page 3: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

3

Aproximarea lui x prin fl(x) poarta numele de rotunjire, iar eroarea introdusă se

numeşte eroare de rotunjire. Exista mai multe modalitati pentru rotunjire:

• trunchiere (rotunjire prin tăiere): se reţin primele p cifre din reprezentarea

normalizata a lui x

• rotunjire la cel mai apropiat număr în virgulă mobilă (rotunjire la par): fl(x)

este cel mai apropiat numar în virgulă mobila de x; în caz de egalitate (dacă există

două numere în virgulă mobilă egal depărtate de x) se consideră acel număr în

virgulă mobilă a cărui ultimă cifră este pară.

Aşa numita precizie a maşinii εmach este generată de acurateţea sistemului

în virgulă mobilă. Rotunjirea la par determină o acurateţe mai mare a reprezentării

numerelor. Omiterea cifrelor care rămân în afara reprezentării numerelor formează

aşa numita eroare de rotunjire.

Conform standardului IEEE 754, formatele de reprezentare a numerelor în

virgulă mobila sunt:

-simplă precizie (single-precission) pe 32 de biti:

• 1 bit pentru semnul mantisei

• 8 biti pentru exponentul decalat (emin = -126, emax = 127)

• 23 biti pentru mantisa (p = 24, α0 = 1 se omite)

- dublă precizie (double-precission) pe 64 de biti

• 1 bit pentru semnul mantisei

• 11 biti pentru exponentul decalat (emin = -1022, emax = 1023)

• 52 biti pentru mantisa (p = 53, α0 = 1 se omite)

Regula de rotunjire este rotunjirea la par. Deci pentru

- simpla precizie, εmach = 2-24

≈ 10-7

(7 cifre zecimale semnificative).

- dubla precizie, εmach = 2-53

≈ 10-16

(16 cifre zecimale semnificative).

Programul Matlab utilizează implicit formatul dublă precizie pentru

datele de tip numeric (double) . Mai este posibilă introducerea numerelor în simplă

precizie (simple), care oferă un spaţiu de stocare mai mic dar şi o precizie mai mică,

precum şi introducerea numerelor întregi cu semn (int) sau fără semn (uint), tipurile

de date sunt prezentate în & 3.5.

Ȋn MATLAB valorile maximă şi minimă reprezentabile pot fi obţinute cu

ajutorul comenzilor realmin şi realmax, astfel încât:

xmin = 2.225073858507201 · 10−308

şi, respectiv,

xmax = 1.7976931348623158 · 10+308

.

Astfel, un număr pozitiv mai mic decât xmin produce un mesaj de eroare şi este

tratat ca numărul 0. Un număr pozitiv mai mare decât xmax produce un mesajul Inf

care este reprezentarea lui +∞.

De asemenea standardul IEEE-754 defineste două valori speciale pentru

situaţii exceptionale cu scopul de a oferi posibilitatea continuării calculului:

Inf, pe post de "infinit" ("infinity"), pentru rezultatul împartirii unui numar finit la

zero.

NaN, pe post de "non-numar" ("not a number"), pentru rezultatul urmatoarelor

operatii:

-adunarea Inf + (-Inf);

-înmulţirea: 0×Inf;

Page 4: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

4

-împărţirea: 0/0 sau Inf/Inf;

-calculul restul împărţirii unui număr x la 0 sau a lui Inf la x;

-calculul rădăcinii pătrate x pentru x < 0.

2.3. Precizia şi acurateţea datelor - erori

Rezolvarea numerică a diferitelor probleme implică, de cele mai multe ori,

obţinerea unor soluţii aproximative printr-un calcul iterativ, soluţii cu valoare foarte

apropiată de cea exactă. Metodele de calcul numeric presupun determinarea unor

rezultate aproximative. Pentru o problemă inginerească complexă, în majoritatea

cazurilor nu poate fi calculată soluţia analitică, exactă. De asemenea, nu poate fi

determinată nici valoarea erorii de calcul a soluţiei aproximative calculate. Din acest

motiv trebuie utilizate unele metode

de estimare a erorilor fiind, de cele

mai multe ori posibilă calcularea unei

limite maxime a erorii.

Ȋn figura 2.2 se poate

observa diferenţa dintre conceptul de

precizie al datelor şi conceptul de

acurateţe. Acurateţea reprezintă

măsura în care o mărime calculată sau

măsurată se apropie de valoarea reală.

Precizia este definită ca fiind măsura

în care valorile calculate şi valorile

măsurate sunt în concordanţă unele cu

altele. Inacurateţea reprezintă o

deviere sistematică de la valoarea

exactă iar imprecizia se referă la

mărimea dispersiei rezultatelor.

Conceptul cifrelor semnificative (digiţi) se referă la faptul că o valoare

numerică poate fi desemnată formal cu ajutorul unui anumit număr de cifre în

concordanţă cu unitatea de măsură a mărimii respective. De exemplu, viteza

înregistrată de vitezometrul unui autovehicol presupune existenţa a doar două cifre

semnificative comparativ cu indicatorul kilometrajului autovehiculului care poate

indica cu precizie şase cifre semnificative.

Fie x* un număr care aproximează numărul exact x, adică o aproximantă a

lui x. Dacă x*

< x, atunci spunem că x*

este o aproximaţie minoră (sau în minus) a

lui x. Dacă x* > x, atunci spunem că x

* este o aproximaţie majoră (sau în plus) a lui

x. Putem scrie:

x = x* + Δx 2.1

unde Δx este eroarea numărului x.

Un număr exact poate fi considerat ca un număr aproximativ care are

eroarea egală cu zero. Există numeroase situaţii în care semnul erorii nu este

cunoscut, aşa încât se utilizează eroarea absolută a numărului aproximativ:

Acuratete

Pre

cizi

e

Fig. 2.2. Precizia şi acurateţea unor date

sunt concepte diferitei (după Chapra)

Page 5: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

5

Definiţie:

Eroarea absolută ε a unui număr aproximativ x*, reprezintă valoarea absolută a

diferenţei dintre numărul exact x corespunzător şi numărul x*:

ε = | x - x* | 2.2

Cel mai întâlnit caz este atunci când numărul aproximat x nu este cunoscut;

astfel relaţia 2.3 nu poate fi folosită pentru determinarea erorii. Din acest motiv, este

util ca în locul erorii absolute ε (cu valoare necunoscută din punct de vedere

teoretic), să introducem o estimare superioară acesteia, aşa numita limită a erorii

absolute Δ.

Definiţie:

Limita erorii absolute Δ a unui număr aproximativ x*, poate fi orice număr, nu mai

mic decât eroarea absolută a acelui număr.

Astfel:

ε = | x - x*| ≤ Δ 2.3

Deci se poate spune că x* - Δ este o aproximare minoră pentru x iar x

* + Δ este o

aproximare majoră pentru acelaşi x :

x* - Δ ≤ x ≤ x

* + Δ 2.4

Putem scrie:

x = x* ± Δ 2.5

Deşi există mai multe numere care pot fi considerate ca fiind limita erorii

absolute (în fapt orice număr mai mare decât un Δ determinat), totuşi, în practică

este convenabil de ales cel mai mic număr care satisface inegalitatea 2.4.

EXEMPLU 2.1:

Să se determine limita erorii absolute pentru numărul π = 3,14 (numărul cu două

zecimale exacte) folosit în locul numărului iraţional π.

Soluţie:

Din inegalitatea cunoscută x*=3,14 < π < 3.15 rezultă că | x

* - π |< 0,01 şi de aici

avem

Δ = 0,01.

Dacă luăm în considerare inegalitatea x* = 3,14 < π < 3.142, putem obţine o estimare

mai bună, şi anume Δ = 0,02.

Trebuie remarcat faptul că noţiunea erorii absolute nu ţine cont de ordinul

de mărime al valorii examinate. De exemplu, o eroare de 1 cm este semnificativă în

cazul unui reper din industria construcţiei de autovehicule dar este aproape

insesizabilă în cazul construcţiei clădirilor. Dacă luăm în considerare două tije care

au lungimile l1 = 200 ± 0,5 mm şirespectiv l2 = 5 ± 0,5 mm, deşi marginile erorilor

absolute sunt egale (0,5) totuşi prima tijă cu lungimea l1 poate fi prelucrată mult mai

uşor decât tija cu lungimea l2. Din acest motiv, mărimea erorii absolute ε sau limita

erorii absolute Δ nu sunt satisfăcătoare pentru a descrie eficace precizia unor

măsurători sau unor calcule.

Page 6: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

6

Definiţie:

Eroarea relativă δ a unui număr aproximativ x* este dată de raportul dintre eroarea

absolută ε a numărului şi modul (valoarea absolută) a numărului aproximat x

corespunzător.

Astfel:

δ = x

2.6

şi ε = |x|·δ 2.7

Similar cazului erorilor absolute, se introduce noţiunea de limită a erorii relative.

Definiţie:

Limita erorii relative δa a unui număr aproximativ x*, poate fi orice număr, nu mai

mic decât eroarea relativă a acelui număr.

Astfel:

δ ≤ δa 2.8

Deci:

δ = x

≤ δa 2.9

şi

x = x* ± x·δa

= x

*·(1 ± δa

) 2.10.

Prin definiţie x > 0, x*> 0 şi ε

> 0. Atunci:

δ = x

*x

2.11.

Putem lua astfel numărul

*ax

drept limita erorii relative a lui x*. Similar se

poate scrie:

ε = x ·δ ≤·( x* + ε

) ·δa

2.12.

şi de aici:

Δ ≤ a

a*x

1 2.13.

Deoarece în mod obişnit Δ << x* şi δa << 1, se poate face aproximarea:

*ax

2.14

şi respectiv:

a*x 2.15.

Majoritatea metodelor numerice folosesc o metodologie iterativă pentru a

calcula soluţia. Astfel eroarea poate fi estimată ca o diferenţă între aproximaţia

curentă şi cea anterioară. Eroarea relativă procentuală se poate calcula cu

formula:

Page 7: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

7

εaprox = %curenta.aprox

anterioara.aproxcurenta.aprox100

2.16.

Ȋn anumite cazuri, metodele numerice folosesc drept criteriu pentru oprirea

interaţiilor inegalitatea:

| εaprox | < εs 2.17

unde:

εs este toleranţa procentuală specificată a calculelor, care conform (Chapra, 2012)

este legată de conceptul celor n cifre semnificative:

%, ns 1050 2 2.18.

EXEMPLU 2.2:

Volumul unui rezervor de apă este la 20º este V = 999,795 ± 0,005 m3. Să se

determine limita erorii relative a cantităţii de apă.

Soluţie:

Avem ΔV = 0,005 şi V < 999,790. Aplicând ec. 2.14 se obţine:

%,

,V 105

790999

0050 6 .

EXEMPLU 2.3:

Rezultatul R = 32,57 a fost obţinut la determinarea unei constante a unui proces.

Ştiind că eroarea relativă a acestei valori este de 0,2 ‰ să se determine limitele

rezultatului R.

Soluţie:

Avem δR = 0,002 şi deci ΔR R· δR = 0,07.

Deci:

32,5 ≤ R ≤ 32,64.

2.4. Surse ale erorilor

Orice mărime determinată în urma unor experimente sau observaţii din

activitatea practică de zi cu zi este de fapt o aproximaţie a unei mărimi reale. De

cele mai multe ori acceptăm apriori ideea comiterii unei erori datorită diferenţei

dintre cele două valori. Aceste aproximări pot influenţa investigaţia şi denatura

rezultatul unui studiu sau observaţie. Abaterile introduse se pot neglija doar dacă

acestea sunt suficient de mici încât cerinţele problemei practice să fie satisfăcute.

Din acest motiv trebuie să existe un control, trebuie să existe o evaluare a erorii

introduse prin aproximarea făcută. Mai mult chiar, valoarea aproximaţiei nu are

valoare fără a cunoaşte eroarea comisă şi din acest motiv, analiza erorilor este

fundamentală în orice proces.

Dacă încercăm să realizăm o clasificare a erorilor în funcţie de sursa de

apariţie a lor, putem deosebi mai multe surse de erori care pot afecta analiza unor

Page 8: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

8

date şi calculele realizate. Se pot distinge mai multe grupe de erori care apar în cazul

aplicării de metode numerice pentru rezolvarea unei probleme matematice:

- de multe ori afirmaţiile matematice nu oferă o imagine precisă şi

exhausitivă fenomenelor fizice studiate şi, din această cauză, pentru rezolvarea

problemelor se obişnuieşte a se accepta anumite condiţii care conduc la obţinerea

unor rezultate similare. Se obţin astfel erori de enunţare/formulare a problemei;

- erorile care se introduc prin valoarea unor coeficienţi, parametri numerici

sau valori pentru unele date intermediare care nu pot fi determinate decât

aproximativ se numesc erori iniţiale;

- erorile de metodă se obţin atunci când problema dată, problemă

complexă şi imposibil de rezolvat este înlocuită de o problemă aproximativă care

conduce la un rezultat similar. Un caz special al acestor erori este reprezentat de

erorile de trunchiere care sunt introduse prin renunţarea la o parte din termenii unei

sume (de exemplu aproximarea sumei unei serii printr-o suma parţială sau

considerarea unui termen cu un rang “suficient” de mare pentru a aproxima limita

unui şir). De asemenea, în acele cazuri în care ecuaţiile matematice pot fi rezolvate

doar prin evaluarea unor procese infinite, oprirea procesului de calcul la un anumit

termen din secvenţa infinită introduce erorile denumite erori reziduale;

- aşa cum a fost prezentat în &.2.1, erorile de rotunjire propriu-zise apar

datorită faptului că echipamentele de calcul nu pot lucra cu un număr infinit de

zecimale şi trebuie să opereze trunchieri sau rotunjiri ale ultimelor zecimale după

reguli prestabilite. Fie de exemplu expresia 33

1E . Desigur că rezultatul este egal

cu 1 dar, dacă maşina de calcul respectă ordinea priorităţilor efectuării operaţiilor se

ajunge la un rezultat egal cu 0,999(9) rezultat care introduce erori deoarece în

calculator informaţia este trunchiată, în funcţie de precizia de calcul impusă

calculelor. Acest tip de erori se pot diminua prin aranjarea termenilor astfel încât să

fie efectuate mai întâi operaţiile la numitor şi numărător şi abia la sfârşit să se

realizeze şi împărţirea.

2.4.1. Calcule fără estimarea precisă a erorilor - Reguli

Ȋn majoritatea cazurilor, când este necesară efectuarea unui număr foarte

mare de operaţii, este practic imposibil să se ţină cont de toate erorile pe care le-ar

putea introduce fiecare operaţie. Este necesar deci a fi stabilite reguli generale astfel

încât erorile sa fie controlate şi menţinute la valori minime. Există recomandarea de

a se respecta următoarele reguli [Muscă, Spînu, 2004]:

- la adunarea şi scăderea unor numere de valoare aproximativ egală, rangul

cel mai mic păstrat al rezultatului trebuie să fie egal cu cel mai puternic rang al

ultimelor cifre semnificative exacte al numerelor iniţiale date;

- la înmulţirea şi împărţirea cu numere de valoare aproximativ egală trebuie

conservate în rezultat tot atâtea cifre semnificative câte erau şi în numărul

aproximativ din datele iniţiale care avea cel mai mic număr de cifre exacte;

- ridicând un număr la pătrat sau la cub, rezultatul trebuie să păstreze tot

atâtea cifre semnificative câte numară baza puterii;

Page 9: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

9

- după extragerea rădăcinii pătrate sau cubice trebuie să se ia în considerare

atâtea cifre semnificative câte erau în numărul de sub radical;

- toate rezultatele intermediare trebuie să păstreze o cifră în plus faţă de

cele care sunt recomandate în reguile precedente. Această cifra va fi rotunjită abia la

finalul calculului;

- dacă datele iniţiale pot să fie luate cu o precizie arbitrara, pentru obţinerea

unui rezultat cu un număr de k cifre exacte, este necesar ca la începerea calculului

ele să fie luate astfel încat, în comparaţi cu regulile precedente să se asigure (k+1)

cifre exacte.

2.4.2. Aproximarea cu ajutorul dezvoltării în serii Taylor

Fie dată funcţia f : (α, β) → R- de n+1 ori derivabilă pe (α, β), iar a (α,

β), atunci pentru orice x (α, β), există un punct ξ cuprins între a şi x, astfel încât să

fie adevărată formula lui Taylor:

)(f)!n(

)ax()a(f

!n

)ax(...)a('f

!

)ax()a(f)x(f

)n(n

nn

11

11

2.19.

Polinomul lui Taylor Tn(x) Restul lui Lagrange Rn(x)

Adică: f(x) = Tn(x) + Rn(x) 2.20.

Pentru a se putea folosi în calculul aproximativ al unor mărimi, în calculul limitelor

se poate demonstra faptul că atunci când x → a, rezultă că ξ → a şi deci este valabilă

şi relaţia:

0

nnn )ax(

)x(T)x(flim 2.21.

EXEMPLU 2.3:

Să se calculeze aproximanta numărului 6 732 folosind formula lui Taylor şi restul

de ordinul 2. Să se verifice utilizând calculatorul.

Soluţie:

Se consideră funcţia : f(x) = 6 x . Formula lui Taylor cu restul de ordinul unu pentru

această funcţie este:

)(''f!

)ax()a('f

!

)ax()a(f)x(f

21

2

. Ȋnlocuind obţinem:

611

2

65

61 1

6

5

6

1

2

1

6

1

1 //

/

!

)ax(

a!

)ax(a)x(f

, ξ (a, x)

Restul lui Lagrange R1(ξ)

Lunând x = 732 şi a = 729, putem obţine pentru primii doi termeni din formula de

mai sus:

Page 10: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

10

002133

1

6

1

1

33

729

1

6

1

1

729732729732

565

6161 ,!

)()x(f

/

//

Pentru a determina eroarea de calcul se evaluează restul lui Lagrange, alegând

ξ = 729:

4

611

2

611

2

1 108729

1

6

5

6

1

2

7297321

6

5

6

1

2

// !

)(

!

)ax()(R

2.4.3. Aproximarea erorilor şirurilor alternant convergente

Fie o serie convergentă: ...aa...aaaS nn 1210 2.22.

Primii n termeni ai sumei se pot grupa iar relaţia (2.22) devine:

nn RSS 2.23

unde:

n

nnn aS

0

este suma parţială a primilor n termeni iar

...aaaR nnnn 321 este restul de ordinul n.

Atunci când n → , 0nR .

Dacă suma este alternantă, se poate demonstra că:

1 nn aR 2.24

adică faptul că eroarea care se comite atunci când se aproximează suma unei serii

alternant convergente printr-o sumă parţială de ordinul n este mai mică în valoare

absolută decât primul termen neglijat.

EXEMPLU 2.4:

Se dă seria alternantă convergentă

4

4

3

3

2

2

34

2

33

2

32

2

3

2 Care este

termenul general al sumei? Să se realizeze o aplicaţie pentru calcularea sumei de mai

sus, cu n număr întreg pozitiv cerut de la tastatură şi să se determine empiric

valoarea sumei cu 2 zecimale exacte. Care este valoarea la care converge suma? Câţi

termeni trebuie adunaţi astfel încât să se obţină valoarea sumei cu 3 zecimale

exacte? Calculaţi eroarea folosind inegalitatea ( 1 nn aR ) dintre restul sumei şi

termenul de ordinul n+1 şi verificaţi cu ajutorul aplicaţiei elaborate.

Soluţie:

Suma se poate scrie: Sn =

n

kk

kk

k)(

1 3

21 . Aplicaţia poate fi salvată într-un fişier cu

numele pE23.m, de forma: pE23.m

n=input('introduceti numarul termenilor sumei, n=')

s=0

for i=1:n

s=s+(-1)^(i+1)*2^i/(i*3^i)

i

Page 11: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

11

end

Seria este puternic convergentă spre 0.51082562376599 (a fost calculată suma cu

150 de termeni). Pentru a ajunge la 3 zecimale exacte trebuie adunaţi minim 12

termeni.

»pE23

introduceti numarul termenilor sumei, n=150 n = 150 s = 0 s = 0.66666666666667 i = 1 s = 0.44444444444444 i = 2 s = 0.54320987654321 i = 3 s = 0.49382716049383 i = 4 s = 0.52016460905350 i = 5

s = 0.50553269318701 i = 6 s = 0.51389378796786 i = 7 s = 0.50901648267903 i = 8 s = 0.51190673766501 i = 9 s = 0.51017258467342 i = 10 s = 0.51122358648650 i = 11

s = 0.51058130760073 i = 12 s = 0.51097655614582 i = 13 s = 0.51073187847505 i = 14 s = 0.51088412235909 i = 15 s = 0.51078896993157 i = 16 s = 0.51084867341550 i = 17

Pentru a ajunge la 3 zecimale exacte trebuie adunaţi minim 12 termeni. » 0.51082562376599-0.51097655614582

ans =

-1.509323798301043e-004

» 0.51097655614582-0.51058130760073

ans =

3.952485450900989e-004

2.5. Formula generală a erorii - problema directă şi problema inversă

Ȋn practică este uneori necesar a se calcula precizia unui rezultat al unor

calcule atunci când se cunosc preciziile factorilor care intervin în formulă. De

asemenea, în majoritatea situaţiilor din practica inginerească apare necesitatea de a

se cunoaşte valoarea erorilor parametrilor funcţiei plecând de la o precizie dorită a

rezultatului. Aceste probleme sunt cunoscute ca fiind problema directă şi problema

inversă a erorilor.

Page 12: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

12

Problema directă a erorii Fie o funcţie de n variabile u=f(x1, x1, x1, ... , xn) şi fie |Δxi| erorile absolute

ale argumentelor funcţiei. Dacă presupunem că |Δxi| sunt suficient de mici astfel

încât pătratul lor să fie neglijat atunci se poate deduce prin calcule succesive

(Zaharia, 2008) că eroarea relativă a funcţiei nu depăşeşte o anumită valoare care

depinde de valoarea derivatelor parţiale ale funcţie:

i

n

i iu x

x

)u( ln

1

2.25.

Problema inversă a erorii Fie o funcţie de n variabile u=f(x1, x1, x1, ... , xn) şi fie |Δxi| erorile absolute

ale argumentelor funcţiei. Este vorba despre determinarea preciziei necesare a

datelor iniţiale pentru a se obţine rezultatul cu precizia stabilită.

Problema este nedeterminată deoarece o aceeaşi limită a erorii funcţiei

poate fi obţinută printr-o infinitate de combinaţii ale limitelor erorilor absolute ale

argumentelor. Rezolvarea se face aplicând principiul egalităţii efectelor ceea de

înseamnă ca toţi factorii să aibă contribuţii egale la formarea erorii absolute a valorii

funcţiei (Zaharia, 2008), şi anume Δu. Se obţine relaţia:

i

i

x

un

ux

1 2.26.

OBSERVAŢIE:

Din punct de vedere tehnologic, pentru unele componente pot apare cerinţe

de realizare la precizii exagerat de mari aşa încât nu pot fi executate decât la un cost

prohibitiv. Ȋn aceste cazuri trebuie refăcut proiectul astfel încât să fie respectat şi

criteriul economic.

EXEMPLU 2.5:

Fie un rezervor constituit dintr-un cilindru gol, cu raza mare a bazei R ≈ 5 m, raza

mică r ≈ 2 m şi înălţimea H ≈ 15 m. Să se determine care sunt erorile absolute de

determinare ale valorilor R, r, H şi numărului π, pentru ca volumul rezervorului să

poată fi calculat/executat cu o precizie de 0,1 m3.

Soluţie: r ≈ 2 m,

R ≈ 5 m,

H ≈ 15 m,

ΔV = 0,1 m3

__________________

ΔR = ?; Δr = ?; ΔH = ?; Δπ = ?;

H)rR(V 22cilG

Page 13: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

13

5103,5521514,3

1

4

1,0

2

1

4

RH

VR

m

41032,1221514,3

1

4

1,0

2

1

4

rH

Vr

m

4

22221079,3

)25(14,3

1

4

1,0

)(

1

4

rR

VH

m

5

2222109,7

)25(15

1

4

1,0

)(

1

4

rRH

V

EXEMPLU 2.6:

Fie o sferă cu raza R ≈ 2 m. Să se determine care sunt erorile absolute de

determinare ale valorii razei şi numărului π, pentru ca volumul sferei să poată fi

calculat cu o precizie de 0,1 m3.

Soluţie: R ≈ 2 m ;

ΔV = 0,1 m3

__________________

ΔR = ?; Δπ = ?;

3sfera R

3

4V

4

22

1095,9214.34

1

2

1.0

33

4

1

2

R

VR

0013,0

3

1

1

3 2

rh

V

2.7. Formate de afişare ale numerelor în MATLAB

Implicit, MATLAB afişează valorile numerice cu cinci zecimale în format

virgulă fixă, scalată. Ȋn tabelul 2.1 sunt prezentate formatele disponibile pentru

valorile numerice. Formatul de reprezentare al datelor se poate schimba folosind

comanda format sau File/Preferences/Command Window/ Numeric format.

Formatul specificat cu ajutorul funcţiei format este valabil numai în secţiunea

curentă.

Funcţia format nu controlează decât modul în care valorile numerice sunt

afişate în fereastra de comandă. Modul în care sunt realizate calculele nu este afectat

de formatul reprezentării / afişării numerelor. Folosit fără argumente, funcţia format

schimbă formatul la cel implicit, respectiv short cu 5 zecimale, virgulă fixă scalată,

Page 14: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Calcul numeric asistat – TEORIE ŞI APLICAŢII ÎN MATLAB

14

2.8. Funcţii MATLAB pentru aproximarea numerelor

Funcţiile Matlab destinate aproximării numerelor cu numere întregi

operează asupra fiecărul element al unei matrice sau am unui vector. Dacă

elementele din argumentului funcţiei sunt numere complexe atunci se operează

independent asupra fiecărei părţi (reală şi imaginară) în parte.

Alte funcţii existente pentru aproximarea numerelor sunt prezentate în

tabelul 2.3.

Tab. 2.1. Formate pentru valori numerice afişate în Matlab

File /

Preferences

/ Numeric

format

Formatul afişat

short Format virgulă scalată, cu 5 zecimale long Format virgule fixă scalată, cu 15 zecimale pentru dublă precizie şi 8

zecimale pentru simplă precizie hex Hexazecimal (reprezentare hexazecimală a unui număr binar în dublă

precizie) bank Stabileste formatul pentru dolari şi centi long e Format virgulă mobilă, cu 15 zecimale pentru dublă precizie şi 8

zecimale pentru simplă precizie short e Format virgulă mobilă cu 5 zecimale long g Cel mai bun format între virgulă fixă şi virgulă mobilă, cu 15 zecimale

pentru dublă precizie şi 8 zecimale pentru simplă precizie short g Cel mai bun format între virgulă fixă şi mobilă, cu 5 zecimale rat Raport de numere întregi mici plus Simbolurile “+”, “-” şi “ ” sunt afişate pentru numere pozitive, negative

şi elemente egale cu zero; partea imaginară este ignorată loose Adaugă linii între liniile pe care se află răspunsul, pentru ca ieşirile să

fie mai uşor de citit compact Suprimă linii din răspunsul oferit pe ecran pentru ca să încapă mai

multe ieşiri pe un singur ecran

Tab. 2.2. Funcţii utilizate pentru aproximare cu numere întregi

Funcţie Descriere ceil Returnează un număr întreg, rotunjit spre cel mai apropiat întreg spre

plus infinit (+ ) fix Returnează un număr întreg, rotunjit spre cel mai apropiat întreg spre

zero floor Returnează un număr întreg, rotunjit spre cel mai apropiat întreg spre

minus infinit (- ) round Returnează un număr întreg, rotunjit spre cel mai apropiat întreg

Page 15: CNACap2 ERORI DE CALCUL +×I APROXIM¦éRI

Capitolul 2 - ERORI DE CALCUL ŞI APROXIMĂRI

15

EXEMPLU 2.7:

Să se rotunjească elementele vectorului V = (0 1 2,3 -2,3 2,9 -2.9 5,7 -10,5 9,2 -9,2)

prin folosirea celor 4 funcţii dedicate în Matlab: » V=[ 0 1 2.3 -2.3 2.9 -2.9 5.7 -10.5 9.2 -9.2]

V =

Columns 1 through 7

0 1.0000 2.3000 -2.3000 2.9000 -2.9000 5.7000

Columns 8 through 10

-10.5000 9.2000 -9.2000

» round(V)

ans = 0 1 2 -2 3 -3 6 -11 9 -9

» ceil(V)

ans = 0 1 3 -2 3 -2 6 -10 10 -9

» fix(V)

ans = 0 1 2 -2 2 -2 5 -10 9 -9

» floor(V)

ans = 0 1 2 -3 2 -3 5 -11 9 -10

EXEMPLU 2.8:

Să se aproximeze prin rotunjire la a 4-a zecimală numărul 2,65987. Ce fel de

aproximare este? Care este eroarea?

Să se aproximeze prin trunchiere la a 4-a zecimală acelaşi număr. Ce fel de

aproximare este? Care este eroarea?

Să se rotunjească spre cel mai apropiat întreg spre ∞. Care este eroarea? Care este

linia de comandă în MATLAB?

Să se rotunjească spre cel mai apropiat întreg spre -∞. Care este eroarea? Care este

linia de comandă în MATLAB?

Soluţie: 2,65987

Rotunjire la a 4-a zecimală → 2,6599 Aproximare prin adaos

Eroare absolută= | 2,6599-2,65987 | = 0,0000299

Trunchiere la a 4-a zecimală → 2,6598 Aproximare prin lipsă

Eroare absolută = | 2,6598-2,65987 |= 0,00007

Aproximare spre +∞: » ceil(2.65987) ans = 3

Eroarea absolută = | 2,65987 – 3| = 0.34013 Aproximare spre -∞: floor(2.65987)

Eroarea absolută = | 2,65987 – 2 | = -0.65987

Tab. 2.3. Funcţii utilizate pentru aproximare cu numere întregi

Funcţie Descriere rem Returnează restul împărţirii argumentelor rat Returnează aproximarea unui număr cu fracţii raţionale continue rats Returnează aproximarea unui număr cu numere raţionale sign Returnează semnul argumentului