Sunteți pe pagina 1din 19

2.

ERORI ŞI APROXIMĂRI

2.1 SUMAR DE TEORIE ŞI APLICAŢII


Propagarea erorilor
Reprezentarea numerelor prin baze de numeratie:baza 10 (sistem zecimal)
si baza 2 (sistem binar)

In baza 2 un numar se scrie:

𝒂 = 𝒂𝟏 ∙ 𝟐𝒎 + 𝒂𝟐 ∙ 𝟐𝒎−𝟏 + 𝒂𝟏 ∙ 𝟐𝒎 … + 𝒂𝒏 ∙ 𝟐𝒎−𝒏+𝟏
𝑥 = 525.222554 = 0.525222554 ∙ 103 = (0.525222 + 0.000000554) ∙ 103 = 0.525222 ∙ 103 + 0.000000554 ∙ 103
= 0.525222 ∙ 103 + 0.554 ∙ 0.525222 ∙ 10−6 ∙ 103 = 0.525222 ∙ 103 + 0.554 ∙ 0.525222 ∙ 103−6

Consideram numerele zecimale: 0.2397; -0.2397; 0.2375; 0.2365; 0.23652 pentru care se va efectua rotunjirea

Numar Aproximare prin Aproximare prin lipsa Aproximare prin adaos


rotunjire (trunchiere)
0.2397 0.240 0.239 0.240
-0.2397 -0.240 -0.240 -0.239
-0.5467 -0.547 -0.547 -0.546
0.2375 0.238 0.237 0.238
0.2365 0.236 0.237 0.237
0.23652 0.237 0.236 0.237
Aproximarea functiilor

Seria Taylor (dezvoltata in jurul punctului x0)

𝑓′(𝑥0 ) 𝑓′′(𝑥0 )
𝑓(𝑥) = 𝑓(𝑥0 ) + (𝑥 − 𝑥0 ) + (𝑥 − 𝑥0 )2 + ⋯ + 𝑅𝑛 (𝑥)
1! 2!
Seri Mac Laurin (dezvoltata in jurul valorii 0)
𝑓′(0) 𝑓′′(0) 2
𝑓(𝑥) = 𝑓(0) + 𝑥+ 𝑥 + ⋯ + 𝑅𝑛 (𝑥)
1! 2!
Orice funcţie derivabilă pe un interval, poate fi reprezentată numeric printr-o serie infinită, de exemplu de tip Taylor:
f (x i )
f ( x i +1) = f (x i ) + (xi +1 − xi ) + f (xi ) (xi +1 − xi )2 + f (xi ) (xi +1 − xi )3 +
1! 2! 3!
f (x i )(n )
.... + (xi +1 − xi )n + ...
n!
In practică, se estimează valoarea funcţiei folosind un număr finit de termeni din serie. Cu cât numărul de termeni este mai mare,
cu atât eroarea de trunchiere a seriei este mai mică. Şi totuşi, un număr relativ mic de termeni poate conduce la o estimare
satisfăcătoare. Reţinerea a n termeni din serie determină o aproximare de ordin „n”, eroarea rezultată din inlaturarea celorlalţi
termeni fiind egală cu aşa numitul reziduu:
f (n +1) ( ) n +1
Rn = h , unde   x i , x i +1 , iar h = x i +1 − x i
(n + 1)!
Aplicaţia 1.
Un paraşutist execută un salt în gol de la mare înălţime. Masa paraşutistului este m = 68,1 kg, coeficientul de frecare cu aerul c
=12,5 kg/s, iar acceleratia gravitationala g = 9,81 m/s2. Să se evidenţieze faptul că metodele numerice introduc erori comparativ
cu soluţia analitică.
Rezolvare:
Mişcarea acestui corp se realizează sub acţiunea a două forţe: greutatea şi forţa de frecare.

F = G − Ff = m  g − c  v 
 dv c
F = ma  =g− v
 dt m
dv
a= 
dt 

Această ecuaţie diferenţială de ordinul I descrie fenomenul şi trebuie integrată pentru a găsi funcţia care exprimă variaţia vitezei
în timp.
Soluţia analitică este:
 − t 
c
g m
v (t ) = 1− e m
c  

 
Problema poate fi rezolvată şi numeric:
Acceleraţia reprezintă variaţia vitezei în unitatea de timp şi atunci:
dv v v (t i +1 ) − v (t i )
 =
dt t t i +1 − t i
v (t i +1 ) − v (t i )
= g − v (t i ) ,
c
Se înlocuieşte în legea mişcării:
t i +1 − t i m
şi se explicitează v (t i +1 ) .
 
v (t i +1 ) = v (t i ) + g − v (t i ) (t i +1 − t i )
c
 m 
Cunoscând viteza la pasul de timp i, se poate aprecia viteza la pasul următor de timp, i+1. Pentru derularea calculului din aproape
în aproape, sunt necesare cunoaşterea valorii la momentul considerat zero, precum şi pasul de timp. Se recomandă calcularea
numerică a vitezei alegând un pas de timp h = ti+1 - ti egal cu 4 s, apoi 2 s şi în final 1 s.
Să se reprezinte grafic soluţiile numerice şi soluţia analitică şi să se comenteze rezultatele.
Aplicaţia 2.
Să se aproximeze y = e0,5 cu o expresie McLaurin având 1, 2, 3, 4, 5, 6 termeni. Să se calculeze eroarea absolută, eroarea relativă
exactă şi eroarea relativă aproximativă dacă valoarea exactă este: e0,5 =1,648721271

Rezolvare:
Seria McLaurin pentru funcţia exponenţială este:
x 2 x3 x 4 xn
y = ex = 1+ x + + + + .... + + ...
2! 3! 4! n!
Aproximaţiile de ordin „n” sunt:
n=0 y = ex  1
n=1 y = ex  1+ x
x2
n=2 y = ex  1+ x +
2!
x2 x3
n = 3 y = ex = 1+ x + +
2! 3!
.........
Să se comenteze erorile de truchiere asociate rezultatelor.

Aplicaţia 3.

Să se afle rădăcinile ecuaţiei de gradul 2: x 2 + 3000,001 x + 3 = 0


Rezolvare:
− b − b 2 − 4ac
x1 = = −3000
2a
− b + b 2 − 4ac − 3000.001 + 2999,999
x2 = = = −0,001   mare
2a 2
Observaţie: Scăderea unor numere zecimale foarte apropiate conduce la generare de erori de rotunjire.

Aplicaţia 4.

Să se aproximeze prin serie Taylor de ordinul n = 0, 1, 2, 3, 4 funcţia polinomială f ( x) = −0,1x 4 − 0,15 x 3 − 0,5 x 2 − 0,25 x + 1,2
definită pe intervalul [0,1]. Să se reprezinte grafic funcţia exactă şi cele cinci aproximaţii şi să se calculeze erorile asociate cu
acestea.

Indicaţie:
Dacă se consideră pasul h = 1, se porneşte de la valoarea f (0 ) = 1,2 şi se aplică aproximaţia prin serie finită Taylor. In prealabil

se calculează derivatele necesare ale funcţiei in x = 0 . Eroarea absolută a aproximaţiei este en = f (0) − fn (0)
f (0 ) f (x i ) 2 f (0 ) 3 f (0 )(n ) n
fn (1) = f (0 ) +
~
h+ h + h + .... + h
1! 2! 3! n!
Astfel,
n=0: f0 (1) = f (0) , e0 = ...
~

f (0 )
n=1: f1(1) = f (0 ) +
~
1, e1 = ...
1!
...
Să se comenteze evoluţia erorilor e n .

Aplicaţia 5.
Să se aproximeze funcţia f (x ) = x m cu seria Taylor de ordinal întâi pe intervalul [1,2]. Se consideră m = 1, 2, 3 sau 4 şi pasul h
= 1.

Indicaţie:
f ( x i + 1) = f (x i ) + mxi m −1  h
~

In acest caz, x i = 1 şi x i +1 = 2
Eroare absoluta devine e = f (2) − f (2) pentru fiecare valoare a lui m.
~
Să se comenteze efectul valorii puterii m asupra mărimii erorii de aproximare (efectul neliniarităţilor).
La algoritmul de aproximare de mai sus, se păstrează m = 4 şi se injumătăţeşte pasul h. Să se calculeze eroarea asociată cu
aproximarea funcţiei in x = 2 .
f (1.5) = f (1) + 4  13  0.5 = ...
~

f (2) = f (1.5) + 4  1.53  0.5 = ...


~

Să se comenteze influenţa mărimii pasului de discretizare asupra erorii de aproximare.

2.2 PROGRAME MATLAB

• Metodele numerice introduc erori comparativ cu soluţiile analitice


% DATELE PROBLEMEI: un parasutist executa un salt in gol de la % mare inaltime.
clear all
m=68.1; % kg - masa parasutistului
c=12.5; % kg/s - coeficientul de frecare cu aerul
g=9.81; % m/s2 - acceleratia gravitationala

tf=30; % sec. - intervalul de timp estimat la inceput


% SOLUTIA ANALITICA "a"
ta=0:0.05:tf; % timpul
va=m*g/c*(1-exp(-c/m*ta)); % viteza
plot(ta,va,'r.')
hold on; grid on
disp('press any key')
pause
% SOLUTIA NUMERICA "n"
h=4; % sec. - pasul de timp
tn=0:h:tf;
l=length(tn); % lungimea vectorului tn (nr. de
% elemente din vectorul vn)
vn(1)=0; % m/s - viteza initiala
for i=1:(l-1),
vn(i+1)=vn(i)+(g-c/m*vn(i))*h;
end
plot(tn,vn,'bo',tn,vn,'b')
disp('press any key')
pause
%--------------- reia solutia numerica cu un alt pas de timp -----
h=2; % sec.
tn=0:h:tf;
l=length(tn);
vn(1)=0; % m/s
for i=1:(l-1),
vn(i+1)=vn(i)+(g-c/m*vn(i))*h;
end
plot(tn,vn,'go',tn,vn,'g')
disp('press any key')
pause
%---------------- reia solutia numerica cu un alt pas de timp ----
h=1; % sec.
tn=0:h:tf;
l=length(tn);
vn(1)=0; % m/s
for i=1:(l-1),
vn(i+1)=vn(i)+(g-c/m*vn(i))*h;
end
plot(tn,vn,'yo',tn,vn,'y')
hold off

• Erori de trunchiere la aproximarea funcţiilor matematice cu serii finite


% Sa se aproximeze y=exp(0.5) cu o serie McLaurin avand 1 - 6 termeni
% exp(x) = 1+x^2/2+x^3/6+x^4/24+x^5/120+x^6/720..........

% Sa se calculeze eroarea absoluta, eroarea relativa exacta si eroarea


% relativa aproximativa daca valoarea exacta este

% exp(0.5) = 1.648721271
x=0.5;
y0=1.648721271;
y1=1;
y2=1+x^2/2;
y3=1+x^2/2+x^3/6;
y4=1+x^2/2+x^3/6+x^4/24;
y5=1+x^2/2+x^3/6+x^4/24+x^5/120;
y6=1+x^2/2+x^3/6+x^4/24+x^5/120+x^6/720;

e_abs1=y0-y1; e_abs2=y0-y2;e_abs3=y0-y3;e_abs4=y0-y4;e_abs5=y0-y5;
e_abs6=y0-y6;
e_rel1=abs(e_abs1)/y0*100; % [%]
.......
e_rel_apr1=abs(y2-y1)/y2;
.......
• Erori de rotunjire (round-off errors) la scăderea unor numere zecimale foarte apropiate
% Sa se afle radacinile ecuatiei de gradul 2: x^2+3000.001*x+3=0
clear all
x1=(-3000.001-(3000.001^2-4*3)^0.5)/2;
x2=(-3000.001+(3000.001^2-4*3)^0.5)/2;

% apare aici diferenta a 2 numere foarte apropiate!


% De la "Options" alege "Long Numeric Format" si repeta programul

% Foloseste expresia alternativa pentru x2, obtinuta prin inmultirea cu


% conjugata

xx2=-2*3/(3000.001+(3000.001^2-4*3)^0.5)

% Afla radacinile folosind comanda "roots"


x1_x2=roots([1 3000.01 3])'

• Aproximarea prin serie Taylor a unei funcţii polinomiale


% Considerati functia f(x) polinomiala definita pe intervalul [0;1]:

clear all
x=0:0.01:1;
m=length(x);
f=-0.1*x.^4-0.15*x.^3-0.5*x.^2-0.25*x+1.2;
% Aproximarea Taylor de ordinul '0':
f0=f(1)*ones(size(x));

% Aproximarea Taylor de ordinul '1':


f1=1.2-0.25*(x-0);

% Aproximarea Taylor de ordinul '2':


f2=f1-0.5*(x-0).^2;

% Aproximarea Taylor de ordinul '3':


f3=f2-0.15*(x-0).^3;

% Aproximarea Taylor de ordinul '4':


f4=f3-0.10*(x-0).^4;

% Se reprezinta grafic funtia exacta si cele 5 aproximatii


plot(x,f,'r*',x,f0,'yo',x,f1,'bo',x,f2,'mo',x,f3,'co',x,f4,'go')
axis([-0.1 1.1 0 1.5])
grid

% Calculeaza eroarea functiei in x=1, asociata cu fiecare aproximare:


eroarea_absoluta=f(m)-[f0(m) f1(m) f2(m) f3(m) f4(m)]

• Efectul neliniarităţilor asupra aproximării Taylor

% Sa se aproximeze functia f(x)=x^m cu seria Taylor de ordinul 1, pe [1; 2]:


clear all
clf
x=1:0.05:2; l=length(x);
% Se considera m = 1, 2, 3 sau 4 si pasul h=2-1=1.
m=1;
f1=x.^m; % functia exacta
fa1=f1(1)+m*1^(m-1)*(x-1); % functia aproximata in x=2
figure(1)
plot(x,f1,'r',x,fa1,'ro')
xlabel('x')
ylabel('f(x)')
grid
text(1.8,1.5,'m=1')
hold on
%-------------------------------------------
m=2;
f2=x.^m;
fa2=f2(1)+m*1^(m-1)*(x-1);
plot(x,f2,'g',x,fa2,'go')
text(1.9,3.5,'m=2')
%-------------------------------------------
m=3;
f3=x.^m;
fa3=f3(1)+m*1^(m-1)*(x-1);
plot(x,f3,'b',x,fa3,'bo')
text(1.8,5.5,'m=3')
%-------------------------------------------
m=4;
f4=x.^m;
fa4=f4(1)+m*1^(m-1)*(x-1);
plot(x,f4,'c',x,fa4,'co')
text(1.7,7.5,'m=4')

% Calculeaza eroarea asociata in fiecare caz cu calculul in x=2


eroarea_absoluta=[f1(l)-fa1(l) f2(l)-fa2(l) f3(l)-fa3(l) f4(l)-fa4(l)]
% Calculeaza eroarea asociata cu modificarea lui h, pt. m=4:
h=1:-0.1:0;
R=6*h.^2+4*h.^3+h.^4;
figure(2); plot(h,R,'*'); xlabel('h'); ylabel('eroarea absoluta'); grid
2.3 PROGRAME MATHCAD

• Metodele numerice introduc erori comparativ cu soluţiile analitice

Datele problemei
kg m
mp = 68.1kg cf = 12.5 ag = 9.81 tf = 30s
s 2
s
1.Viteza finalã calculatã în functie de un t notat ta (analitic) este:
 − cf 
 t 
ag  mp a  t = 0s  0.05s  t m
vf (ta) = mp   1 − e a f vf ( 30s) = 53.228
s
cf

2. Solutia numericã

Fie pasul initial de:


h1 = 4s
Numarul de iteratii este deci
tf
n1 = i = 1  n1 + 1 t1 = 0 + h1 ( i − 1)
h1 i
Viteza initiala
m  cf 
v1 = 0 v1 = v1 +  g −  v1   h1
i+ 1
1 s i
 mp i

Se repeta calculele pentru un pas de 2s respectiv 1s
tf
h2 = 2s n2 = i = 1  n2 + 1 t2 = 0 + h2 ( i − 1)
h2 i

Viteza initiala
m  cf 
v2 = 0 v2 = v2 +  g −  v2   h2
i+ 1
1 s i
 mp i

tf
h3 = 1s n3 = i = 1  n3 + 1 t3 = 0 + h3 ( i − 1)
h3 i

Viteza initiala

m  cf 
v3 = 0 v3 = v3 +  g −  v   h3
i+ 1 mp 3i
1 s i
 

• Erori de trunchiere la aproximarea funcţiilor matematice cu serii finite


Sa se aproximeze y=e0.5 cu o serie McLaurin avand 1, 2, 3, ...6 termeni
2 3 4 5 6
x x x x x x
e 1 +x+ 2
+ 6
+ 24
+ 120
+ 720

Sa se calculeze eroarea absoluta eroarea relativa exacta si eroarea


relativa aproximativa daca valoarea exacta este:
e0.5=1.648721271

0.5
x = 0.5 ye = e
2 2 3
x x x
y1 = 1 + x y2 = 1 + x + 2
y3 = 1 + x + 2
+ 6

2 3 4 2 3 4 5
x x x x x x x
y4 = 1 + x + 2
+ 6
+ 24
y5 = 1 + x + 2
+ 6
+ 24
+ 120

2 3 4 5 6
x x x x x
y6 = 1 + x + 2
+ 6
+ 24
+ 120
+ 720

e_absi
i = 1  6 e_absi = ye − yi e_rel i =  100
ye
i = 2  6
yi − yi − 1
e_rel_apri =
yi

• Efectul neliniarităţilor asupra aproximării Taylor


Se considera functia f(x)=x^m definita pe intervalul [1;2]
Sa se aproximeze aceasta functie cu seria Taylor de ordinul 1 in punctul 2.
Se va considera m = 1, 2, 3,4.
Sa se calculeze eroarea asociata.
x = 1  1.05  2 m = 1
m
f1 ( x) = x
Functia aproximata in x=2 este:
fa1 = f1( 1) + m  1 m−1  ( 2 − 1)

err = f1( 2) − fa1 err = 0


2
m = 2 f2 ( x) = x

Functia aproximata in x=2 este:


fa2 = f2( 1) + m  1 m−1  ( 2 − 1)
err = f2( 2) − fa2 err = 1
3
m = 3 f3 ( x) = x

Functia aproximata in x=2 este:

fa3 = f3( 1) + m  1 m−1  ( 2 − 1)

err = f3( 2) − fa3 err = 4

4
m = 4 f4 ( x) = x

Functia aproximata in x=2 este:


fa4 = f4( 1) + m  1 m−1  ( 2 − 1)

err = f4( 2) − fa4 err = 11


Probleme propuse

2.1. Se dă funcţia: f(x) = -0.1 x4 - 0.15 x3 - 0.5x2 - 0.25 x + 1.2. Pornind de la f(0) = 1.2, să se aproximeze f(1) folosind o serie
Taylor de ordin 1- 5. Să se calculeze erorile absolute şi erorile relative şi să se comenteze rezultatele.
2.2. Să se calculeze eroarea asociată cu calculul rezistenţei electrice a unui rezistor de formă cilindrică cu d = 5 mm şi lungimea l
= 2 cm, alcătuit din cupru cu rezistivitatea  = 1500 m. Eroarea de măsurare a lungimilor este el = 0,1 mm, iar cea de
măsurare a rezistivităţii este e=10 m
2.3. Să se calculeze eroarea relativă asociată cu aproximarea funcţiei f (x ) = ln x + x 2 cu o serie Taylor trunchiată de ordinul 1, pe
intervalul [1;2] şi cu pasul h=0.5.
2.4. Să se calculeze eroarea asociată cu calculul puterii electrice P = RI2 , ştiind că eroarea ohmetrului este eR = 0.5 , iar cea a
ampermetrului este el = 0.1 A, pentru R = 10 , I = 7 A
2.5. Să se calculeze eroarea absolută/relativă asociată cu aproximarea funcţiei f (x ) = x 2,5 cu o serie Taylor trunchiată de ordinul
1 sau 2, pe intervalul [1;2], h = 1.
2.6. Să se calculeze eroarea absolută/relativă asociată cu aproximarea funcţiei f (x ) = x 3 / f (x ) = x 4 cu o serie Taylor trunchiată de
ordinul 1 sau 2, pe intervalul [2;3].
2.7. Să se calculeze tg(x) pentru următoarele valori precalculate:
   
x~ =  0.1 si x~ =  0.01
2 2 2 2
x  f ' (x~)
~
2.8. Să se calculeze criteriul de stabilitate CS = în toate cazurile.
f (x )
Obs: Valorile precalculate ale lui x se află în apropierea unui punct singular, fapt pentru care o eroare oricat de mica in
determinarea lui x conduce la erori de calcul enorme prin functia tg.
2.9. Se consideră o barcă prevăzută cu catarg, pentru care s-au determinat următoarele mărimi şi erorile lor:
~ ~
- incărcarea liniară: F = 50 N/m , e F = 2 N / m ( F = F  eF )
~ ~
- lungimea catargului: L = 30 m , eL = 10 cm ( L = L  eL )
~
- modulul de elasticitate: E = 1.5  108 N/m2 , eE = 10 6 N/m 2 ( E = E~  eE )
~ ~
- momentul de inerţie: I = 0.06 m4 , eI = 0.0006 m 4 ( I = I  eI )
F  L4
Să se calculeze abaterea vârfului (deflecţia) catargului, y = , precum şi eroarea de calcul a acesteia ey ( y = ~
y  ey
8 E  I
).

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