Numerical Computing: An Introduction

Similar documents
Scientific Computing: An Introductory Survey

Mathematical preliminaries and error analysis

Floating-Point Numbers in Digital Computers

Floating-Point Numbers in Digital Computers

2 Computation with Floating-Point Numbers

Floating-point representation

2 Computation with Floating-Point Numbers

Roundoff Errors and Computer Arithmetic

2.1.1 Fixed-Point (or Integer) Arithmetic

Review Questions 26 CHAPTER 1. SCIENTIFIC COMPUTING

Floating-Point Arithmetic

Computational Methods. Sources of Errors

Scientific Computing: An Introductory Survey

Lecture Notes to Accompany. Scientific Computing An Introductory Survey. What is scientific computing?

CS321 Introduction To Numerical Methods

MAT128A: Numerical Analysis Lecture Two: Finite Precision Arithmetic

Computing Basics. 1 Sources of Error LECTURE NOTES ECO 613/614 FALL 2007 KAREN A. KOPECKY

Floating-point numbers. Phys 420/580 Lecture 6

Numerical Difficulties in Pre-University Informatics Education and Competitions

fractional quantities are typically represented in computers using floating point format this approach is very much similar to scientific notation

CHAPTER 2 SENSITIVITY OF LINEAR SYSTEMS; EFFECTS OF ROUNDOFF ERRORS

Computer Arithmetic. 1. Floating-point representation of numbers (scientific notation) has four components, for example, 3.

Bindel, Fall 2016 Matrix Computations (CS 6210) Notes for

Chapter 3. Errors and numerical stability

Floating-Point Arithmetic

Homework 1 Introduction to Computational Finance Spring 2019

Table : IEEE Single Format ± a a 2 a 3 :::a 8 b b 2 b 3 :::b 23 If exponent bitstring a :::a 8 is Then numerical value represented is ( ) 2 = (

What Every Programmer Should Know About Floating-Point Arithmetic

Outline. 1 Scientific Computing. 2 Approximations. 3 Computer Arithmetic. Scientific Computing Approximations Computer Arithmetic

Most nonzero floating-point numbers are normalized. This means they can be expressed as. x = ±(1 + f) 2 e. 0 f < 1

Classes of Real Numbers 1/2. The Real Line

Computational Mathematics: Models, Methods and Analysis. Zhilin Li

Review of Calculus, cont d

1.2 Round-off Errors and Computer Arithmetic

Section 1.4 Mathematics on the Computer: Floating Point Arithmetic

Binary floating point encodings

Introduction to floating point arithmetic

AM205: lecture 2. 1 These have been shifted to MD 323 for the rest of the semester.

ME 261: Numerical Analysis. ME 261: Numerical Analysis

Computational Economics and Finance

Math 340 Fall 2014, Victor Matveev. Binary system, round-off errors, loss of significance, and double precision accuracy.

Finite arithmetic and error analysis

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

CS321. Introduction to Numerical Methods

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

CHAPTER 5 Computer Arithmetic and Round-Off Errors

ME 261: Numerical Analysis

Computational Economics and Finance

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

Introduction to Numerical Computing

Truncation Errors. Applied Numerical Methods with MATLAB for Engineers and Scientists, 2nd ed., Steven C. Chapra, McGraw Hill, 2008, Ch. 4.

Numerical Methods 5633

Objectives. look at floating point representation in its basic form expose errors of a different form: rounding error highlight IEEE-754 standard

Programming Project #2: Solving Quadratic Equations Date Due: Monday 25 September 2017

Real Numbers finite subset real numbers floating point numbers Scientific Notation fixed point numbers

Floating point numbers in Scilab

COMP2611: Computer Organization. Data Representation

Floating Point Representation. CS Summer 2008 Jonathan Kaldor

Hani Mehrpouyan, California State University, Bakersfield. Signals and Systems

Scientific Computing. Error Analysis

The Perils of Floating Point

What we need to know about error: Class Outline. Computational Methods CMSC/AMSC/MAPL 460. Errors in data and computation

Up next. Midterm. Today s lecture. To follow

CS 542G: Preliminaries, Floating-Point, Errors

Computational Methods CMSC/AMSC/MAPL 460. Representing numbers in floating point and associated issues. Ramani Duraiswami, Dept. of Computer Science

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.

Floating-Point Arithmetic

Numerical computing. How computers store real numbers and the problems that result

Numerical Analysis I

Lecture 03 Approximations, Errors and Their Analysis

MAT 003 Brian Killough s Instructor Notes Saint Leo University


Introduction to Computer Programming with MATLAB Calculation and Programming Errors. Selis Önel, PhD

Floating Point. The World is Not Just Integers. Programming languages support numbers with fraction

Computing Integer Powers in Floating-Point Arithmetic

Floating Point Representation in Computers

CSCI 402: Computer Architectures. Arithmetic for Computers (3) Fengguang Song Department of Computer & Information Science IUPUI.

Lecture Objectives. Structured Programming & an Introduction to Error. Review the basic good habits of programming

NUMERICAL ANALYSIS USING SCILAB: NUMERICAL STABILITY AND CONDITIONING

4.1 QUANTIZATION NOISE

Floating Point January 24, 2008

Floating Point Arithmetic

Floating point. Today! IEEE Floating Point Standard! Rounding! Floating Point Operations! Mathematical properties. Next time. !

CS 261 Fall Floating-Point Numbers. Mike Lam, Professor.

Floating Point Arithmetic

Numerical Precision. Or, why my numbers aren t numbering right. 1 of 15

Accuracy versus precision

Computer Representation of Numbers and Computer Arithmetic

Bits, Words, and Integers

Computer System and programming in C

CS 261 Fall Floating-Point Numbers. Mike Lam, Professor.

Computational Methods CMSC/AMSC/MAPL 460. Representing numbers in floating point Error Analysis. Ramani Duraiswami, Dept. of Computer Science

Class 5. Data Representation and Introduction to Visualization

FP_IEEE_DENORM_GET_ Procedure

Floating Point Arithmetic

Numerical Methods I Numerical Computing

Using Arithmetic of Real Numbers to Explore Limits and Continuity

Machine Computation of the Sine Function

correlated to the Michigan High School Mathematics Content Expectations

These are reserved words of the C language. For example int, float, if, else, for, while etc.

Transcription:

Numerical Computing: An Introduction Gyula Horváth Horvath@inf.u-szeged.hu Tom Verhoeff T.Verhoeff@TUE.NL University of Szeged Hungary Eindhoven University of Technology The Netherlands Numerical Computing 1

IOI 2002: Bus Terminals A B Given a set of points with integer coordinates, select two points as hubs and assign each of the remaining points to a hub, while minimizing the maximum value (over all P, Q) of c(p, Q) = d(p, H(P )) + d(h(p ), H(Q)) + d(h(q), Q) Numerical Computing 2

Integer Computations Z = the set of integers How well is integer arithmetic implemented on a computer? Numerical Computing 3

Non-Integer Numbers Fractions, percentages, fixed-point currency values Real numbers, complex numbers Scientific notation: 6.022142 10 23 Floating-point types in programming languages How well is non-integer arithmetic implemented on a computer? Numerical Computing 4

Quote from Donald E. Knuth Floating point computation is by nature inexact, and programmers can easily misuse it so that the computed answers consist almost entirely of noise. One of the principal problems of numerical analysis is to determine how accurate the results of certain numerical methods will be. There is a credibility-gap : We don t know how much of the computer s answers to believe. Novice computer users solve this problem by implicitly trusting in the computer as an infallible authority; they tend to believe that all digits of a printed answer are significant. Disillusioned computer users have just the opposite approach; they are constantly afraid that their answers are almost meaningless. The Art of Computer Programming, Vol. 2: Seminumerical Algorithms (3rd Ed.), Addison-Wesley, 1998, 4.2.2. Numerical Computing 5

Count Down Pascal const D = 0.1; var x: Real; begin x := 1.0 ; while x > 0.0 do x := x - D ; writeln ( x:1:2 ) end. C #include <stdio.h> #define D 0.1 int main ( void ) { double x = 1.0; } while ( x > 0.0 ) x = x - D; printf ( "%1.2f\n", x ); What value does this program print? Numerical Computing 6

Euclidean Paths A B C D (2, 5, 31) (1, 2, 9) (0, 7, 27) (1, 8, 10) Consider the two V-shaped paths via the origin O: AOB and COD. Are the lengths of these two paths equal? If not, which is bigger? Now also tackle the case with A B C D (4, 12, 28) (2, 6, 14) (1, 1, 23) (1, 13, 19) Numerical Computing 7

Parallel Resistors R 1 R 2 Write a program to compute the effective resistance, given the non-negative values R 1 and R 2 as input. Numerical Computing 8

Quadratic Equation Consider the equation ax 2 + bx + c = 0 (1) where parameters a, b, and c are given real constants and x is a real variable, whose value(s) satisfying (1) must be determined. What conditions to impose on the parameters to make this into a reasonable programming assignment? Solve your assignment. How to determine the quality of solver programs? Numerical Computing 9

R = the set of real numbers Floating-Point Numbers Consider integers β 2, t 1, e min e max F(β, t, e min, e max ) = the set of floating-point numbers x of the form x = ± f β e where fraction f and exponent e satisfy: f β t is an integer with f = 0 or 1 f < β, and e is an integer with e min e e max Numerical Computing 10

Floating-Point Parameters β is called the base of F; typically β = 2 p = t + 1 = the number of bits in the binary representation of f; p is called the precision of F The smallest F-number larger than 1 is 1 + ɛ with ɛ = β t ; ɛ is called the machine epsilon of F. The interval from the smallest positive F-number N min = β e min to the largest one N max = (β ɛ)β e max is called the range of F. Numerical Computing 11

IEEE Standard: Normalized Binary Floating-Point Numbers Parameter values Type β t e min e max ɛ Range Single 2 23 126 127 2 23 1.2 10 7 10 ±38 Double 2 52 1022 1023 2 52 2.2 10 16 10 ±308 Sizes in bits Type ± f e Total Single 1 23 8 32 Double 1 52 11 64 Numerical Computing 12

Floating-Point Operations Most operations on R are not closed in F. When such operations are simulated on a computer, the result is forced into F, yielding an approximation of the exact result. This introduces a (small) rounding error into floating-point calculations. Subsequent operations on inexact results can magnify, or reduce, the error in non-intuitive ways. The aim of error analysis is to understand the propagation of errors in numerical algorithms, in particular to prove bounds on the error in the final result. Numerical Computing 13

Floating-Point Arithmetic Approximation function fl : R F fl(x) is the floating-point number nearest to real number x For operation on R, let be its implementation on F IEEE Standard requires best results: for all { +,,, / } and x, y F x y = fl(x y) Numerical Computing 14

Floating-Point Arithmetic: Limitations To what extent is F an adequate model of R? Which mathematical laws hold when translated from R to F? R n fl n F n A R fl  F For all { +,,, / } and x, y R fl(x y) = fl(x) fl(y) Numerical Computing 15

Floating-Point Arithmetic: Examples Consider a machine working with two decimal digits (β, t = 10, 1) fl(1.06 + 3.06) = fl(4.12) = 4.1 fl(1.06) + fl(3.06) = 1.1 + 3.1 = 4.2 How do the following expressions compare: 5.3 0.2 + 5.1 0.6? 1.1 1.9 + 5.1 0.4 Exact evaluation yields: 1.06 + 3.06 < 2.09 + 2.04 Machine approximation yields: 1.1 + 3.1 > 2.1 + 2.0 Numerical Computing 16

Count Down: Analysis D = 0.1 has infinite repeating binary representation: (0.0001100110011001100110011001100...) 2 = 3/2 4k+1 k=1 Cannot be represented exactly as a binary floating-point number In the program D = fl(0.1) 0.1 Double versus Single 0.1 versus 0.01 Numerical Computing 17

Pythagoras Theorem yields: Euclidean Paths: Analysis AOB = 990 + 86 40.73788394060... COD = 778 + 165 40.73788394062... The two lengths coincide on the 12 most significant decimal digits, with a difference on the order of 10 11. For the second pair we find AOB = 944 + 236 46.086874487211645... COD = 531 + 531 46.086874487211652... where the difference is less than 10 14. Are the lengths really different? Numerical Computing 18

Euclidean Paths: Analysis For the second pair, factorization leads to a confirmation : 944 + 236 = 16 59 + 4 59 = 6 59 531 + 531 = 9 59 + 9 59 = 6 59 For the first pair, three squarings lead to a contradiction : 990 + 86 = 778 + 165 990 + 2 990 86 + 86 = 778 + 2 778 165 + 165 133 = 2 ( 778 165 990 86 ) 133 2 = 4 ( 778 165 2 778 165 990 86 + 990 86 ) 8 778 165 990 86 = 4 (778 165 + 990 86) 133 2 64 778 165 990 86 = 836351 2 699482995200 = 699482995201 Numerical Computing 19

Parallel Resistors: Analysis Replacement resistance R for two parallel resistors R 1 and R 2 : R = 1 1 R + 1 = R 1 R 2 R 1 R 1 + R 2 2 What if R 1 = 0 and/or R 2 = 0? IEEE Standard supports well-behaved infinities : 1/0 = + x = 1/ = 0 However, 0/0 is undefined, yielding a NaN (not-a-number) Numerical Computing 20

Quadratic Equation: Analysis The well-knownn a, b, c-formula for solving quadratic equations: x 1,2 = b ± b 2 4ac 2a (2) Applying it to 10 8 x 2 + x 1 = 0 (3) and evaluating it in IEEE single precision, yields x 1,2 = 0.000000000, 1.000000000 10 8 Should have been x 1,2 = 1.000000000, 1.000000000 10 8 Numerical Computing 21

Quadratic Equation: Analysis For our positive root, b and + b 2 4ac have opposite signs and are of almost equal magnitude, because 4ac b 2. When adding them, the (roundoff) error present in the computed value for b 2 4ac is suddenly magnified enormously in relative size. This phenomena is known as cancellation. Cancellation is avoided in the less-known alternative formula: x 1,2 = 2c b b 2 4ac (4) Numerical Computing 22

Measures for Accuracy Suppose the exact value x R is approximated by x F. The absolute error (in x for x) is defined as x x The relative error is defined as x x x Scientific and engineering applications often involve scaling, e.g. when converting values to other units. The relative error is preferred because it is invariant under scaling. Numerical Computing 23

Stability of Numerical Algorithm A numerical algorithm is called stable, when it produces answers whose accuracy is on the order of what can reasonably be expected for the problem at hand. Challenges in numerical mathematics are to determine what can reasonably be expected and to construct appropriate stable algorithms. For the positive root of (3), the a, b, c-formula (2) is unstable, whereas the alternative formula (4) is stable. Numerical Computing 24

Quadratic Equation: Further Analysis Cancellation is also possible in the subtraction b 2 4ac when b 2 4ac. In this case it is harder to circumvent, because it is inherent in the problem itself and not a consequence of a badly chosen algorithm. Determining the roots when they are nearly equal is said to be an ill-conditioned problem. The squaring b 2, the multiplication 4ac, and the final division by 2a can produce (intermediate) results that fall outside the representable range. This is referred to as underflow or overflow. For b 2 and 4ac this can happen even if the final results are representable within the range of floating-point numbers. Numerical Computing 25

Quadratic Equation: Complications 1. Restrictions on the input coefficients a, b, c 2. Roots that are not representable within the floating-point range 3. Complex roots 4. Desired accuracy of the output roots 5. Evaluation of a quadratic-solving program Numerical Computing 26

Error Analysis Estimate quantitatively the error in a computation: e.g. give bounds Given floating-point numbers A, B, X, compute Y = AX + B. What can be said about the error in Ŷ = A X + B? F (A, B, X) = AX + B F (A, B, X) = A X + B = AX(1 + δ) + B = (AX(1 + δ) + B) (1 + η) with δ, η ɛ/2 Numerical Computing 27

Forward Error Analysis F (A, B, X) = (AX + B)(1 + η) + AXδ(1 + η) = F (A, B, X) + (AX + B)η + AXδ(1 + η) F computes exact value plus a perturbation (forward error): (AX + B)η + AXδ(1 + η) Absolute error AX(δ + η) + Bη: Relative error AX AX+B δ + η: no reasonable bound no reasonable bound Error always small compared to B: false Error always small compared to AX: false Numerical Computing 28

Error Analysis Is Not Easy Error propagation is a complex process Statistical analysis is not applicable if there are just a few steps It is not reliable (if there are many steps: law of large numbers), because errors need not be independent but can be correlated; in that case, statistical analysis is too optimistic Interval arithmetic often is (far) too pessimistic ; errors can and often do (partially) cancel each other Numerical Computing 29

Backward Error Analysis where F (A, B, X) = (AX(1 + δ) + B) (1 + η) = A(1 + η)x(1 + δ) + B(1 + η) = F (A(1 + η), B(1 + η), X(1 + δ)) = F (Â, B, X) Â = A(1 + η) B = B(1 + η) X = X(1 + δ) F computes exact solution for slightly perturbed input. Compare this error to the error already present in A, B, X. Numerical Computing 30

Other Areas in Numerical Mathematics Two additional sources of error: Data Uncertainty: the error already present in the input values E.g. by physical measurement Truncation Error: the error introduced by an inexact algorithm, which is known to produce incorrect answers when run on an ideal machine, with the purpose of obtaining accurate answers in less time E.g. by chopping off an infinite series or approximating a function by a polynomial. Numerical Computing 31

Recommendation 1 Avoid floating-point numbers in computing whenever possible. To teachers: When designing programming problems, there are plenty of possibilities without floating-point numbers. In fact, it is a good attitude to forbid your students to use floating-point numbers in their programs, because it is so hard to reason about floating-point programs. To students: Resist the temptation to use floating-point numbers when solving programming problems whose specification does not involve them. Numerical Computing 32

Recommendation 2 If you do want to use floating-point numbers, study the literature. To teachers: When setting a programming problem involving floatingpoint numbers, the constraints must be expressed carefully and the problem must be solvable for all allowed inputs. Avoid illconditioned problems. To students: Before resorting to floating-point numbers, convince yourself that this is really necessary. Then, convince yourself that your program satisfies all constraints. In particular, check that you have not fallen into one of the standard traps giving rise to an unstable algorithm. In both cases, some form of error analysis is needed. Numerical Computing 33

Quote from Donald E. Knuth (continued) Many serious mathematicians have attempted to analyze a sequence of floating point operations rigorously, but have found the task so formidable that they have tried to be content with plausibility arguments instead. Numerical Computing 34