Scientific Computing (Math 365), Spring 2013
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.
- Basic course information, including office hours
- Text book
- Labs exercises
- Homework projects
- Final project
- Grading policy (to come)
- Amusing quotes, new items, etc
Send me an e-mail
If you haven't already done so, please send me an e-mail at email@example.com 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|
|Place||Business Building 210|
|Office Hours||Tuesdays, 11:00 - 3:00, or by special appt.|
|Prerequisites||Math 175 (Calculus II)|
For this course, I am recommending the following textbooks
- Numerical Computing with Matlab, by Cleve Moler (Mathworks, Inc) (required)
- Learning Matlab, by Toby A. Driscoll (published by the Society for Industrial and Applied Mathematics). You can purchase this directly from SIAM, or you can check out the electronic version from the BSU library (recommended).
By all means, please use any other resources that you find useful. In fact, if you find an online resource that you find particularly useful, please let me know.
Below are the slides from lecture material that I can make available online.
- (1/23/13) Introduction to Computational Science (.pdf, .html). Also see Lab #1
- (1/28/13) Using Matlab as a Graphing Calculator (cont). See Lab #2
- (1/30/13) Using interactive features in Matlab (Lab #3 ).
- (2/11/13) Gaussian elimination and the LU decomposition (.html, .m4v, .pdf)
- (3/6/13) Numerical conditioning and sensitivity. (.html, .pdf)
- (3/11/13) Linear least squares. (.html, .pdf)
- (3/13/13) Fitting parabolic and exponential curves using linear least squares. (.html, .pdf)
- (3/18/13) Polynomial interpolation (.html, .pdf)
- (3/20/13) Lagrange interpolation and Barycentric Interpolation (.html, .pdf) (Final)
- (4/10/13) Bisection and fixed point iteration; also includes a discussion of the Lambert W function available in Matlab. (.html, .pdf) (Final)
The links below are to exercises that are to be done primarly in the lab during class time.
|Lab #1||Wednesday, Jan 23
How can Matlab be used as a graphing calculator?
|Lab #2||Monday, Jan 28
How can Matlab be used as a graphing calculator?
|Lab #3||Wednesday, Jan 30
Writing scripts and interacting with the user
|Lab #4||Monday, Feb. 4
Using 'fprintf' and conditional statements.
|Lab #5||Wednesday, Feb. 6
Multi-dimensional arrays; Matrices in Matlab
|Lab #6||Monday, Feb. 11
Solving square linear systems
|Lab #7||Wednesday, Feb. 13
Timing linear solves
|Holiday||Monday, Feb. 18
President's Day Holiday
|Lab #8||Monday, Feb. 20
Time made available for homework questions.
|No Lab||Monday, March 4|
|No Lab||Wednesday, March 6|
|No Lab||Monday, March 11|
|No Lab||Wednesday, March 13|
|Lab #9||Monday, March 18
Solving the Vandermonde system and using polyfit
|Lab #10||Wednesday, March 20
|Lab #11||Monday, April 3
The Runge Phenomenon
|Lab #12||Monday, May 6th
Homework projects are designed to enforce mathematical concepts and to build and improve Matlab programming skills. Homeworks will be due roughly every two weeks.
|Homework #1||Due February 6th.
I encourage you to use the Publish feature in Matlab to write up your homework and turn in the results. I have a sample homework you can try out. Download the Matlab file hmwk1_sample.m. At Matlab command prompt, enter
This will run the .m file and create a .pdf document of the results. By default, the .pdf is stored in the html directory under your working directory. Here is the sample hmwk1_sample.pdf.
Load the .m file into your Matlab Editor, and look at how it is formatted. There are several menu items (look under the "Cell" menu item) that you can use to insert formatting statements. We discuss this in more detail on Monday.
|Homework #2||Due February 27th.|
|Homework #3||Due March 20th.|
|Homework #4||Due April 10th.
The image file on which this problem is based is here. How close do you get with your spline interpolation?
|Homework #5||Due April 24th.
Link to article about the history of the inverse square function in computer graphics and video games.
Sample code for problem (4).
|Homework #6||Due May 10th.
Problem 2 Start with the sample code quad_sample.m.
Problem 3 (shapes rendering) Rendering code plot_shapes.m.
A demonstration problem for problem #4 ode_demo_systems
Also see the the code we wrote in class on Monday ode_demo
We will have short quizzes designed to test your knowledge on particular aspects of using Matlab. You will not be asked to write any code in a quiz, but you may be asked to find porgramming mistakes in a code fragment, comment on coding style, show that you understand what error messages mean, and so on.
|Homework Quiz #1||Wednesday February 20th|
|Homework Quiz #2||Wednesday March 13th
The quiz will be on material related to Homework #3.
|Homework Quiz #3||Wednesday April 8rd
The quiz will be on material related to Homework #4.
In lieu of a final, you will have a final project due, on the day of our scheduled exam.
|Final project||Final write-up due May 13th, 5PM
Final project description
You will also do an in-class presentation of your project, either during class on May 8th, or during our regularly scheduled final, on May 13th, 2:30 - 4:30.
The Boise State final exam calendar.
Homework projects will count for 70% of your final grade, quizzes will count towards 10% of your grade, and the final project will be 20% of your final grade. All homeworks will be equally weighted.
Other useful and amusing information
Top 10 Algorithms of the 20th Century (2/16/2013)
The LU decomposition is listed as one of the top 10 algorithms of the 20th century. Read about the other 9 here.
Famous programming quotes (1/22/2013)
- "There are only two kinds of programming languages: those people always [complain] about and those nobody uses." (Bjarne Stroustrup, developer of C++)
- "Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration." (Stan Kelly-Bootle, author, songwriter, and notable for achieving the first postgraduate degree in computer science)
- "The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time." (Tom Cargill, Bell Labs, the 90-90 rule)
- "There is no reason for any individual to have a computer in his home." (Ken Olson, President, Digital Equipment Corporation, 1977)
Importance of Computational Science (posted 1/22/2013)
GEMRES : Gem State Research in Computational Science and Engineering
GEMRES (www.gemres.org) is a virtual network of Idaho researchers interested computational science and engineering. Our aim is to increase the visibility and importance of computational science to Idaho researchers.
Finite element design, and the auto industry (posted 1/21/2013)
Finite element design is a computational tool widely used in the auto industry to optimize the design of cars. A key feature in making finite element analysis a feasible tool is advanced techniques for solving large linear systems (millions of equations). In a recent radio interview, a Wall Street journalist talks about his impressions of a recent (2011) auto show, and mentions "finite element design" and computational advances in general as the key to the latest design innovations in the car industry. Listen to the podcast here.
One of the most widely used finite element analysis (FEA) packages in the automotive industry is NASTRAN. They advertise "direct solvers" (such as LU factorization we will learn in class) and "iterative solvers" (e.g. Conjugate Gradient) for linear systems which can handle up to 25 million "degrees of freedom", i.e. number of equations, or number of unknowns. Read about the solvers in NASTRAN here.
Last modified: Mon Aug 5 10:33:49 PDT 2013