View
221
Download
0
Embed Size (px)
Citation preview
Mechanics and course structure
• See course web page: COS 323 home
• Syllabus: lecture outlines, slides, some detailed notes, etc.
• Master list of references in pdf, some on reserve in library
Reading, background• Optional text: http://www.nr.com Numerical
Recipes in C [PTVF92]. Really a reference available on web
• Master reference list
• COS 126 is entirely adequate, don't get too fancy --- We're after the algorithmic and numerical issues
• MAT 104 is entirely adequate
Goal of course: learn “scientific” computing through applications
• 4 assignments: population genetics, finance, chaos, Pratt Truss bridge
• Term paper
• Reference all sources!
Major Topic Outline
• Simulation, using random numbers, experimenting
• Integration, root-finding• Optimization, linear programming• Ordinary diff. eqs., partial diff. eqs.• DSP• Linear systems (Matlab)
Assign. 1
Assign. 2
Assign. 3
Assign. 4
Major Topic Outline
• Simulation, using random numbers, experimenting
• Integration, root-finding• Optimization, linear programming• Ordinary diff. eqs., partial diff. eqs.• DSP• Linear systems (Matlab)
* Numerical analysis
Assign. 1
Assign. 2
Assign. 3
Assign. 4
“Personal” vs. “Scientific” computing
• Early computers, up to the 70s or 80s, were built to solve problems. They were “scientific computers”, or SCs, so to speak
• Today the vast majority of computers are PCs
What this course is about
• PC: Cycles used mainly for fixed, widely used programs, for communication, rendering, DSP, etc.
• SC: Involves developing programs: programming, modeling, experimentation
Machines are driven by the mass market
Modeling in general
• Purposes: quantitative prediction, qualitative prediction, development of intuition, theory formation, theory testing
• Independent and dependent variables, space, time
• Discrete vs. continuous choices for space, time, dependent variables
• Philosophy: painting vs. photography
Examples
• Discrete-time/discrete-space/discrete-value spatial epidemic models
Sugarscape seashells lattice gasses cellular automata in general
Examples, con’t
• Difference equations
population growth
population genetics
digital signal processing,
digital filters, FFT, etc.
Examples, con’t• Ordinary differential equations
market dynamics epidemics seashells insulin-glucose regulation immune system predator-prey system n-body problem, solar system, formation of galaxy
Examples, con’t
• Partial differential equations
heat diffusion
population dispersion
wave motion in water, ether, earth, …
spread of genes in population
classical mechanics
quantum mechanics
Examples, con’t
• Combinatorial optimization
scheduling
routing, traffic
oil refining
layout
partition … and many more
main(){ /* main */float x, sum;int i;x = 1./10.;sum = 0.;for (i=0;i<10000000;i++) sum += x;printf("sum = %28.25f\n", sum);}
main(){ /* main */float x, sum;int i;x = 1./10.;sum = 0.;for (i=0;i<10000000;i++) sum += x;printf("sum = %28.25f\n", sum);}
sum = 1087937.0000000000000000000000000
Roundoff errors can accumulate in iterative computations:
main(){ /* main */float x, sum;int i;x = 1./10.;sum = 0.;for (i=0;i<10000000;i++) sum += x;printf("sum = %28.25f\n", sum);}
sum = 1087937.0000000000000000000000000
Numbers• Fixed-point (absolute precision)• Floating-point (relative precision) scientific notation, like 3x10-8
• Single-precision: 32 bits, 8 bit exponent, about 7 decimal-place accuracy• Double-precision: 64 bits, 11 bit exponent, about 15 decimal-place accuracy
[see IEEE 754 standard]
Numbers (con’t)
Example: 1/10 has no exact representation in binary floating-point:
main(){ /* main */float x;x = 1./10.;printf("x = %28.25f\n", x);}
x = 0.1000000014901161193847656
More subtle problem
Roots of quadratic:
Relative error in x2 is huge!
What’s the problem?
main(){ /* main */printf("Solving quadratic\n");printf("Actual root = 0.00010...\n");printf("Actual root = 9998.9...\n");float a, b, c, d, x1, x2;a = 1.;b = -9999.;c = 1.;d = b*b - 4.*a*c;x1 = (-b + sqrt(d))/2.;x2 = (-b - sqrt(d))/2.;printf("x1= %28.25f\nx2= %28.25f\n", x1, x2);}
Solving quadraticActual root = 0.00010...Actual root = 9998.9...x1= 9999.0000000000000000000000000x2= 0.0000250025004788767546415
X2 – 9999 x + 1 = 0
Higher-level languagessuch as Matlab, Maple, Mathematica
|\^/| Maple V Release 5 (WMI Campus Wide License)._|\| |/|_. Copyright (c) 1981-1997 by Waterloo Maple Inc. All rights \ MAPLE / reserved. Maple and Maple V are registered trademarks of <____ ____> Waterloo Maple Inc. | Type ? for help.# solving ill-conditioned quadratic# x^2 -9999*x+1 = 0# b := -9999.x1 := ( -b - sqrt(b*b - 4) )/2; Digits := 7 x1 := 0 Digits := 8 x1 := .0001 Digits := 20 x1 := .0001000100020004 Digits := 40 x1 := .000100010002000400090021005101270323
Mutiple-precision arithmetic(software)
Experimental technique