ECE 330A -- Computational Techniques (4 units)
Description: This course provides students with the fundamentals of computational techniques for solving numerical problems. Students will become familiar with 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. In addition, students will be provided with a basic working knowledge of the MATLAB environment. Moreover, students will be provided with a basic working knowledge of Gnuplot, Numerical Recipes and the GNU Scientific Library.
Grading: Regular grades are awarded for this course: A B C D E
MATH 223, MATH 254, PHYS 143, PHYS 241, and ECE 175
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.
Course 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 2D and 3D 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.
- Numerical Recipes and GNU Scientific Library
- Two-point formula
- Three-point formula
- 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 (multi-dimensional)
- Newton-Raphson method
- Regula Falsi method
- Secant method
- Bisection method
- least squares
- curve fitting
- linear programming
- stochastic optimization techniques (simulated annealing and genetic algorithms)
Two 75-minute lectures per week
One, 50-minute recitation per week
Relationship to Student Outcomes:
ECE 330A contributes directly to the following specific Electrical and Computer Engineering Student Outcomes of the ECE department:
- an ability to apply knowledge of mathematics, science, and engineering (High)
- an ability to design and conduct experiments, as well as to analyze and interpret data (Medium)
- an ability to identify, formulate and solve engineering problems (Medium)
- a recognition of the need for, and an ability to engage in life-long learning (Low)
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (High)