PPT - Department of Computer Science
Download
Report
Transcript PPT - Department of Computer Science
CS 170:
Computing for the Sciences and
Mathematics
Error: Finding Creative ways to Screw Up
Administrivia
Last time
Basics of modeling
Assigned HW 1
Today
HW1 due!
Assign HW 2
Monday 9/13– NO CLASS
Error
What is the value of a model…
That is completely wrong
That is a perfect match to a physical system
That may be off by as much as 5%
Types of Error
Input Data Errors
Faulty/inaccurate sensors, poorly calibrated, mis-read results..
Modeling Errors
Poor assumptions, bad math, mis-understanding of system
Implementation Errors
Bug in computer program, poor programming
Precision
The limits of finite number representation
Input Data Errors
NSIDC
Sensor drift led to their real-time sea ice estimates to be off by
over 500,000 km2
Still only off by 4%
http://nsidc.org/arcticseaicenews/2009/022609.html
Modeling Errors
Obvious type: math formulation errors, mis-writing
a formula, etc.
By virtue of making assumptions and simplifications,
models will have “error” versus reality.
This isn’t necessarily a bad thing, as long as we manage it well
Lord Kelvin used his knowledge of temperature
dissipation to estimate that the earth was between
20-40 million years old.
Actual: ~12 billion
Assumed there was no heat source but the sun
Implementation Errors
Incorrect programming (a “bug”)
Didn’t implement the model correctly
Wrong equations
Mis-defined inputs/outputs
Implemented the solution to a different problem
Precision Errors
Computers only have so much space to store numbers
This limits the range and precision of values!
Precision Errors
In a computer, a number is stored in a number of
bits (binary digits)
IEEE 754 standard floating point
Variation on standard normalized scientific notation
single-precision is 32 bits
double-precision is 64 bits
Stored in 3 parts
sign (1 bit) – is it positive or negative?
magnitude – what is the exponent?
mantissa/significand – what is the number?
i.e. 6.0221415 × 1023
Exponential notation
Example: 698.043990 103
Fractional part or significand?
698043990
Exponent?
3
Normalized?
6.98043990 105
Significant digits
Significant digits of floating point number
All digits except leading zeros
Number of significant digits in
9 significant digits
Precision
Number of significant digits
698.043990 103?
Round-off error
Problem of not having enough bits to store entire
floating point number
Example: 0.698043990 105 if only can store 6
significant digits, rounded?
0.698044 105
Do not test directly for equality of floating point
variables
Note that many numbers that seem “safe” really aren’t!
i.e. 0.2 is an infinite repeating series when expressed in binary
Absolute error
|correct – result|
Example: correct = 0.698043990 105 and result =
0.698043 105
Absolute error = ?
|0.698043990 105 - 0.698043 105| = 0.00000990 105 =
0.990
Relative error
|(correct - result) / correct|
Example: (correct - result) = 0.990 and correct =
0.698043990 105
0.990/(0.698043990 105) = 1.4182487 10-5
Relative error
Why consider relative errors?
1,000,000 vs. 1,000,001
1 vs. 2
Absolute error for these is the same!
If exact answer is 0 or close to 0, use absolute error
Why?
Addition and subtraction errors
Beware if there is a big difference in the magnitude
of numbers!
Example: (0.65 105) + (0.98 10-5) = ?
65000 + 0.0000098 = 65000.0000098
Suppose we can only store 6 significant digits?
65000.0 = (0.650000 105)
Associative property
Does not necessarily hold!
Sum of many small numbers + large number may
not equal adding each small number to large number
Similarly, distributive property does not necessarily
hold
To reduce numerical errors
Round-off errors
Use maximum number of significant digits
If big difference in magnitude of numbers
Add from smallest to largest numbers
Error Propagation (Accumulated Error)
Example: repeatedly executing:
t = t + dt
Better to repeatedly increment i and calculate:
t = i * dt
Overflow/underflow
Overflow - error condition that occurs when not
enough bits to express value in computer
Underflow - error condition that occurs when
result of computation is too small for computer to
represent
Truncation error
2
3
4
n
x
x
x
x
e x 1 x
1 2 1 2 3 1 2 3 4
n!
1
1
1
1
e 11
1 2 1 2 3 1 2 3 4
20!
Truncation error
Error that occurs when truncated, or finite, sum is used
as approximation for sum of infinite series
1
1
1
21! 22! 23!
2.051020
Error is Not Inherently Bad
Almost all of these issues can be managed and
controlled!
A certain amount of error is normal
What’s important is that we:
Know how much error there might be
Keep it within a bound that allows the results to still be valid
Rates: The Basics of Calculus
Calculus
Mathematics of change
Two parts
Differential calculus
Integral calculus
Rates
“Rate of Change”
Often depends on current amounts
Rates are important in a lot of simulations
growth/decay of…
populations
materials/concentrations
radioactivity
money
motion
force
pressure
Height (y) in m vs time (t) in sec of ball
thrown up from bridge
change in position s(b) s(a)
average velocity
change in time
b a
Time (t) in
seconds
Height (y) in
meters
0.00
11.0000
0.25
14.4438
0.50
17.2750
0.75
19.4938
1.00
21.1000
1.25
22.0938
1.50
22.4750
1.75
22.2438
2.00
21.4000
2.25
19.9437
2.50
17.8750
2.75
15.1937
3.00
11.9000
3.25
7.9938
3.50
3.4750
3.75
-1.6563
Average velocity
between 0 sec & 1 sec?
between 1 sec & 2 sec?
between 0.75 sec & 1.25 sec?
Estimate of instantaneous
velocity at t = 1 sec?
Derivative
s(1 t) s(1)
instantaneous velocity at 1 sec
lim
t 0
t
Derivative of y = s(t) with respect to t at t = a is the
instantaneous rate of change of s with respect to t at
a (provided limit exists):
dy
s'(a)
dt
s(a t) s(a)
lim
t 0
t
t a
Derivative at a point is the slope of the curve
at that point
Differential Equation
Equation that contains a derivative
Velocity function
v(t) = dy/dt = s'(t) = -9.8t + 15
Initial condition
y0 = s(0) = 11
Solution:
function y = s(t) that satisfies equation and initial condition(s)
in this case:
s(t) = -4.9t2 + 15t + 11
Second Derivative
Acceleration - rate of change of velocity with respect
to time
Second derivative of function y = s(t) is the
derivative of the derivative of y with respect to
independent variable t
Notation
s''(t)
d2y/dt2
Systems Dynamics
Software package that makes working with rates much
easier.
Components include:
“Stocks” – collections of things (noun)
“Flow” – activity that changes a stock (verb)
“Variables” – constants or equations – converter
“Connector” – denotes input/information being trasmitted
HOMEWORK!
READ pages 17-48 in the textbook
On your own
Work through the Vensim PLE tutorial
Turn-in the final result files on W:
Vensim is being deployed tonight. If there is a
problem, I will notify everyone ASAP.
NO CLASS on Monday