Stanford courses

cme345: model reduction (spr17)
cme292: advanced matlab for scientific computing (spr14, aut14, spr15)
cme001: classical solutions to partial differential equations (smr13)

CME292: Advanced MATLAB for Scientific Computing

Lecture

Hewlett Teaching Center 103
TuTh 3:15p-4:45p

Office Hours

Durand 028, TuTh 5p-7p

Description

Short course running first four weeks of the quarter (8 lectures) with interactive lectures and application-based assignments. Students will be introduced to advanced MATLAB features, syntaxes, and toolboxes not traditionally found in introductory courses. Material will be reinforced with in-class examples, demos, and homework assignments involving topics from scientific computing. MATLAB topics will be drawn from: advanced graphics (2D/3D plotting, graphics handles, publication quality graphics, animation), MATLAB tools (debugger, profiler), code optimization (vectorization, memory management), object-oriented programming, compiled MATLAB (MEX files and MATLAB Coder), interfacing with external programs, and toolboxes (optimization, parallel computing, symbolic math, PDEs). Scientific computing topics will include: numerical linear algebra, numerical optimization, ODEs, and PDEs. Prerequisites: basic knowledge of MATLAB (CME 192 or equivalent), basic linear algebra (CME 104 or equivalent).


Course details: advertisement, announcement, syllabus

Lectures

Lecture 1 (slides, code)

Fundamental MATLAB features, syntax, concepts: data types, numeric arrays, functions/scripts, publishing, debugger, profiler, memory management

Lecture 2 (slides, code)

Graphics: graphics handles and objects, advanced plotting, publication-quality graphics, animation

Lecture 3 (slides, code)

Numerical linear algebra: densee vs. sparse matrices, direct vs. iterative linear system solvers, matrix decompositions (LU, Cholesky, QR factorizations; eigenvalue and singular value decompositions)

Lecture 4 (slides, code)

Numerical optimization

Lecture 5 (slides, code)

File manipulation and system interaction

Lecture 6 (slides, code)

Object-oriented programming

Lecture 7 (slides, code)

Compiled MATLAB: MEX files, MATLAB Coder

Lecture 8 (slides, code)

Symbolic Math Toolbox, Parallel Computing Toolbox, ODEs/PDEs, PDE Toolbox

Homework

Homework 1 (pdf, code)

Homework 2 (pdf, code)

Homework 3 (pdf, code)

Homework 4 (pdf, code)

Code

2D nonlinear, static truss (code)

2D heat flow (FEM) (code)

Grading policy

1-unit class offered on S/NC basis. Dtailed description of homework policy and grading here

MATLAB access

I recommend purchasing/installing MATLAB on your laptop or using Stanford's shared resources. Information on accessing MATLAB at Stanford has been compiled by Pawin Vongmasa here.