About this course
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.