Download presentation
Presentation is loading. Please wait.
Published byLewis Washington Modified over 9 years ago
1
Math.375 Fall 2005 4. Errors in Numerical Computation Vageli Coutsias
2
Types of errors in numerical computation Roundoff errors Pi = 3.14159 Pi = 3.1415926535897932384626 Truncation errors Cos x = 1 – x^2/2 Cos x = 1 – x^2/2 + x^4/4! Errors usually accumulate randomly (random walk) But they can also be systematic, and the reasons may be subtle!
3
x = linspace(1-2*10^-8,1+2*10^-8,401); f = x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1; plot(x,f) CANCELLATION ERRORS
4
g = -1+x.*(7+x.*(-21+x.*(35+x.*(-35+x.*(21+x.*(-7+x)))))); plot(x,g)
5
h = (x-1).^7; plot(x,h)
6
plot(x,h,x,g,x,f)
7
z(1) = 0; z(2) = 2; for k = 2:29 z(k+1) = 2^(k-1/2)*(1-(1-4^(1-k)*z(k)^2)^(1/2))^(1/2); end semilogy(1:30,abs(z-pi)/pi)
8
% Plot derivative error vs. h % to exhibit optimal step clear fname = 'sin'; fname1= 'cos'; delta = eps; hmin = 10^6*eps; hmax = 10^10*eps; xmax = 1; x=pi/4; M2=1; % estimate for second derivative hopt = 2*sqrt(delta/M2);% h for minimum error yopt = (M2/2)*hopt+2*delta/hopt; d = (feval(fname,x+hopt)-feval(fname,x))/hopt;
9
h = linspace(hmin,hmax,1000); y1 = (M2/2)*h; % truncation error y2 = 2*delta./h; % roundoff error y = y1 + y2; % total error derivh =(feval(fname,x+h) - feval(fname,x))./h; abserr = abs(feval(fname1,x)-derivh); loglog(h,y,h,y1,h,y2,h,abserr,hopt,yopt,'bo'); xlabel(sprintf('hopt = %3.2d, d%s(%3.2d)/dx=… %3.2d +/-%3.2d',hopt,fname,x,d,err)) ylabel('abserr, maxerr') title(sprintf('derivative error as function of h … for %s(x)',fname)) axis([hmin hmax 10^(-12) 10^(-4)])
11
Vocabulary Consistency – correctness - … Convergence (rate) Efficiency (operation counts) Numerical Stability (error amplification) Accuracy (relative vs. absolute error) Roundoff vs. Truncation
12
Due to limitations in computer arithmetic, need to practice “defensive coding”. Mathematics numerics + implementation The sequence of computations carried out for the solution of a mathematical problem can be so complex as to require a mathematical analysis of its own correctness. How can we determine efficiency? TextText
13
Recurrence relations
14
Instability is inescapable; But one can learn to ride it!
17
APPENDIX NUMERICAL MONSTERS: a collection of curious phenomena exhibited by computations at the limit of machine precision
18
The first monster: T(x) = e^x * log(1+e^-1) For x>30 a dramatic deviation from the theoretical value 1 is found. For x>36.7 the plotted value drops (incorrectly) to zero Here: x = linspace(0,40,1000); y = exp(x).*log(1+exp(-x)); for k=1:50, term = x*term/k; s = s+term;err(k) = abs(f(k) - s);end relerr = err/exp(x); semilogy(1:nTerms,relerr)% semilogy(1:nTerms,err) ylabel('Relative Error in Partial Sum.') xlabel('Order of Partial Sum.') title(sprintf('x = %5.2f',x)) figure semilogy(1:nTerms,err)%end term = 1; s = 1; f = exp(x)*ones(nTerms,1); for k=1:50, term = x*term/k; s = s+term; err(k) = abs(f(k) - s); end relerr = err/exp(x); semilogy(1:nTerms,relerr)% semilogy(1:nTerms,err) ylabel('Relative Error in Partial Sum.') xlabel('Order of Partial Sum.') title(sprintf('x = %5.2f',x)) figure semilogy(1:nTerms,err)%end for k=1:50, term = x*term/k; s = s+term;err(k) = abs(f(k) - s);end relerr = err/exp(x); semilogy(1:nTerms,relerr)% semilogy(1:nTerms,err) ylabel('Relative Error in Partial Sum.') xlabel('Order of Partial Sum.') title(sprintf('x = %5.2f',x)) figure semilogy(1:nTerms,err)%end term = 1; s = 1; f = exp(x)*ones(nTerms,1); for k=1:50, term = x*term/k; s = s+term; err(k) = abs(f(k) - s); end relerr = err/exp(x); semilogy(1:nTerms,relerr)% semilogy(1:nTerms,err) ylabel('Relative Error in Partial Sum.') xlabel('Order of Partial Sum.') title(sprintf('x = %5.2f',x)) figure semilogy(1:nTerms,err)%end
22
Pet Monster I
26
III.MISCELLANEOUS OPERATIONS: (1) Setting ranges for axes, axis([-40 0 0 0.1]) (2) Superimposing plots: plot(x,y,x,exp(x),'o') (3) using "hold on/hold off" (4) Subplots: subplot(m,n,k)
27
Summary Roundoff and other errors Multiple plots
28
References C. Essex, M.Davidson, C. Schulzky, “Numerical Monsters”, preprint. Higham & Higham, Matlab Guide, SIAM B5 Trailer; http://www.scifi.com/b5rangers/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.