SYLLABUS for course PSCB57, Title: Introduction to Scientific Computing 2019F Lecturer: prof. Pawel Artymowicz (pawel@utsc.utoronto.ca; put PSCB57 as subject) Teaching Asist. Fergus Horrobin (horrobin@astro.utoronto.ca) _______________________________________________________________________________ Lectures (L1-L12, each is 2 hrs with a break) on Mo. in MW160 9:00-11:00 Tutorials (T1-T11) on Tuesdays in SW503B, three 1-hr sections from 4pm to 7pm. September October November December 3 [T1] 1 no tutorial;set#1 due 4 [L8] 2 [L12] 9 [L1] 7 [L5] 5 [T8] 6 final** 10 [T2] 8 [T5]<-set#2 due 8 <--set3 due 16 [L2] 14-18 reading wk 11 [L9] 17 [T3] 21 [midterm* +L6] 12 [T9] 23 [L3] 22 [T6] 18 [L10] 24 [T4] 28 [L7] 19 [T10] 30 [L4] 29 [T7] 25 [L11] 26 [extra tutorial] 28 <-set#4 due _______________________________________________________________________________ *) midterm in class, 55 min, starts 9:05 **) final exam in MW170, at 9:00-11:00 on 6 Dec 2019 See the course page for required and allowed materials. This syllabus will change slighty - details will be added to lecture descriptions; please download the updates every week e.g. during the lecture. Lecture 1 Welcome to the course Organization of the course History of computing: from Archimedes to Babbage 20th cent.: electromagnets & punched paper to electronics Lecture 2 Python3 and other languages Moore's law and why it's breaking down Python's basics interactive usage Python scripting Representation of numbers Basic statements and control structures Timing the code Precision, operation precedence, input-output, strings Iteration ("for" and "while" loops) Iterated solution to nonlinear problems Example of stabile and unstable iterative computation Lecture 3 More iteration Birthday overlap and observational confusion problem Conditionals ("if") Numpy and Scipy: working with arrays Creation of linear series of numbers 1D graphics Taylor series approximation of exp(x) and cos(x) Kepler problem and exoplanet K2-261b Lecture 4 Simple file I/O Simple statistics on data Kepler problem, convergence of iterated Kepler Equation Planet irradiation problem. Basics of numerical integration Strange world of repeated powers Fractals Pseudorandom numbers in Python Histograms in Python Introducing Monte Carlo methods Lecture 5 Solutions to assignment set 1 Pi finding by MteCarlo & the problem of slow convergence MteCarlo evaluation of probabilities Radioactive decay experiment Sources of error in scientific computation Lecture 6 (1st part is midterm) Solutions to assignment set 2 Radiation transfer in opaque media 1D Random Walks as stock market model, Gambler's Ruin Lecture 7 Solutions to Midterm Exam Econometrics: Working with real data Oxford weather: kenels, boxcar averages Convolution Numerical Calculus I: Differentiation stencil, proof of order Root finding by bisection vs. higher order methods Quadratic convergence of secant and Newton's methods Lecture 8 Numerical calculus II: Integration methods Euler's method Polynomial interpolation in subintervals Trapezoid rule Midpoint rule Gaussian integration Simpson's rule Example of method of least squares Lecture 9 Linear algebra: solving sets of equations Finding amount of dark matter in galaxies Estimation of errors in the parameters Optimization methods (minimization, maximization) Lagrange polynomial interpolation Lecture 10 Solution to a problem from assignment set 3 Pitfalls of polynomial interpolation/extrapolation Spline approximation Ordinary differential equations: 1st order ODEs & their sets Basic linear, quadratic and 4th order numerical methods: derivations Order, accuracy, error drift in numerical ODE integration The simplest 2nd-order equation: vertical throw in vacuum Concept of split-point boundary conditions and the shooting method Lecture 11 Chase-type trajectories: fox and duck (please read about it on our course web page!) Trajectory calculations: N = 1, 2, and 3-body problems Leapfrog and other symplectic integrators for long simulations Ballistics with air drag Chaotic solutions of ODEs: chaotic ball in 3D, Lorentz attractor Introducing the Circular Restricted 3 Body Problem Lecture 12 Solutions to three assignment from set 4 The circular R3-B problem and the Hill problem Solutions near the planet N-body studies at UTSC: simulations on MIC hardware The 4th order symplectic integrator N-body problem in computational astrophysics: cosmological simulations Sample partial differential equations (PDEs): using 2nd order stencils Linear wave equation Waves in a pond and the Young's double slit experiment in Python Examples of scientific simulations: fluid dynamics of disks