COS 323 Fall 2008 Computing for the Physical

  • Slides: 22
Download presentation
COS 323 Fall 2008 Computing for the Physical and Social Sciences Ken Steiglitz

COS 323 Fall 2008 Computing for the Physical and Social Sciences Ken Steiglitz

Mechanics and course structure • See course web page: COS 323 home • Syllabus:

Mechanics and course structure • See course web page: COS 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,

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,

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,

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 70 s or 80

“Personal” vs. “Scientific” computing • Early computers, up to the 70 s or 80 s, 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

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 104 ops/sec

Stanisław Ulam with MANIC I --- about 104 ops/sec

Reading, background • Optional text: http: //www. nr. com Numerical Recipes in C [PTVF

Reading, background • Optional text: http: //www. nr. com Numerical Recipes in C [PTVF 92]. 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 • Referencing all sources: Do it!

Modeling in general • Purposes: quantitative prediction, qualitative prediction, development of intuition, theory formation,

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 • 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,

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 • Event-driven simulation market dynamics population genetics network traffic

Examples, con’t • Ordinary differential equations market dynamics epidemics seashells insulin-glucose regulation immune system

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,

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

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 3 x

Numbers • Fixed-point (absolute precision) • Floating-point (relative precision) scientific notation, like 3 x 10 -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() { /*

Numbers (con’t) Example: 1/10 has no exact representation in binary floating-point: main() { /* main */ float x; x = 1. /10. ; printf("x = %28. 25 fn", x); } x = 0. 1000000014901161193847656

Numbers (con’t) Such roundoff errors can accumulate in iterative computations: main() { /* main

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<10000000; i++) sum += x; printf("sum = %28. 25 fn", sum); } sum = 1087937. 0000000000000

More subtle problem Roots of quadratic: X 2 – 9999 x + 1 =

More subtle problem Roots of quadratic: X 2 – 9999 x + 1 = 0 Relative error in x 1 is huge! What’s the problem? main() { /* main */ printf("Solving quadraticn"); printf("Actual root = 0. 00010. . . n"); printf("Actual root = 9998. 9. . . n"); float a, b, c, d, x 1, x 2; a = 1. ; b = -9999. ; c = 1. ; d = b*b - 4. *a*c; x 1 = (-b + sqrt(d))/2. ; x 2 = (-b - sqrt(d))/2. ; printf("x 1= %28. 25 fnx 2= %28. 25 fn", x 1, x 2); } Solving quadratic Actual root = 0. 00010. . . Actual root = 9998. 9. . . x 1= 9999. 0000000000000 x 2= 0. 000025004788767546415

Higher-level languages such as Matlab, Maple, Mathematica |^/| Maple V Release 5 (WMI Campus

Higher-level languages such 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. x 1 : = ( -b - sqrt(b*b - 4) )/2; Mutiple-precision arithmetic Digits : = 7 x 1 : = 0 (software) Digits : = 8 x 1 : =. 0001 Experimental technique Digits : = 20 x 1 : =. 000100020004 Digits : = 40 x 1 : =. 00010002000400090021005101270323