Laborator1 Erori

9
Lucrarea de laborator nr.1 Tema lucr ării: Erori în rezolvarea problemelor numerice 1.Caracterizarea lucrării De cele mai multe ori, algoritmii cu caracter numeric, după implementarea lor pe un sistem de calcul, determină o aproximare a soluţiei exacte a problemei în discuţie. Scopul lucrării: a) a evidenţia modul în care pot fi caracterizate erorile numerice; b) a sublinia sursele şi modalităţile de apariţie ale acestor erori; c) a studia procesul de propagare a erorilor numerice. În această lucrare sunt studiate: 1) erorile inerente; 2) erorile de rotunjire; 3) erorile de trunchiere. 2. Principiul lucrării Pentru a caracteriza abaterea unei variabile numerice de la valoarea sa exactă se utilizează eroarea absolută: (1), unde x reprezintă valoarea exactă, iar , o aproximare a sa. Ţinînd cont că de regulă valoarea exactă x nu este cunoscută, se utilizează o margine superioară a erorii absolute: (2) şi astfel, în locul valorii exacte x, se operează cu intervalul: (3). O mai bună caracterizare din punct de vedere calitativ a abaterii de la valoarea exactă a unei variabile numerice, o furnizează eroarea relativă: (4) sau o margine superioară a acesteia: (5).

Transcript of Laborator1 Erori

Lucrarea de laborator nr.1Tema lucrrii: Erori n rezolvarea problemelor numerice

1.Caracterizarea lucrrii De cele mai multe ori, algoritmii cu caracter numeric, dup implementarea lor pe un sistem de calcul, determin o aproximare a soluiei exacte a problemei n discuie.

Scopul lucrrii: a) a evidenia modul n care pot fi caracterizate erorile numerice;

b) a sublinia sursele i modalitile de apariie ale acestor erori;

c) a studia procesul de propagare a erorilor numerice.

n aceast lucrare sunt studiate:1) erorile inerente;

2) erorile de rotunjire;

3) erorile de trunchiere.

2. Principiul lucrrii Pentru a caracteriza abaterea unei variabile numerice de la valoarea sa exact se utilizeaz eroarea absolut: (1), unde x reprezint valoarea exact, iar , o aproximare a sa.

innd cont c de regul valoarea exact x nu este cunoscut, se utilizeaz o margine superioar a erorii absolute: (2) i astfel, n locul valorii exacte x, se opereaz cu intervalul: (3). O mai bun caracterizare din punct de vedere calitativ a abaterii de la valoarea exact a unei variabile numerice, o furnizeaz eroarea relativ: (4) sau o margine superioar a acesteia: (5).n unele aplicaii (mai ales cu caracter teoretic), se poate considera: (6) i (7).

2.1. Erori inerente Datele de intrare utilizate n soluionarea unor probleme tehnice provin, n multe situaii, din determinri experimentale. Rezultatul oricrei masurtori este susceptibil de erori.

Erorile datelor de intrare ntr-un algoritm numeric se numesc erori inerente. Aceste erori se propag n procesul de calcul i de cele mai multe ori afecteaz rezultatul final.

Un algoritm de calcul nu poate fi fcut responsabil de existena erorilor inerente, n schimb, el poate influena precizia soluiei.

n acest sens, dac eroarea relativ a soluiei obinute depete erorile relative ale datelor de intrare, se spune c algoritmul este numeric instabil (n astfel de situaii, abateri mici ale fatelor de intrare pot determina abateri mare ale soluiei numerice, fcnd-o practic inutilizabil).

2.2. Erori de rotunjire Una dintre cauzele frecvente de eroare n calculele cu numere reale se datoreaz reprezentrii finite a acestora n sistemele de calcul.

ntr-un sistem de calcul, un numr real se reprezint printr-o pereche (f,e) unde i (7) (funcia se numete mantis iar e se n umete exponent). Cadrul n care are loc aceast reprezentare, F=(10,t,p) se numete format virgul mobil, iar (f,e) se numete numr n VM.Valoarea sa real este: (8).

Eroarea relativ (care n acest caz se numete eroare de reprezentare) se seteaz cu i satisface urmtoarea inegalitate: , unde: , dac funcia de rotunjire utilizat este cea prin trunchiere i , dac este utilizat rotunjirea simetric.

Aceast eroare relativ de rotunjire, specific sistemului de calcul (calculator+medii de programare) este cel mai mare numr real care adugat la unitate nu modific valoarea acestuia.

Ordinul de mrime al n sistemele uzuale de calcul este de i poate fi determinat, pe fiecare sistem de calcul, cu urmtorul algoritm:

;calculeaz eroarea relativ de rotunjire

real err

err=1

repet

err=err/2

pn cnd (1+err=1)

scrie err

2.3. Erori de trunchiere Soluionarea unei probleme fizice (PF), utiliznd o metod numeric, presupune parcurgerea urmtoarelor etape:

- obinerea, pe baza ecuaiilor fizicii matematice, a modelului matematic (PM)

- reducerea (PM) la o problem discret (PD) (i.e. a crei rezolvare impune: parcurgerea unui numr finit de pai ntr-o perioad de timp determinat i obinerea unei aproximri uniforme a soluiei exacte)

- proiectarea unui algoritm (i.e. ansamblu de reguli, ce transform datele de intrare n date finale pe baza unei succesiuni unic determinate de operaii aritmetice elementare) pentru rezolvarea (PD).Vom prezenta (pe scurt) ce presupune calculul numeric al unei limite de ir, respectiv a unei sume de serii.

a) Fie Pentru o anumit eroare impus eps, utiliznd caracterizarea limitei unui ir, va exista un rang n (dependent de eps) a.. (9)

Astfel, putem concluziona c, dup evaluarea unui numr suficient de mare de termeni n, se poate considera: (10). Viteza de convergen a unui algoritm utilizat depinde de legtura existent ntre n i eps. Astfel, vom spune c viteza de convergen a unui algoritm este de ordinul p, dac: (10)

b) Vom considera dezvoltarea n serie Taylor a funciei y=sinx:, unde (11)

(12)

Vom evalua eroarea obinut prin aproximarea funciei sin prin: . Astfel, avem: (13)

Rezult urmtorul pseudocod pentru evaluarea funciei sin cu o eroare de trunchiere mai mic dect eroarea de rotunjire err:

funcia sinus(x)

real x,t,s

ntreg k

t=x

s=t

k=1

repet

k=k+2

t=-t*x*x-k*(k-1)

s=s+t

pn cnd

ntoarce s Se poate observa c efortul de calcul pentru evaluarea funciei sin crete odata cu scderea erorii impuse i cu creterea lui .

2.4. Propagarea erorilor Vom analiza propagarea erorilor n cazul celor patru operaii aritmetice elementare, ntr-un FVM(10,t,p) fixat.

a) Adunarea: Fie Atunci: i ; iar (14) Dac i au aceli semn, + este o operaie stabil numeric i din (14), obinem : (15)b) Scderea: n aceleai ipoteze, i iar (16) Scderea este o operaie instabil numeric dac poate depi eroarea termenilor: dac i au acelai semn, cu multe ordine de mrime, prin fenomenul de anulare prin scdere).

c)nmulirea:

(17)d) mprirea:

(18)

n aceste evaluri ale erorilor, s-a considerat c toate calculele se efectueaz exact. n realitate, eroarea relativ a rezultatului se obine prin adugarea erorii de rotunjire la cea de calcul.

Dac eroarea unui calcul numeric prezint o importan deosebit, se va utiliza tip abstract de date ce permite controlul propagrii erorii.n acest tip de date, numerele reale x sunt reprezentate prin valoarea x i marginea erorii relative prin intervalul: (19)

tip nregistrare interval

realval

;valoare

realer

;marginea erorii relative

procedurasuma(x,y,s);calculeaz s=x+y

interval=x,y,s

s.val=x.val+y.val

s.er=err+(|x.val*x.er|+|y.val*y.er|)/|s.val|

retur

procedura dif(x,y,d)

;calculeaz d=x-y

interval x,y,d

d.val=x.val-y.val

d.er=err+(|x.val*x.er|+|y.val*y.er|)/|d.val|

retur

procedura prod(x,y,p)

;calculeaz p=x*y

interval x,y,p

p.val=x.val*y.val

p.er=err+|x.er|+|y.er|

retur

procedura rap(x,y,c)

;calculeaz c=x/y

interval x,y,c

c.val=x.val/y.val

c.er=err+|x.er|+|y.er|

retur

3.Chestiuni de studiat

a) Determinarea erorii relative de rotunjire a sistemului de calcul;

b) Analiza propagrii erorilor inerente;

c) Analiza erorii de trunchiere;

d) Implementarea unor algoritmi numerici ce controleaz eroarea.4. Modul de lucru

Pentru desfurarea lucrrii se introduce comanda:

Erori

n urma creia se lanseaz un program cu urmtorul meniu

1. ndrumar

2. Erori de rotunjire

3. Calcule cu controlul erorii

4. Erori de trunchiere

5. Implementare algoritmi

6. Testare cunotine

7. Ieire

a) Determinarea erorii relative de rotunjire a sistemului de calcul Se selecteaz opiunea 2 (Erori de rotunjire), care are ca efect calculul i afiarea erorii relative de rotunjire a sistemului de calcul.

b) Analiza propagrii erorilor inerente Se selecteaz opiunea 3 (Calcule cu controlul erorii).

c) Analiza erorii de trunchiere Se selecteaz opiunea 4 (Erori de trunchiere), care are ca efect lansarea unui program, ce realizeaz sumarea urmtoarelor serii:

Taylor pentru funcia exponenial;

Taylor pentru funcia sinus;

Taylor pentru funcia logaritm natural;

Armonica alternant.

Dup selectarea funciei i alegerea valorii variabile independente x, programul calculeaz i afieaz: suma parial a seriei; eroarea absolut de trunchiere pentru diferite ordine.

Se calculeaz apoi: eps(1), exp(10), esp(-10), sin(1), sin(10), ln(1.1). Se comenteaz rezultatele. Se aprecieaz viteza de convergen.

d) Implementarea unor algoritmi cu controlul erorii Se genereaz pseudocodul funciei cos, determinat prin serie Taylor trunchiat pentru a atinge o eroare de trunchiere impus. Se implementeaz acest algoritm ntr-un limbaj de programare sub forma unei funcii cosinus (x,ert), cu ert: eroarea de trunchiere impus.

Se implementeaz algoritmul de determinare a erorii relative de rotunjire err

Se implementeaz algoritmul de determinare a erorii de trunchiere ert=err

5. ntrebri i probleme

_1304782420.unknown

_1304783687.unknown

_1304784652.unknown

_1304785041.unknown

_1304785451.unknown

_1304827082.unknown

_1304827369.unknown

_1304827485.unknown

_1304827693.unknown

_1304827466.unknown

_1304827105.unknown

_1304785506.unknown

_1304826795.unknown

_1304785297.unknown

_1304785330.unknown

_1304785270.unknown

_1304784874.unknown

_1304784884.unknown

_1304784813.unknown

_1304784139.unknown

_1304784553.unknown

_1304784578.unknown

_1304784248.unknown

_1304783814.unknown

_1304783853.unknown

_1304783732.unknown

_1304783282.unknown

_1304783408.unknown

_1304783568.unknown

_1304783325.unknown

_1304782612.unknown

_1304783083.unknown

_1304782536.unknown

_1304775610.unknown

_1304782179.unknown

_1304782347.unknown

_1304782384.unknown

_1304782244.unknown

_1304776276.unknown

_1304781996.unknown

_1304775641.unknown

_1304774883.unknown

_1304775471.unknown

_1304775546.unknown

_1304775461.unknown

_1304774732.unknown

_1304774823.unknown

_1304774682.unknown