Back to Prof. Calhoun's Homepage

Scientific Computing with Matlab (Math 365)

In this course, we will learn how to use Matlab to solve problems in science and engineernig using computational methods. We learn basic numerical methods, including solving linear systems, interpolation, quadrature rules, and solving ordinary differential equations. We also learn about visualizing output using Matlab graphing tools, programming concepts, and how to develop numerically efficient codes. This course does not assume any prior programming knowledge, although if you don't have any programming experience, you will find this course to be challenging intially.

Send me an e-mail

Please send me an e-mail at so that I can compile an e-mail list for the class. At the very least, include a subject header that says "Math 365". You may leave the message area blank, if you wish, or send me a short note about what you hope to get out of this course.

Basic course information

Instructor Prof. Donna Calhoun
Time Wednesday/Friday 10:30AM-11:45AM
Place MG136 (Math Computing Lab)
Office Hours Wednesday 2:30PM-4:30PM
Prerequesites Math 175

Return to top of page

Recommended and suggested textbooks

Return to top of page


Below are the slides from lecture material that I can make available online.

Week #1 (Aug. 24)
Wednesday --  Introduction to Scientific Computing
Friday --  Assigning Variables; Tips for doing Homework #0
Videos :

Arithmetic expressions involving arrays

Tips on homework #0

Week #2 (Aug. 31)
Wednesday -- 
Videos :

One dimensional arrays

Matlab as a graphing calculator (Part III)
Friday --  Creating 1d plots in Matlab

Week #3 (9/7)
Wednesday --  1d Arrays (continued)
Friday --  The for-loop and 2d arrays

Week #4 (Sept. 14)
Wednesday --  2d arrays (continued)
In class lab :
Introduction to matrices and linear algebra
Friday --  Solving linear systems
Lecture slides :
Numerical Linear Algebra in Science and Engineering  (pdf)
Introduction to Linear Algebra  (pdf)
The cost of Gaussian Elimination  (pdf)
In class lab :
Solving linear systems

Week #5 (Sept. 21)
Wednesday --  Using linear algebra to solve a circuit problem
Friday --  Floating point arithmetic

Week #6 (Sept. 28)
Wednesday --  Floating point arithmetic (continued)
Some useful or interesting links
Excellent (and entertaining) discussion of IEEE binary arithmetic (Numerical Computing with IEEE Floating Point Arithmetic)
Friday --  Numerical conditioning

Week #7 (Oct. 5)
Wednesday --  Vandermonde Matrix System
Friday --  Lagrange polynomials
Lecture slides :
Vandermonde matrix system  (pdf)
In class lab :
Vandermonde Matrix System for polynomial interpolation

Week #8 (Oct. 12)
Wednesday --  Fitting curves to data
Lecture slides :
Lagrange Interpolation  (pdf)
Codes written or demonstrated in class :
In class lab :
Lagrange Polynomials
Friday --  The Barycentric Formula
Lecture slides :
The Barycentric Formula  (pdf)
Videos :

The Barycentric formula

Week #9 (Oct. 19)
Wednesday --  Curve fitting
Lecture slides :
Linear regression (linear least squares)  (pdf)
Fitting curves to data  (pdf)
Friday -- 
Lecture slides :
Piecewise Polynomial Interpolation  (pdf)
In class lab :
Piecewise polynomial interpolation

Week #10 (Oct. 26)
Wednesday -- 
Lecture slides :
Geometry of curves and motion  (pdf)
Friday --  Newton's Method
Codes written or demonstrated in class :

Week #11 (Nov. 2)
Wednesday --  Explanation of roller coaster problem
Friday --  Newton's method and Fractals

Week #12 (Nov. 9)
Wednesday --  Root-finding using fzero
Codes written or demonstrated in class :
Friday --  Quadrature rules
Codes written or demonstrated in class :

Week #13 (Nov. 16)
Wednesday --  Errors in quadrature formulas
Friday --  Using the Matlab ODE solver
Codes written or demonstrated in class :

Week #14 (Nov. 30)
Wednesday -- 
Friday -- 

Week #15 (Dec. 7)
Wednesday -- 
Friday -- 

Return to top of page

Homework assignments

Homework projects are officially due on the Friday due date at 5PM, but will be accepted until Sunday 5PM, without a late penalty. A penalty of 10% will be incurred for every two days your homework is beyond the final Sunday deadline. You'll turn in your homeworks in your assigned Dropbox folders. You may work individually on the assignment, or in teams of two.

Please read the Homework Tips before turning in your homework!

Homework #0

Due Friday, Sept. 4

Assignment :
Other resources :
hmwk0_solns.pdf  -- Use this as an example of how to format your homework
Comments : Your goal with this assignment is to reproduce the solutions above! To learn more about the Matlab Publish command, do a 'help publish' in Matlab.

Homework #1

Due Sept. 11

Assignment :
Other resources :
write_file.m  -- Write out solutions in the homework with this file
WA-NES-J1M4_Okanogan_Complex_8-23-2015_2333.kml  -- Open this file in Google Earth to see the perimeter of the Okanogan Complex fire
Updates to homework :
 --  (9/6) Exact area in problem 4(a) should be 12, not 15.
Some useful or interesting links
You can download more fire perimeter files from this site. (Look for the small Google Earth icon, near the right side bar for perimeter files from different days.) (InciWeb - Incident Information System)
Comments : For these problems, you will write output files using the script "write_file"

Homework #2

Due Sept. 25

Assignment :
Other resources :
Chapter2-part.pdf  -- Section from Chapter 2 of Strang's Linear Algebra and its Applications
Updates to homework :
 --  (9/26) Prob 2 (Temperature problem). Include "h" to approximation of the integral in Eqn. (2)

Homework #3

Due Oct. 9th

Assignment :
Other resources :
Updates to homework :
 --  (10/7) Prob 3 has been moved to a later assignment

Homework #4

Due Oct. 23

Assignment :
Other resources :

Homework #5

Due Nov. 6th

Assignment :
Other resources :
Some useful or interesting links
An article about the history of the inverse square function in computer graphics and video games (Origin of Quake3's Fast InvSqrt())
A nice description of how Julia sets are generated (Julia Jewels: An exploration of Julia sets)
Wikipedia entry on generating Newton Fractals (Newton Fractals)

Homework #6

Due Nov. 20th

Assignment :
Other resources :

Return to top of page

Matlab Tutorials

An online tutorial for this course, including all of the in-class labs can be found at the link below

Matlab Tutorial

Return to top of page

Final Project

In lieu of a final, you will have a final project due, on the day of our scheduled exam.

Other resources :
final_project.pdf  -- Final project description

You can find the Final Exam calendar here.

Return to top of page

Grading policy

Homework projects will count for 60% of your final grade, quizzes will count towards 20% of your grade, and the final project will be 20% of your final grade. All homeworks will be equally weighted.

Return to top of page