Back to Prof. Calhoun's Homepage

Scientific Computing with Matlab (Math 365)


In this course, we will learn how to use Matlab for applying computational methods to solving problems from science and engineering. 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.

Send me an e-mail

Please send me an e-mail at donnacalhoun@boisestate.edu 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 Monday/Wednesday 1:30-2:45
Place B210 (Old Business Building)
Office Hours Tuesday 3PM-5PM
Prerequesites Math 175

Return to top of page


Recommended and suggested textbooks

Return to top of page


Lectures

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

Week #1 (Jan. 22)
Wednesday --  Introduction to Scientific Computing
Lecture slides :
Introduction to the Scientific Computing  (pdfhtml)
Using Matlab as a Scientific Calculator  (pdfhtml)
In class lab :
Arithmetic expressions and elementary functions

Week #2 (Jan. 27)
Monday --  Using Matlab as a graphing Calculator (cont)
In class lab :
Assigning variables and creating anonymous function handles
Wednesday --  Introduction to arrays
In class lab :
Introduction to plotting
Loops and one dimensional arrays

Week #3 (Feb. 3)
Monday --  Discussion of homework #1 problems
Codes written or demonstrated in class :
prob1.m
prob2.m
Wednesday --  Introduction to 2d arrays
In class lab :
Two dimensional arrays

Week #4 (Feb. 10)
Monday --  More discussion of 2d arrays
Some useful or interesting links
The now famous videos (Physics Buzz : 1+2+3+4+5+... = -1/12 !!!)
The Wikipedia page (Wikipedia : 1+2+3+4+5)
Terence Tao's Blog page (Tao Blog)
Wednesday --  Introduction to matrices
Lecture slides :
Introduction to the Linear Systems  (pdfhtml)
Introduction to Matrix Notation  (pdfhtml)
In class lab :
Matrices and matrix algebra

Week #5 (Feb. 17)
Monday --  President's Day
Wednesday --  Solving linear systems using Gaussian Elimination
Videos :

Gaussian Elimination

Using 'backslash' in Matlab

Week #6 (Feb. 24)
Monday --  Discussion homework problems 1 and 2
Codes written or demonstrated in class :
temp_test.m
Wednesday --  LU Decomposition
Codes written or demonstrated in class :
my_geo_test.m
homework3_sample.m

Week #7 (Mar. 3)
Monday --  Discussion of homework problem 2 on Homework #3
Lecture slides :
An Introduction to the Matrix Inverse  (pdf)
Codes written or demonstrated in class :
mystery.m
Wednesday --  Solving least squares systems and introduction to polynomial interpolation
Lecture slides :
Solving Linear Least Squares problems  (pdf)
Polynomial fit to the data  (pdf)
Codes written or demonstrated in class :
llsq.m
poly_interp.m

Week #8 (Mar. 10)
Monday --  LU Decomposition, revisited
Lecture slides :
LU Decomposition  (pdf)
Curve Fitting  (pdf)
Codes written or demonstrated in class :
LU_tst.m
Wednesday -- 

Week #9 (Mar. 17)
Monday -- 
Lecture slides :
Lagrange Polynomials  (pdf)
In class lab :
Lagrange Polynomials
Wednesday -- 
Codes written or demonstrated in class :
test_lagrange.m

Week #10 (Mar. 31 )
Monday --  Barycentric formula
Lecture slides :
Barycentric Formula  (pdf)
Wednesday --  Introduction to Splines
In class lab :
Formatting using 'fprintf'

Week #11 (Apr. 7)
Monday --  The Runge Phenomena and how to fix it!
Lecture slides :
Piecewise Polynomials  (pdf)
Codes written or demonstrated in class :
pw_curves.m
In class lab :
The Runge Phenomenon
Wednesday -- 

Week #12 (Apr. 14)
Monday --  Cubic Splines
Lecture slides :
Curves and vectors in 3d  (pdf)
Videos :

Constructing piecewise constant polynomials in Matlab

Constructing piecewise linear polynomials in Matlab

Constructing piecewise cubic (PCHIP) polynomials in Matlab
In class lab :
Splines and the Geometry of Curves
Wednesday --  Newton's Method

Week #13 (Apr. 21)
Monday --  Root finding : The Bisection Method
Lecture slides :
Root finding methods - Bisection  (pdf)
Codes written or demonstrated in class :
bisect.m
Wednesday --  Root finding : Fixed point method; fzero
In class lab :
Numerical Root Finding

Week #14 (Apr. 28)
Monday --  Function minimization; Quadrature rules
Codes written or demonstrated in class :
min_tst.m
catch_try.m
int_test2.m
Wednesday -- 

Week #15 (May 5)
Monday -- 
Codes written or demonstrated in class :
ode_sys.m
Wednesday --  Solving ODEs

Return to top of page


Homework assignments

Homework projects are designed to enforce mathematical concepts and to build and improve Matlab programming skills. Homeworks will be due every two weeks.

Homework #1

Due Feb. 5

Assignment :
hmwk1.pdf
Other resources :
rimfire_2.dat  -- Coordinates for the outline of the Rim Fire
write_file.m  -- Write out solutions in the homework with this file
homework1.m  -- A sample homework file to see how Publish works
Comments : For these problems, you will write output files using the script "write_file"

Homework #2

Due Feb. 26

Assignment :
hmwk2.pdf
Other resources :
homework2.m  -- For problems 1 and 2
homework2_prob3.m  -- For Problem 3
write_file.m  -- Write out solutions in the homework with this file
homework_tips.m  -- Tips for doing your homework

Homework #3

Due Mar. 12

Assignment :
hmwk3.pdf
Other resources :
monkey.dat
poly1.dat
poly2.dat
poly3.dat
homework_tips.m  -- Publish this!
homework3.m  -- Sample homework code

Homework #4

Due Apr. 2

Assignment :
hmwk4.pdf
Other resources :
H2Odensity.dat
bary_xdata.dat
bary_ydata.dat
dq1.dat
dq2.dat

Homework #5

Due Apr. 16

Assignment :
hmwk5.pdf
Other resources :
roller_coaster.dat
f.dat
snow.dat
julia.m
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())
Comments : This is the final version!

Homework #6

Due May 9th

Assignment :
hmwk6.pdf
Other resources :
plot_shapes.m

Homework #7

Due May 7

Return to top of page


Matlab tutorials

Below are a series of tutorials that should help you become familar with Matlab syntax

  1. Using Matlab as a Graphing Calculator, Part I
  2. Using Matlab as a Graphing Calculator, Part II
  3. Using Matlab as a Graphing Calculator, Part III
  4. Loops and one dimensional arrays
  5. Two dimensional arrays and introduction to matrices
  6. Logical operators and conditional statements
  7. Vandermonde matrix systems
  8. Lagrange polynomials
  9. Splines and the geometry of curves

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