**Lecture:** 3 hours

**Discussion**: 1 hour

**Prerequisite**: Course ECS 130

**Grading**: Letter; 6-8 problem sets/labs (60%), final (40%)

**Catalog Description**:

Algorithms and techniques for large-scale scientific computation, including basics for high performance computing, iterative methods, discrete approximation, fast Fourier transform, Poisson solvers, particle methods, spectral graph partition and its applications. Offered in alternate years.

**Goals**:

To learn about concepts and general techniques that are essential for modern methods, and to be able to apply them in a particular domain of large-scale scientific computation.

**Expanded Course Description**:

- The basics
- IEEE floating-point arithmetic
- BLAS
- Basic matrix decompositions
- Memory hierarchies
- Programming language support
- Performance tuning

- Iterative methods
- The power method
- CG method
- Krylov subspace methods

- Data fitting and discrete approximation
- Interpolation
- Least squares
- Discrete approximation
- Splines

- The fast Fourier transform
- Poisson solvers
- Particle methods
- N^2 algorithms
- Fast multipole method

- Spectral graph partition and applications
- Spectral graph partition
- Spectral image segmentation and data clustering

**Textbooks**:

Michael T. Heath, Scientific Computing: An Introductory Survey, McGraw-Hill, 1997, ISBN: 0-07-027684-6

Selected papers from the literature and lecture notes

**Computer Usage/Homeworks**:

Each homework set includes problems related to the basic concepts and techniques discussed in the class. In addition, there are one or two programming assignments in each homework set. The programming assignments focus on design and implementation of program modules, selected from the lecture topics. Students are expected to design, implement/use existing software packages and templates if applied, and test their numerical algorithms and apply them to specific problems and/or data sets. Students can choose among programming languages such as FORTRAN, C, and C++, and may implement them on workstations and PCs. Some of programming assignments are also be designed to be conducted in the MATLAB computing environment.

**Instructor**: Z. Bai

**Prepared by**: Z. Bai (January 2002)

**Overlap Statement**:

A few topics (such as iterative methods) may intersect MAT 229AB, but not significantly. The emphasis of these courses is very different. ECS 230 is a one-quarter course that is designed for computationally-oriented disciplines, particularly graduate students in computer science areas, who need to solve numerical computation problems in their research, but have only a limited time for this purpose due to many other complementary course requirements. ECS 230 emphasizes the algorithmic structure of numerical methods, engineering reliable and efficient software, and applications including information-based computing.

1/02