Title: NUMERICAL METHODS FOR ELECTRICAL ENGINEERS
Catalog Description: Data structures, structured programming. Numerical solution of multidimensional optimization problems, convergence properties, gradient and Newton methods. Solution of linear, nonlinear equations, and differential equations, numerical integration.
Coordinator: H. Işıl Bozma, Professor of Electrical Engineering
Goals: EE 342 is an introductory course to numerical computing for EE students. The objective of the course is to present a number of both programming and computing techniques and algorithms to solve common programming problems. The first four weeks of the course is devoted to giving the students the very basics of advanced programming – such as data structures, recursion and algorithm analyis. The rest of the course is then allocated to the different types of problems that can be encountered that need to be solved numerically including: root finding, optimization, curve fitting, numerical differentiation and integration. Structured programming techniques as well as systematic analysis methods such as error analysis are discussed within each topic.
What I expect the students to have learned at the end of the course are as follows:
- Fair competence in writing, compiling, debugging C programs
- The basics of structured programming including data structures, iterative and recursive algorithms and analysis.
- Ability to implement numerical methods for root finding, linear sets of equations, optimization, interpolation, differentiation and integration for solving practical engineering problems using computers.
Textbook: S. Chapra and R.P. Canale, Numerical Methods for Engineers, McGraw Hill, 2002.
- R. Sedgewick, Algorithms in C++, Addison Wesley Longman, Inc., 1992.
- W. Press et al., Numerical Recipes, Cambridge University Press, 2002
Prerequisites by Topic:
C Programming: Students should have taken a C Programming course. Students are expected to have C or possibly C++ programming experience and familiarity with compilation and execution of programs.
Calculus and Linear Algebra: Students should have taken a calculus and linear algebra course and should be familiar with concepts such as linear maps, differentiation.
- Introduction to Numerical Methods & Programming,Structured Programming Principles – Writing, compiling, executing, debugging and testing (week 1),
- Code organization (Header, code, client code), vectors, matrices, dynamic allocation,IO (week 2),
- Linked lists, adjacency-lists, trees., Stacks - Static allocation, Static allocation at runtime, dynamic allocation, push, pop (week 3),
- Iterations and Recursion, Algorithms and analysis (week 4),
- Numerical Errors, Truncation errors, FE, BE, Rounding errors (week 5)
- Roots of equations, Bisection, Newton’s Method (week 6)
- Linear Algebraic Equations, Gauss Elimination, LU Decomposition, Gauss Seidel (week 7)
- Solving linear equations, Perturbation Analysis – Effect of variations on A and b. Solving nonlinear equations -- Iterative methods (week 8)
- Optimization – 1D and Multidimensional (week 9),
- Constrained Optimization (week 10),
- Curve Fitting – Least squares regression and interpolation (week 11),
- Numerical Differentiation – Newton Cotes (week 12),
- Numerical Integration (week 13),
Course Structure: The class meets for two lectures a week -- one lecture consists of a two-hour session and the second lecture is a one-hour. The students are assigned two homeworks and three projects. The projects are done in a group of three – where the groups are pre-assigned and each student is responsible for one part. The projects will be such that there will be parts for individual design and implementation and a part where different parts come together. Normally each group member is responsible for one part of the project. After that each group member will complete his/her part and then you will have to come together to do the last part as well the project report. Each group is asked to give a demo of your software to your TA in a prescheduled manner as well as a hardcopy/CD of it. There is also term project where the students work in groups of three of their own choosing and are asked to apply a numerical method/methods in a specific engineering problem of their own choosing. There is one open-book midterm and one final.
Computer Resources: Students use Microsoft Visual C/C++ Development software installed in EE computer laboratories. They also use Mathlab for visualization and data handling.
- Attendance+quizzes 5%
- Homework projects 25%
- Midterm 20%
- Term Project 20%
- Final 30%
Apply math, science and engineering knowledge. This course is about structured numerical tools and methods used in the design, development and analysis of various engineering applications software. The students need to use and apply the skills and knowledge learned in previous courses such as programming (basic C language and programming knowledge) and mathematics (calculus, linear algebra, differential equations,).
An ability to identify, formulate and solve engineering problems: Each topic is presented with the motivation of particular engineering problems – where the respective numerical methods would need to be applied. The projects are also given with this in perspective. This is intended to prepare the students for future engineering applications involving software design and development.
Use of modern engineering tools. Students use C software development tools (Microsoft Visual C/C++) and Matlab.
Prepared By: H. Işıl Bozma
Last Revised: May 15, 2003