numerical analysis introduction

94
Numerical Analysis Introduction Andreas Kloeckner h[email protected]i Base slides c Michael T. Heath CS 450 · January 22, 2014 About this class Introduction Errors Conditioning S and A Computer arithmetic

Upload: others

Post on 19-Nov-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numerical Analysis Introduction

Numerical AnalysisIntroduction

Andreas Kloeckner 〈[email protected]〉Base slides c© Michael T. Heath

CS 450 · January 22, 2014

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 2: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 3: Numerical Analysis Introduction

Course Goal

Mathematical problem goes in.

Accurate solution comesout, quickly.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 4: Numerical Analysis Introduction

Course Goal

Mathematical problem goes in.

Accurate solution comesout, quickly efficiently.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 5: Numerical Analysis Introduction

Course Outline

IntroLinear systemsLinear least squaresEigenvalue problemsNonlinear equationsOptimization

InterpolationIntegration andDifferentiationIVPs for ODEsBVPs for ODEsPDEsFFTsMonte Carlo

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 6: Numerical Analysis Introduction

Survey

Home departmentLongest program everwritten? in Python?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 7: Numerical Analysis Introduction

Class web page

bit.ly/cs450-s14

Will post homework, slides, codehereSchedule, policiesLinks to supplementary materialFirst homework out nextWednesday

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 8: Numerical Analysis Introduction

Class web page

bit.ly/cs450-s14

Will post homework, slides, codehereSchedule, policiesLinks to supplementary materialFirst homework out nextWednesday

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 9: Numerical Analysis Introduction

Piazza

Will use to post announcementsPlease subscribeAnswer each other’s questionsTAs and I are monitoring and willjump in when needed

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 10: Numerical Analysis Introduction

Piazza

Will use to post announcementsPlease subscribeAnswer each other’s questionsTAs and I are monitoring and willjump in when needed

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 11: Numerical Analysis Introduction

Book

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 12: Numerical Analysis Introduction

Grading

30% Homework (+perhaps Quizzes)20% Exam #120% Exam #230% Final Exam

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 13: Numerical Analysis Introduction

Policies

Late Work policy: Work submitted after the deadline will countfor half of its original worth. This offer is good for up to oneweek after the original deadline. After that, no late work will beaccepted.

Make-up exam policy: Make-up exams must be requested atleast one week before the original or make-up date, whicheveris sooner.

Please let me (Andreas) know as soon as you can if you needspecial accommodations (extra time etc.) on exams. Thanks!

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 14: Numerical Analysis Introduction

Python

Open, free, cross-platformModularMatureWidely used

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 15: Numerical Analysis Introduction

Virtual Machine

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 16: Numerical Analysis Introduction

Pythonfrom time import localtime

activities = {8: ’Sleeping’,9: ’Commuting’,17: ’Working’,18: ’Commuting’,20: ’Eating’ ,22: ’Resting’ }

time now = localtime()hour = time now.tm hour

for activity time in sorted( activities .keys ()):if hour < activity time :

print activities [ activity time ]break

else:print ’Unknown!’

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 17: Numerical Analysis Introduction

Python with Arrays

Demo

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 18: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 19: Numerical Analysis Introduction

Goal today:What is scientific computing?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 20: Numerical Analysis Introduction

Scientific ComputingScientific Computing

ApproximationsComputer Arithmetic

IntroductionComputational ProblemsGeneral Strategy

Scientific Computing

What is scientific computing?

Design and analysis of algorithms for numerically solvingmathematical problems in science and engineeringTraditionally called numerical analysis

Distinguishing features of scientific computing

Deals with continuous quantitiesConsiders effects of approximations

Why scientific computing?

Simulation of natural phenomenaVirtual prototyping of engineering designs

Michael T. Heath Scientific Computing 3 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 21: Numerical Analysis Introduction

Well-posednessScientific Computing

ApproximationsComputer Arithmetic

IntroductionComputational ProblemsGeneral Strategy

Well-Posed Problems

Problem is well-posed if solutionexistsis uniquedepends continuously on problem data

Otherwise, problem is ill-posed

Even if problem is well posed, solution may still besensitive to input data

Computational algorithm should not make sensitivity worse

Michael T. Heath Scientific Computing 4 / 46

Why ‘continuously’? What’s the issue?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 22: Numerical Analysis Introduction

Well-posednessScientific Computing

ApproximationsComputer Arithmetic

IntroductionComputational ProblemsGeneral Strategy

Well-Posed Problems

Problem is well-posed if solutionexistsis uniquedepends continuously on problem data

Otherwise, problem is ill-posed

Even if problem is well posed, solution may still besensitive to input data

Computational algorithm should not make sensitivity worse

Michael T. Heath Scientific Computing 4 / 46Why ‘continuously’? What’s the issue?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 23: Numerical Analysis Introduction

Well-posednessScientific Computing

ApproximationsComputer Arithmetic

IntroductionComputational ProblemsGeneral Strategy

Well-Posed Problems

Problem is well-posed if solutionexistsis uniquedepends continuously on problem data

Otherwise, problem is ill-posed

Even if problem is well posed, solution may still besensitive to input data

Computational algorithm should not make sensitivity worse

Michael T. Heath Scientific Computing 4 / 46

Why ‘continuously’? What’s the issue?

Counterexample?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 24: Numerical Analysis Introduction

Well-posednessScientific Computing

ApproximationsComputer Arithmetic

IntroductionComputational ProblemsGeneral Strategy

Well-Posed Problems

Problem is well-posed if solutionexistsis uniquedepends continuously on problem data

Otherwise, problem is ill-posed

Even if problem is well posed, solution may still besensitive to input data

Computational algorithm should not make sensitivity worse

Michael T. Heath Scientific Computing 4 / 46

Why ‘continuously’? What’s the issue?

Counterexample?

Some ill-posed problems are too interestingto let go. But: not in this class.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 25: Numerical Analysis Introduction

ApproximationScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Sources of Approximation

Before computationmodelingempirical measurementsprevious computations

During computationtruncation or discretizationrounding

Accuracy of final result reflects all these

Uncertainty in input may be amplified by problem

Perturbations during computation may be amplified byalgorithm

Michael T. Heath Scientific Computing 6 / 46

Sound far-fetched?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 26: Numerical Analysis Introduction

ApproximationScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Sources of Approximation

Before computationmodelingempirical measurementsprevious computations

During computationtruncation or discretizationrounding

Accuracy of final result reflects all these

Uncertainty in input may be amplified by problem

Perturbations during computation may be amplified byalgorithm

Michael T. Heath Scientific Computing 6 / 46Sound far-fetched?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 27: Numerical Analysis Introduction

ApproximationScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Sources of Approximation

Before computationmodelingempirical measurementsprevious computations

During computationtruncation or discretizationrounding

Accuracy of final result reflects all these

Uncertainty in input may be amplified by problem

Perturbations during computation may be amplified byalgorithm

Michael T. Heath Scientific Computing 6 / 46

Sound far-fetched?

Compute the surface area of theearth.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 28: Numerical Analysis Introduction

Example: ApproximationScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Approximations

Computing surface area of Earth using formula A = 4πr2

involves several approximations

Earth is modeled as sphere, idealizing its true shape

Value for radius is based on empirical measurements andprevious computations

Value for π requires truncating infinite process

Values for input data and results of arithmetic operationsare rounded in computer

Michael T. Heath Scientific Computing 7 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 29: Numerical Analysis Introduction

All models are wrong,some are useful.

— George Box

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 30: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 31: Numerical Analysis Introduction

Scientific computingalways gets the answer

wrong.

Remaining question: by how much?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 32: Numerical Analysis Introduction

Scientific computingalways gets the answer

wrong.

Remaining question: by how much?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 33: Numerical Analysis Introduction

Abs./rel. errorScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Absolute Error and Relative Error

Absolute error : approximate value − true value

Relative error :absolute error

true value

Equivalently, approx value = (true value) × (1 + rel error)

True value usually unknown, so we estimate or bounderror rather than compute it exactly

Relative error often taken relative to approximate value,rather than (unknown) true value

Michael T. Heath Scientific Computing 8 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 34: Numerical Analysis Introduction

Error sources IScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Data Error and Computational Error

Typical problem: compute value of function f : R→ R forgiven argument

x = true value of inputf(x) = desired resultx = approximate (inexact) inputf = approximate function actually computed

Total error: f(x)− f(x) =

f(x)− f(x) + f(x)− f(x)

computational error + propagated data error

Algorithm has no effect on propagated data error

Michael T. Heath Scientific Computing 9 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 35: Numerical Analysis Introduction

Error sources IIScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Truncation Error and Rounding Error

Truncation error : difference between true result (for actualinput) and result produced by given algorithm using exactarithmetic

Due to approximations such as truncating infinite series orterminating iterative sequence before convergence

Rounding error : difference between result produced bygiven algorithm using exact arithmetic and result producedby same algorithm using limited precision arithmetic

Due to inexact representation of real numbers andarithmetic operations upon them

Computational error is sum of truncation error androunding error, but one of these usually dominates

< interactive example >

Michael T. Heath Scientific Computing 10 / 46

Demo

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 36: Numerical Analysis Introduction

Error sources IIScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Truncation Error and Rounding Error

Truncation error : difference between true result (for actualinput) and result produced by given algorithm using exactarithmetic

Due to approximations such as truncating infinite series orterminating iterative sequence before convergence

Rounding error : difference between result produced bygiven algorithm using exact arithmetic and result producedby same algorithm using limited precision arithmetic

Due to inexact representation of real numbers andarithmetic operations upon them

Computational error is sum of truncation error androunding error, but one of these usually dominates

< interactive example >

Michael T. Heath Scientific Computing 10 / 46Demo

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 37: Numerical Analysis Introduction

Forward/Backward Error IScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Forward and Backward Error

Suppose we want to compute y = f(x), where f : R→ R,but obtain approximate value y

Forward error : ∆y = y − y

Backward error : ∆x = x− x, where f(x) = y

Michael T. Heath Scientific Computing 13 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 38: Numerical Analysis Introduction

Forward/Backward Error IIScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Forward and Backward Error

As approximation to y =√

2, y = 1.4 has absolute forwarderror

|∆y| = |y − y| = |1.4− 1.41421 . . . | ≈ 0.0142

or relative forward error of about 1 percent

Since√

1.96 = 1.4, absolute backward error is

|∆x| = |x− x| = |1.96− 2| = 0.04

or relative backward error of 2 percent

Michael T. Heath Scientific Computing 14 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 39: Numerical Analysis Introduction

Backward Error Analysis IScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Backward Error Analysis

Idea: approximate solution is exact solution to modifiedproblem

How much must original problem change to give resultactually obtained?

How much data error in input would explain all error incomputed result?

Approximate solution is good if it is exact solution to nearbyproblem

Backward error is often easier to estimate than forwarderror

Michael T. Heath Scientific Computing 15 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 40: Numerical Analysis Introduction

Backward Error Analysis IIScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Backward Error Analysis

Approximating cosine function f(x) = cos(x) by truncatingTaylor series after two terms gives

y = f(x) = 1− x2/2

Forward error is given by

∆y = y − y = f(x)− f(x) = 1− x2/2− cos(x)

To determine backward error, need value x such thatf(x) = f(x)

For cosine function, x = arccos(f(x)) = arccos(y)

Michael T. Heath Scientific Computing 16 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 41: Numerical Analysis Introduction

Backward Error Analysis II cont’dScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example, continued

For x = 1,

y = f(1) = cos(1) ≈ 0.5403

y = f(1) = 1− 12/2 = 0.5

x = arccos(y) = arccos(0.5) ≈ 1.0472

Forward error: ∆y = y − y ≈ 0.5− 0.5403 = −0.0403

Backward error: ∆x = x− x ≈ 1.0472− 1 = 0.0472

Michael T. Heath Scientific Computing 17 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 42: Numerical Analysis Introduction

Worksheet problem 1

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 43: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 44: Numerical Analysis Introduction

Sensitivity and ConditioningScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Sensitivity and Conditioning

Problem is insensitive, or well-conditioned, if relativechange in input causes similar relative change in solution

Problem is sensitive, or ill-conditioned, if relative change insolution can be much larger than that in input data

Condition number :

cond =|relative change in solution||relative change in input data|

=|[f(x)− f(x)]/f(x)||(x− x)/x| =

|∆y/y||∆x/x|

Problem is sensitive, or ill-conditioned, if cond� 1

Michael T. Heath Scientific Computing 18 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 45: Numerical Analysis Introduction

Condition NumberScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Condition Number

Condition number is amplification factor relating relativeforward error to relative backward error

∣∣∣∣relative

forward error

∣∣∣∣ = cond ×∣∣∣∣

relativebackward error

∣∣∣∣

Condition number usually is not known exactly and mayvary with input, so rough estimate or upper bound is usedfor cond, yielding

∣∣∣∣relative

forward error

∣∣∣∣ / cond ×∣∣∣∣

relativebackward error

∣∣∣∣

Michael T. Heath Scientific Computing 19 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 46: Numerical Analysis Introduction

Condition Number: ExampleScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Evaluating Function

Evaluating function f for approximate input x = x+ ∆xinstead of true input x gives

Absolute forward error: f(x+ ∆x)− f(x) ≈ f ′(x)∆x

Relative forward error:f(x+ ∆x)− f(x)

f(x)≈ f ′(x)∆x

f(x)

Condition number: cond ≈∣∣∣∣f ′(x)∆x/f(x)

∆x/x

∣∣∣∣ =

∣∣∣∣xf ′(x)

f(x)

∣∣∣∣

Relative error in function value can be much larger orsmaller than that in input, depending on particular f and x

Michael T. Heath Scientific Computing 20 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 47: Numerical Analysis Introduction

Sensitivity: ExampleScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Sensitivity

Tangent function is sensitive for arguments near π/2

tan(1.57079) ≈ 1.58058× 105

tan(1.57078) ≈ 6.12490× 104

Relative change in output is quarter million times greaterthan relative change in input

For x = 1.57079, cond ≈ 2.48275× 105

Michael T. Heath Scientific Computing 21 / 46

Is there an ‘overall’ condition number for evalu-ating the tangent function?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 48: Numerical Analysis Introduction

Sensitivity: ExampleScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Sensitivity

Tangent function is sensitive for arguments near π/2

tan(1.57079) ≈ 1.58058× 105

tan(1.57078) ≈ 6.12490× 104

Relative change in output is quarter million times greaterthan relative change in input

For x = 1.57079, cond ≈ 2.48275× 105

Michael T. Heath Scientific Computing 21 / 46

Is there an ‘overall’ condition number for evalu-ating the tangent function?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 49: Numerical Analysis Introduction

Sensitivity: ExampleScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Example: Sensitivity

Tangent function is sensitive for arguments near π/2

tan(1.57079) ≈ 1.58058× 105

tan(1.57078) ≈ 6.12490× 104

Relative change in output is quarter million times greaterthan relative change in input

For x = 1.57079, cond ≈ 2.48275× 105

Michael T. Heath Scientific Computing 21 / 46

Is there an ‘overall’ condition number for evalu-ating the tangent function?

→ A ‘global bound’ on the condition number

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 50: Numerical Analysis Introduction

Worksheet problem 2

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 51: Numerical Analysis Introduction

Input data has error (→ propagates)Conditioning helps understand that:“Amplification factor” (local/global)

Computation itself may also produce errorDifferent type of errorNeed more words

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 52: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 53: Numerical Analysis Introduction

For fixed input variability:

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 54: Numerical Analysis Introduction

StabilityScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Stability

Algorithm is stable if result produced is relativelyinsensitive to perturbations during computation

Stability of algorithms is analogous to conditioning ofproblems

From point of view of backward error analysis, algorithm isstable if result produced is exact solution to nearbyproblem

For stable algorithm, effect of computational error is noworse than effect of small data error in input

Michael T. Heath Scientific Computing 22 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 55: Numerical Analysis Introduction

AccuracyScientific Computing

ApproximationsComputer Arithmetic

Sources of ApproximationError AnalysisSensitivity and Conditioning

Accuracy

Accuracy : closeness of computed solution to true solutionof problem

Stability alone does not guarantee accurate results

Accuracy depends on conditioning of problem as well asstability of algorithm

Inaccuracy can result from applying stable algorithm toill-conditioned problem or unstable algorithm towell-conditioned problem

Applying stable algorithm to well-conditioned problemyields accurate solution

Michael T. Heath Scientific Computing 23 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 56: Numerical Analysis Introduction

Worksheet problem 3

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 57: Numerical Analysis Introduction

Outline

About this class

Introduction

Errors

Sensitivity and Conditioning

Stability and Accuracy

Computer arithmetic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 58: Numerical Analysis Introduction

Depressing fact

Real numbers (∈ R)(generically)

do not fit into a computer.

Have to fake those, too.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 59: Numerical Analysis Introduction

Depressing fact

Real numbers (∈ R)(generically)

do not fit into a computer.

Have to fake those, too.

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 60: Numerical Analysis Introduction

Depressing fact

Real numbers (∈ R)(generically)

do not fit into a computer.Have to fake those, too.

Best we can do is bit patterns.

Suggestions?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 61: Numerical Analysis Introduction

Floating point

Floating point numbers: mantissa · 2exponent

1. 1 0 1 1 0 1exponent: -0

10. 0 0 0 1 0 1 1 0 1exponent: -4

10. 0 0 0 0 0 0 0 1 0 1 1 0 1exponent: -8

10. 0 1 0 1 1 0 1exponent: -2

What happens if you compute a verysmall number by subtracting very bignumbers?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 62: Numerical Analysis Introduction

Floating point

Floating point numbers: mantissa · 2exponent

1. 1 0 1 1 0 1exponent: -0

10. 0 0 0 1 0 1 1 0 1exponent: -4

10. 0 0 0 0 0 0 0 1 0 1 1 0 1exponent: -8

10. 0 1 0 1 1 0 1exponent: -2

What happens if you compute a verysmall number by subtracting very bignumbers?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 63: Numerical Analysis Introduction

Floating-pointScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Floating-Point Numbers

Floating-point number system is characterized by fourintegers

β base or radixp precision[L,U ] exponent range

Number x is represented as

x = ±(d0 +

d1β

+d2β2

+ · · ·+ dp−1βp−1

)βE

where 0 ≤ di ≤ β − 1, i = 0, . . . , p− 1, and L ≤ E ≤ U

Michael T. Heath Scientific Computing 24 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 64: Numerical Analysis Introduction

Floating-point, cont’dScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Floating-Point Numbers, continued

Portions of floating-poing number designated as follows

exponent : Emantissa : d0d1 · · · dp−1

fraction : d1d2 · · · dp−1

Sign, exponent, and mantissa are stored in separatefixed-width fields of each floating-point word

Michael T. Heath Scientific Computing 25 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 65: Numerical Analysis Introduction

Floating-point systemsScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Typical Floating-Point Systems

Parameters for typical floating-point systemssystem β p L U

IEEE SP 2 24 −126 127IEEE DP 2 53 −1022 1023Cray 2 48 −16383 16384HP calculator 10 12 −499 499IBM mainframe 16 6 −64 63

Most modern computers use binary (β = 2) arithmetic

IEEE floating-point systems are now almost universal indigital computers

Michael T. Heath Scientific Computing 26 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 66: Numerical Analysis Introduction

Floating-point: normalizationScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Normalization

Floating-point system is normalized if leading digit d0 isalways nonzero unless number represented is zero

In normalized systems, mantissa m of nonzerofloating-point number always satisfies 1 ≤ m < β

Reasons for normalizationrepresentation of each number uniqueno digits wasted on leading zerosleading bit need not be stored (in binary system)

Michael T. Heath Scientific Computing 27 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 67: Numerical Analysis Introduction

Floating-point systems: propertiesScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Properties of Floating-Point Systems

Floating-point number system is finite and discrete

Total number of normalized floating-point numbers is

2(β − 1)βp−1(U − L+ 1) + 1

Smallest positive normalized number: UFL = βL

Largest floating-point number: OFL = βU+1(1− β−p)

Floating-point numbers equally spaced only betweensuccessive powers of β

Not all real numbers exactly representable; those that areare called machine numbers

Michael T. Heath Scientific Computing 28 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 68: Numerical Analysis Introduction

Floating-point: exampleScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Floating-Point System

Tick marks indicate all 25 numbers in floating-point systemhaving β = 2, p = 3, L = −1, and U = 1

OFL = (1.11)2 × 21 = (3.5)10

UFL = (1.00)2 × 2−1 = (0.5)10

At sufficiently high magnification, all normalizedfloating-point systems look grainy and unequally spaced

< interactive example >

Michael T. Heath Scientific Computing 29 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 69: Numerical Analysis Introduction

Floating-point: roundingScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Rounding Rules

If real number x is not exactly representable, then it isapproximated by “nearby” floating-point number fl(x)

This process is called rounding, and error introduced iscalled rounding error

Two commonly used rounding ruleschop : truncate base-β expansion of x after (p− 1)st digit;also called round toward zeroround to nearest : fl(x) is nearest floating-point number tox, using floating-point number whose last stored digit iseven in case of tie; also called round to even

Round to nearest is most accurate, and is default roundingrule in IEEE systems

< interactive example >

Michael T. Heath Scientific Computing 30 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 70: Numerical Analysis Introduction

Demo: FP vsprogram logic

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 71: Numerical Analysis Introduction

Floating-point: machine precisionScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Machine Precision

Accuracy of floating-point system characterized by unitroundoff (or machine precision or machine epsilon)denoted by εmach

With rounding by chopping, εmach = β1−p

With rounding to nearest, εmach = 12β

1−p

Alternative definition is smallest number ε such thatfl(1 + ε) > 1

Maximum relative error in representing real number xwithin range of floating-point system is given by

∣∣∣∣fl(x)− x

x

∣∣∣∣ ≤ εmach

Michael T. Heath Scientific Computing 31 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 72: Numerical Analysis Introduction

Floating-point: machine precision, cont’dScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Machine Precision, continued

For toy system illustrated earlier

εmach = (0.01)2 = (0.25)10 with rounding by choppingεmach = (0.001)2 = (0.125)10 with rounding to nearest

For IEEE floating-point systems

εmach = 2−24 ≈ 10−7 in single precisionεmach = 2−53 ≈ 10−16 in double precision

So IEEE single and double precision systems have about 7and 16 decimal digits of precision, respectively

Michael T. Heath Scientific Computing 32 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 73: Numerical Analysis Introduction

Floating-point: machine precision, cont’dScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Machine Precision, continued

Though both are “small,” unit roundoff εmach should not beconfused with underflow level UFL

Unit roundoff εmach is determined by number of digits inmantissa of floating-point system, whereas underflow levelUFL is determined by number of digits in exponent field

In all practical floating-point systems,

0 < UFL < εmach < OFL

Michael T. Heath Scientific Computing 33 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 74: Numerical Analysis Introduction

DenormalsScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Subnormals and Gradual Underflow

Normalization causes gap around zero in floating-pointsystem

If leading digits are allowed to be zero, but only whenexponent is at its minimum value, then gap is “filled in” byadditional subnormal or denormalized floating-pointnumbers

Subnormals extend range of magnitudes representable,but have less precision than normalized numbers, and unitroundoff is no smaller

Augmented system exhibits gradual underflow

Michael T. Heath Scientific Computing 34 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 75: Numerical Analysis Introduction

Exceptional valuesScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Exceptional Values

IEEE floating-point standard provides special values toindicate two exceptional situations

Inf, which stands for “infinity,” results from dividing a finitenumber by zero, such as 1/0

NaN, which stands for “not a number,” results fromundefined or indeterminate operations such as 0/0, 0 ∗ Inf,or Inf/Inf

Inf and NaN are implemented in IEEE arithmetic throughspecial reserved values of exponent field

Michael T. Heath Scientific Computing 35 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 76: Numerical Analysis Introduction

IEEE bit patterns

Demo: FP Analyzer

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 77: Numerical Analysis Introduction

FP ArithmeticScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Floating-Point Arithmetic

Addition or subtraction : Shifting of mantissa to makeexponents match may cause loss of some digits of smallernumber, possibly all of them

Multiplication : Product of two p-digit mantissas contains upto 2p digits, so result may not be representable

Division : Quotient of two p-digit mantissas may containmore than p digits, such as nonterminating binaryexpansion of 1/10

Result of floating-point arithmetic operation may differ fromresult of corresponding real arithmetic operation on sameoperands

Michael T. Heath Scientific Computing 36 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 78: Numerical Analysis Introduction

FP Arithmetic, exampleScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Floating-Point Arithmetic

Assume β = 10, p = 6

Let x = 1.92403× 102, y = 6.35782× 10−1

Floating-point addition gives x+ y = 1.93039× 102,assuming rounding to nearest

Last two digits of y do not affect result, and with evensmaller exponent, y could have had no effect on result

Floating-point multiplication gives x ∗ y = 1.22326× 102,which discards half of digits of true product

Michael T. Heath Scientific Computing 37 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 79: Numerical Analysis Introduction

FP Arithmetic, cont’dScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Floating-Point Arithmetic, continued

Real result may also fail to be representable because itsexponent is beyond available range

Overflow is usually more serious than underflow becausethere is no good approximation to arbitrarily largemagnitudes in floating-point system, whereas zero is oftenreasonable approximation for arbitrarily small magnitudes

On many computer systems overflow is fatal, but anunderflow may be silently set to zero

Michael T. Heath Scientific Computing 38 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 80: Numerical Analysis Introduction

Example: Summing SeriesScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Summing Series

Infinite series ∞∑

n=1

1

n

has finite sum in floating-point arithmetic even though realseries is divergentPossible explanations

Partial sum eventually overflows1/n eventually underflowsPartial sum ceases to change once 1/n becomes negligiblerelative to partial sum

1

n< εmach

n−1∑

k=1

1

k

< interactive example >

Michael T. Heath Scientific Computing 39 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 81: Numerical Analysis Introduction

Demo: FPharmonic series

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 82: Numerical Analysis Introduction

FP Arithmetic, cont’dScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Floating-Point Arithmetic, continued

Ideally, x flop y = fl(x op y), i.e., floating-point arithmeticoperations produce correctly rounded results

Computers satisfying IEEE floating-point standard achievethis ideal as long as x op y is within range of floating-pointsystem

But some familiar laws of real arithmetic are notnecessarily valid in floating-point system

Floating-point addition and multiplication are commutativebut not associative

Example: if ε is positive floating-point number slightlysmaller than εmach, then (1 + ε) + ε = 1, but 1 + (ε+ ε) > 1

Michael T. Heath Scientific Computing 40 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 83: Numerical Analysis Introduction

Cancellation IScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Cancellation

Subtraction between two p-digit numbers having same signand similar magnitudes yields result with fewer than pdigits, so it is usually exactly representable

Reason is that leading digits of two numbers cancel (i.e.,their difference is zero)

For example,

1.92403× 102 − 1.92275× 102 = 1.28000× 10−1

which is correct, and exactly representable, but has onlythree significant digits

Michael T. Heath Scientific Computing 41 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 84: Numerical Analysis Introduction

Cancellation IIScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Cancellation, continued

Despite exactness of result, cancellation often impliesserious loss of information

Operands are often uncertain due to rounding or otherprevious errors, so relative uncertainty in difference may belarge

Example: if ε is positive floating-point number slightlysmaller than εmach, then (1 + ε)− (1− ε) = 1− 1 = 0 infloating-point arithmetic, which is correct for actualoperands of final subtraction, but true result of overallcomputation, 2ε, has been completely lost

Subtraction itself is not at fault: it merely signals loss ofinformation that had already occurred

Michael T. Heath Scientific Computing 42 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 85: Numerical Analysis Introduction

Cancellation IIIScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Cancellation, continued

Digits lost to cancellation are most significant, leadingdigits, whereas digits lost in rounding are least significant,trailing digits

Because of this effect, it is generally bad idea to computeany small quantity as difference of large quantities, sincerounding error is likely to dominate result

For example, summing alternating series, such as

ex = 1 + x+x2

2!+x3

3!+ · · ·

for x < 0, may give disastrous results due to catastrophiccancellation

Michael T. Heath Scientific Computing 43 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 86: Numerical Analysis Introduction

Demo: FPharmonic series

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 87: Numerical Analysis Introduction

Cancellation IV: Example IScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Cancellation

Total energy of helium atom is sum of kinetic and potentialenergies, which are computed separately and have oppositesigns, so suffer cancellation

Year Kinetic Potential Total1971 13.0 −14.0 −1.01977 12.76 −14.02 −1.261980 12.22 −14.35 −2.131985 12.28 −14.65 −2.371988 12.40 −14.84 −2.44

Although computed values for kinetic and potential energieschanged by only 6% or less, resulting estimate for total energychanged by 144%

Michael T. Heath Scientific Computing 44 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 88: Numerical Analysis Introduction

Cancellation V: Example IIScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Quadratic Formula

Two solutions of quadratic equation ax2 + bx+ c = 0 aregiven by

x =−b±

√b2 − 4ac

2aNaive use of formula can suffer overflow, or underflow, orsevere cancellationRescaling coefficients avoids overflow or harmful underflowCancellation between −b and square root can be avoidedby computing one root using alternative formula

x =2c

−b∓√b2 − 4ac

Cancellation inside square root cannot be easily avoidedwithout using higher precision

< interactive example >

Michael T. Heath Scientific Computing 45 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 89: Numerical Analysis Introduction

Cancellation V: Example IIIScientific Computing

ApproximationsComputer Arithmetic

Floating-Point NumbersFloating-Point Arithmetic

Example: Standard Deviation

Mean and standard deviation of sequence xi, i = 1, . . . , n,are given by

x =1

n

n∑

i=1

xi and σ =

[1

n− 1

n∑

i=1

(xi − x)2

] 12

Mathematically equivalent formula

σ =

[1

n− 1

(n∑

i=1

x2i − nx2)] 1

2

avoids making two passes through dataSingle cancellation at end of one-pass formula is moredamaging numerically than all cancellations in two-passformula combined

Michael T. Heath Scientific Computing 46 / 46

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 90: Numerical Analysis Introduction

Demo: FP summationstrategies

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 91: Numerical Analysis Introduction

Demo: FP vs alternatingseries

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 92: Numerical Analysis Introduction

Summing up

Demo: FP vs finitedifference

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 93: Numerical Analysis Introduction

Questions?

?

About this class Introduction Errors Conditioning S and A Computer arithmetic

Page 94: Numerical Analysis Introduction

Image CreditsQuestion mark: sxc.hu/svilen001Accuracy and stability: Wikipedia

About this class Introduction Errors Conditioning S and A Computer arithmetic