COS 323 Fall 2008 Computing for the Physical and Social Sciences Ken Steiglitz
Mechanics and course structure See course web page: COS 323 homeCOS 323 home Syllabus: lecture outlines, slides (some courtesy of Prof. Szymon Rusinkiewicz), some detailed notes, etc. Master list of references in pdf, some on reserve in library
Goal of course: learn “scientific” computing through applications 4 assignments: population genetics, finance, chaos, image processing Term paper
Major Topic Outline Simulation, using random numbers, experimenting Integration, root-finding Optimization, linear programming Ordinary diff. eqs., Partial diff. eqs. DSP Linear systems, image processing (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, image processing (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
Stanisław Ulam with MANIC I --- about 10 4 ops/sec
Reading, background Optional text: Numerical Recipes in C [PTVF92]. Really a reference available on webhttp:// 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 Referencing all sources: Do it!
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 Event-driven simulation market dynamics population genetics network traffic
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
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 16 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 =
Numbers (con’t) Such roundoff errors can accumulate in iterative computations: main() { /* main */ float x, sum; int i; x = 1./10.; sum = 0.; for (i=0;i< ;i++) sum += x; printf("sum = %28.25f\n", sum); } sum =
More subtle problem Roots of quadratic: Relative error in x1 is huge! What’s the problem? main() { /* main */ printf("Solving quadratic\n"); printf("Actual root = \n"); printf("Actual root = \n"); float a, b, c, d, x1, x2; a = 1.; b = ; 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 quadratic Actual root = Actual root = x1= x2= X 2 – 9999 x + 1 = 0
Higher-level languages such as Matlab, Maple, Mathematica |\^/| Maple V Release 5 (WMI Campus Wide License)._|\| |/|_. Copyright (c) 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^ *x+1 = 0 # b := x1 := ( -b - sqrt(b*b - 4) )/2; Digits := 7 x1 := 0 Digits := 8 x1 :=.0001 Digits := 20 x1 := Digits := 40 x1 := Mutiple-precision arithmetic (software) Experimental technique