WH Press, BP Flannery, SA Teukolsky, and WT Vetterling "Numerical Recipes in C: The Art of Scientific Computing", Cambridge University Press, Cambridge, NY.
Specific Course Information:
2021-2022 Catalog Data: This course provides students with the fundamentals of computational techniques for solving numerical problems. In particular, students will become familiar with techniques for numerical differentiation, numerical integration, solving differential equations (e.g., Runge-Kutta method), root finding (e.g., Newton-Raphson method), and numerical optimization (least squares method, linear programming, and stochastic optimization techniques such as simulated annealing and genetic algorithms). In addition, students will be provided with a basic working knowledge of the Matlab environment: They will learn how to create, edit, compile, and run programs in Matlab. Moreover, students will be provided with a basic working knowledge of Gnuplot: They will become familiar with 2D and 3D plotting techniques. Furthermore, students will be introduced to Numerical Recipes and the GNU Scientific Library.
Specific Goals for the Course:
Outcomes of Instruction: 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.
- Determine the 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.
A brief list of topics to be covered:
- Introduction to Course; Overview of Research Activities in the Visual and Autonomous Exploration Systems Research Laboratory
- Introduction to Numerical Recipes and GNU Scientific Library; Introduction to Matlab & Gnuplot
- Numerical differentiation (two-point formula, improved two-point formula, three-point formula); Numerical integration: Trapezoidal Rule, Simpson Rule, Introduction to Gauss-Legendre
- Numerical integration: Gauss-Legendre
- Transformation of differential equations; Euler Method; Improved Euler Method; Runge-Kutta Method
- Root finding: Newton-Raphson method, Regula Falsi, Secant method, Bisection method
- Numerical optimization: Least Squares; Introduction to Linear Programming
- Numerical optimization: Linear Programming
- Numerical optimization: Multi-dimensional Newton Raphson method; Introduction to stochastic optimization
- Numerical optimization: Simulated Annealing
- Numerical optimization: Simulated Annealing; Genetic Algorithms
- Numerical optimization: Genetic Algorithms; Multi-dimensional optimization scenarios.
Relationship to Student Outcomes
ECE 330B contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:
1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
6. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.