# ECE 330B

## Computational Techniques

### Course Level

### Units

### Prerequisite(s)

### Course Texts

- Press, William H., Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery.
*Numerical Recipes: The Art of Scientific Computing*. 3rd ed. Cambridge University Press, 2007. - Bober, William, and Andrew Stevens.
*Numerical and Analytical Methods with MATLAB for Electrical Engineers*. CRC Press, 2012. - Kreyszig, Erwin.
*Advanced Engineering Mathematics*. 10th ed. John Wiley & Sons, 2011. - Hamming, Richard.
*Numerical Methods for Scientists and Engineers*. 2nd ed. Dover Publications, 1987.

### Schedule

### Course Description

Fundamentals of computational techniques for solving numerical problems. Techniques for numerical differentiation, numerical integration, solving differential equations, solving systems of linear equations, discretization of differential operators, aspects of numerical linear algebra, root finding and numerical optimization. Provides basic working knowledge of the Matlab environment, and of Gnuplot, Numerical Recipes and the GNU Scientific Library.

### Learning Outcomes

By the end of this course the student will be able to:

- Use Matlab for data manipulation, data plotting, and basic programming
- Use Gnuplot to generate 2-D and 3-D plots
- Work with Numerical Recipes and the GNU Scientific Library
- Numerically differentiate and integrate functions with several techniques of different accuracy and efficiency
- Transform systems of differential equations and solve them numerically with several techniques of increasing numerical accuracy
- Solve systems of linear equations efficiently and invert matrices
- Determine roots of functions numerically with several methods
- Perform least squares optimization
- Perform linear, polynomial and general curve fits
- Solve optimization problems amenable to linear programming
- Solve high-dimensional multivariate optimization problems in the presence of multiple/infinite local minima that cannot be solved with deterministic, gradient descent-based optimization techniques

### Course Topics

- Matlab
- Gnuplot
- Numerical Recipes and GNU Scientific Library

**Numerical differentiation**

- Two-point formula
- Three-point formula

**Numerical integration**

- Trapezoidal rule
- Simpson rule
- Newton-Cotes integration
- Gauss-Legendre integration

**Transformation of differential equations and solution methods**

- Euler method
- Improved Euler method
- Runge-Kutta method

**Successive over-relaxation for solving systems of linear equations**

- Discretisation of second-order differential equations
- Liebmann method

**Numerical linear algebra**

- Gaussian elimination methodÂ
- Gauss-Jordan elimination method

**Root finding (multidimensional)**

- Newton-Raphson method
- Regula Falsi method
- Secant method
- Bisection method

**Numerical optimization**

- Least squares
- Curve fitting
- Linear programming
- Stochastic optimization techniques (simulated annealing and genetic algorithms)

### Relationship to Student Outcomes

ECE 330A contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:

- Ability to apply knowledge of mathematics, science and engineering (high)
- Ability to design and conduct experiments, as well as to analyze and interpret data (medium)
- Ability to identify, formulate and solve engineering problems (medium)
- Recognition of the need for, and ability to engage in, life-long learning (low)
- Ability to use the techniques, skills and modern engineering tools necessary for engineering practice (high)