MA 1600 is intended to expose students to the computational side of science and enginering. No experience in programming is necessary. The course will start by motivating why approximations and estimation are useful, and how we can use modern computing algorithms to help estimate solutions. We will introduce and use the popular mathematical software MATLAB, althought students can use iPython if they prefer. Although numerical methods covered in this course are limited, the application to real-life problems are not. It is hoped that this course, coupled with logical thinking and scientific reasoning, will allow students to make informed quantitative estimations about the world around them, and its impact on daily life.

# Announcements

• 2015/04/22: Last Class! Optimization in 2D, course summary handout
• 2015/04/20: Finding minima. quiver plots, contours, newton's method
• 2015/04/15: Solving the Heat Equation in 2D. Learned about meshgrid, surf, pcolor, colorbar.
• 2015/04/13: Introduction to the heat equation and PDEs, MATLAB function review, approximating second derivatives
• 2015/04/08: modeling plasma using the kinetic model: two stream instability
• 2015/04/06: discussion about order of convergence, modelling of harmonic oscillators.
• 2015/04/01: predator-prey models, solved using improved Euler.
• 2015/03/30: modelling population growth and decay. Implemented improved Euler, and checked second order convergence
• 2015/03/25: solving initial value problems using forward Euler integrators. Two problems: free falling object under gravity (no air resistance), and free falling object with air resistance
• 2015/03/23: game of life in 2d
• 2015/03/18: we continued our experiments of robots in 2d, quantifying collision times as a function of various properties (accuracy of sensors, size of the box, initial separation)
• 2015/03/16: hidden markov chains: robots in 2d, eight possible movement directions, fuzzy sensors
• 2015/03/04: markov chains: robot in 2d, four possible movement directions
• 2015/03/02: random walk in 1d and 2d
• 2015/02/25: random numbers from uniform and normal distribution using rand and randn. Manipulating these random numbers to obtain random integers from sets.
• 2015/02/23: More practice with functions, and vectorized MATLAB notation. (problems 5.2.5 and 5.2.7)
• 2015/02/18: We reviewed sources of numerical error (truncation error and round-off error), learnt some matlab coding tips (vectorization, drawbacks of dynamic memory allocation), then worked on problems requiring the use of functions in Section 5.1.
• 2015/02/16: We went over truncation error, using the Taylor expansion to derive error estimates for the finite difference formulas. Group exercises focused on comparing the one-sided (forwards and backwards), centered, and five point difference formulas. We also talked about topics for the midterm next Wednesday, 02/25
• 2015/02/11: We derived difference formulas by taking derivatives of a Lagrange interpolant. We will explore properties of this difference formula on 02/16. We also explored using least squares interpolation to try and estimate the rate of change of Apple sock prices (AAPL) in 2014. Both groups made good progress, but did not complete the project. We will continue this project on 02/16.
• 2015/02/09: We reviewed machine precision, the "direct" method for polynomial interpolation, derived the least squares (normal) equations, and applied it.
• 2015/02/06: Project instructions and introduction to the topics:
• Fourier Transforms. Learn about how to use "DCT" -- the discrete Cosine transform -- to compress images and audio.
• Dynamical Systems . Learn about how to model the spread of infectious diseases.
• Clustering. Learn about how to use clustering to detect patterns in data.
• Travelling Salesman. Learn about how to optimize a holiday route that will take you to all cities in Michigan!
• 2015/02/04: Covered Lagrange polynomial interpolation (reliability? accuracy?) as well as approximation to derivatives. Round-off error affects our finite difference approximations!
• 2015/02/02 - Covered matrix arithmetic (+ - * / ^ ) in MATLAB, along with element-wise arithmetic (+ - .* ./ .^ ). We also covered plotting multiple functions in a plot, adding legends to distinguish between the functions, importing csv data, and trying to pull out meaningful information from a plot. In MATLAB R2014a (and earlier), dates are imported as the number of days Jan 1st, 0000. Although this makes it awkward to plot and visualize, it is easier to apply interpolation and extrapolation to these numeric values. MATLAB has revamped their datetime class in R2014b. Unfortunatley, we will have to stick with the clunky "days from" computation in R2014a.
• 2015/01/28 - Today, we covered how to convert a MATLAB script to a function, nested for loops, measuring efficiency of a program using tic-toc and using that information to predict how long a program will take to run for different parameters. We also gave a brief example to MATLAB's parallel capability using the parfor (parallel for loop).
• 2015/01/26 - The class presented the use of the bisection method to find monthly payments needed to pay off a loan. Here is a report and MATLAB code that I generated. We also set a date for the midterm -- Wednesday 02/25. Lastly, we discussed the secant method, which was the topic of the group exercise for today.
• 2015/01/21 - Today, we went over how computers represent numbers (a.k.a. floating point representations -- sign, mantissa, exponent), different IEEE standards for floating point representations (Wikipedia), a little aside about the cost and utilization of electricity in supercomputers and @MTU, the energy challenge in exascale computing (YouTube video). We also talked about the scope of variables in functions (versus MATLAB scripts), then spent time working in groups designing the bisection algorithm.
• 2015/01/14 - We went over sources of error, and worked mainly on group assignments. Questions M.1.1.3 and P.1.1.6
• 2015/01/12 - We went over:
• The syllabus (including grading, motivation behind flipped classroom methodology, team/peer learning).
• Accuracy versus precision (other explanations in this youtube video and the first five minutes of this youtube video.
• Significant figures (youtube video) and metric prefixes (Wikipedia)
Please visit the schedule for the list of self learning topics for next class.
• 2015/01/06 - First session on Monday 1/12 in Fisher Room 330.