Skip to the content of the web site.

Course home

Author: Douglas Wilhelm Harder

This is the course web site for ECE 204 Numerical methods. You can read a three-page course summary of the material covered in this course and the approach taken. If you want a one-paragraph course summary, here it is:

We begin by observing that real numbers cannot be represented exactly, and the best representation we have, floating-point representations, still has issues. We then introduce seven tools we will use to approximate solutions to mathematical problems and that, if used appropriately, will mitigate the weaknesses of the floating-point representation. These include weighted averages, iteration, linear algebra, interpolating, Taylor series, bracketing and the intermediate-value theorem. Next, we discuss sources of error and then go on to approximate solutions to four categories of mathematical problems: first, approximating the value, derivative or integral of a discrete signal; second, approximating solutions to equations and systems of equations; third, approximating solutions to initial- and boundary-value problems as well as boundary-value problems involving partial differential equations such as the heat, the wave and Laplace's equation; and fourth, approximating solutions to unconstrained optimization problems in one or more variables.

The course lecture material and associated assignments may be viewed by selecting the link in the left-hand menu Lecture materials. The left-hand menu also includes information about the course description, the syllabus, the course projects, an introduction to Matlab, previous mid-term and final examinations, acknowledgements and a territorial acknowledgement.

If you are new to this course or are interested in learning this material on your own, get started by watching the lectures and doing the assignments on the Lecture materials web site.


Following this course, you will:

  1. Understand the double-precision floating-point representation and its limitations.
  2. Know, understand and be able to use and apply the seven tools of weighted averages, iteration, linear algebra, interpolation, Taylor series, bracketing, and the intermediate-value theorem.
  3. Be aware of the sources of error in any engineering design and solution, and the sources of error that we will be mitigating in this course.
  4. Be aware that of the problems we will finding approximations to solutions thereof can be grouped into one of four different categories of problems, where the approaches and tools used are similar.
  5. Be aware that and be able to articulate that one common problem-solving technique used in engineering is to transform different problems into equivalent similar problems that may all be approximated by a collection of algorithms.
  6. Understand and know how to apply the different techniques that are required to work with relatively exact samples versus samples that are subject to significant noise or error.
  7. Know how to approximate the value of a signal, its derivative and its integral when that signal is sampled periodically in time both in the absence and in the presence of noise.
  8. Know different techniques for approximating solutions to a single equation in a single unknown both in the presence of knowledge of the derivative and not, and when the solution is bracketed and when it is not, and the same for a system of n equations in n unknowns.
  9. Know how to approximate solutions to both ordinary and partial differential equations, both with initial and boundary conditions, including insulated boundary conditions.
  10. Know how to perform unconstrained optimization both of a real-valued function of a real variable, and of a real-valued function of many variables.
  11. Know how to and be able to apply the tools to solve problems not described in this course.

What's different?

This course differs from many other numerical methods courses, as this course is based on the idea of introducing seven tools that are used for designing and analyzing numerical algorithms, and there is a subsequent separation of problems into four different categories. Neither of these approaches were inspired by author, and you can read more on these in the Acknowledgements.

One aspect that differentiates this course from others is the conspicuous absence of algorithms such as Richardson extrapolation and Romberg integration. This course assumes these techniques will be used in applications and engineering solutions, where it will not be possible to re-sample data at a higher frequency. Instead, algorithms are presented under the assumption that a specific sampling rate is being used, and it is necessary at the engineering design and analysis stage to choose the appropriate sampling rate. Also differing from other courses, this course spends more time focused on approximating new values as new samples appear. Many of the algorithms that appear in text books assume that we are integrating from one fixed end-point to another. When integrating information in a deployed solution, that integration must be ongoing and must happen in real time; the analysis of a real-time system is much easier when periodic operations require a fixed amount of time.

Another aspect that differentiates this course from others is the greater emphasis on the use of least-squares best-fitting polynomials for approximating the value of a signal, the derivative of that signal, and the integral of that signal, when the signal is assumed to be coming from a noisy environment or sensor, so formulas based on interpolating polynomials may actually magnify the error present.

Of course, where a problem may be more relevant to simulations and design, such as approximating solutions to initial-value problems, non-fixed step sizes are permitted.

This authors most significant contribution is, at least in the opinion of this author, is the introduction of an adaptive Euler-Heun method prior to the introduction of the more complex Dormand-Prince method. Both methods solve the same problems, but the first is much easier to understand than the second, yet the design and analysis is similar.


One of my teaching assistants has provided me with the following testimonial on the approach taken by this course:

"I have been a TA for the course ECE 204 in the past and based on my experience, the course lectures are very informative and helpful. The presentation of the lecture material is unique and provide a better understanding of different numerical techniques used to solve engineering problems. The novelty of the course material is that it starts by giving the seven tools for solving numerical problems and then approximating values of algebraic expressions, then approximating solutions to algebraic and analytic equations, and finally looking at unconstrained optimization. The lecture follows a systematic approach to solve mathematical equations used by engineers and as far as I know is quite novel approach to teach numerical methods."

This author, being perhaps a pedant, uses hyphens where appropriate, even if the literature does not; such as the intermediate-value theorem and initial- and boundary-value problems.