ECS 130: Scientific Computation

Subject
ECS 130
Title
Scientific Computation
Status
Active
Units
4.0
Effective Term
2019 Winter Quarter
Learning Activities
Lecture - 3.0 hours
Discussion - 1.0 hours
Description
Matrix-vector approach using MATLAB for floating-point arithmetic, error analysis, data interpolation, least squares data fitting, quadrature, zeros, optimization and matrix eigenvalues and singular values. Parallel computing for matrix operations and essential matrix factorizations. GE Prior to Fall 2011: SciEng. GE: SE.
Prerequisites
(ECS 030 or ENG 006 or ECS 032A or ECS 010 or ECS 036A); (MAT 022A or MAT 027A or MAT 067)
Enrollment Restrictions
Pass One open to Computer Science and Computer Science Engineering Majors only.

Summary of Course Content

I. Power tools of the trade

  • Vector and matrix operation
  • Building exploratory environments
  • Floating point arithmetic
  • Error analysis

II. Data interpolation

  • The interpolating polynomial
  • Piecewise linear interpolation
  • Piecewise cubic Hermite interpolation
  • Cubic spline

III. Zeros, roots and optimization

  • Bisection
  • Newton’s method
  • Second method
  • Inverse quadratic interpolation
  • Quasi-Newton’s method

IV. Quadrature

  • Basic quadrature rules
  • Adaptive quadrature

V. Least squares data fitting

  • Models and data curve fitting
  • Norms
  • The QR factorization
  • Pseudoinverse

VI. Eigenvalues and singular values

  • Symmetric and Hermitian matrices
  • Eigenvalue and singular value decompositions
  • Eigenvalue sensitivity and accuracy
  • Singular sensitivity and accuracy
  • Principle components

VII. Parallel computing

  • Matrix-matrix product
  • The Cholesky factorization 

Illustrative Reading

Moler, Numerical Computing with MATLAB, SIAM 2004 

Potential Course Overlap

Some of mathematical topics of ECS 130 overlap with MAT 128A/B/C, EAD 115/116 and ENG 180, such as interpolation and integration. However, the overlap is only very limited. Some of the ECS 130 topics are normally not treated in these courses, such as recursive and parallel matrix operations, and parallel Cholesky factorization.

ECS 130 is a one-quarter course, as opposed to the two-quarter EAD or three-quarter MAT sequences. ECS 130 is especially designed for undergraduate computer science majors who can benefit from a substantial knowledge of numerical computing, but allot only a limited time for this purpose due to many other complementary course requirements. MAT 128A/B/C, EAD 115/116 and ENG 180 cover wide areas of mathematical problems and numerical methods. In general, the focus of these courses is on the theoretical and mathematical aspects of numerical methods. 

ECS 130 will only cover fundamental parts of mathematical problems and numerical methods in scientific computation. Moreover, ECS 130 uses a matrix-vector approach with MATLAB as a problem-solving environment. Students who have taken ENG 6 will have additional background in using MATLAB language, but it is not required for ECS 130. The overlap between ECS 130 and ENG 6 is only on the introduction of MATLAB, thus the overlap is minimal. 

In ECS 130, numerical algorithms and analysis, finite precision arithmetic, graphics and matrix-vector manipulation are folded into the course in a way that gets students to appreciate the connection between continuous mathematics and numerical computing, and the subtleties of numerical computing. ECS 130 is for computer science majors to acquire scientific computation skill and tools which will be useful later on in their computational career.

Course Category