[Go to the Notes on Diffy Qs home page] [PDF version]
[next] [prev] [prev-tail] [tail] [up]
This book originated from my class notes for teaching Math 286, differential equations, at the University of Illinois at Urbana-Champaign in fall 2008 and spring 2009. It is a first course on differential equations for engineers. The standard book for the course is Edwards and Penney, Differential Equations and Boundary Value Problems [EP], fourth edition. The structure of these present notes, therefore, reflects the structure of [EP], at least as far as the material that is covered in the course. Many examples and applications are taken more or less from this book, though they also appear in many other sources, of course. Other books I have used as sources of information and inspiration are E.L. Ince’s classic (and inexpensive) Ordinary Differential Equations [I], and also my undergraduate textbooks, Stanley Farlow’s Differential Equations and Their Applications [F], which is now available from Dover, and Berg and McGregor’s Elementary Partial Differential Equations [BM]. See the Further Reading chapter at the end of the book.
I taught the course with the IODE software (http://www.math.uiuc.edu/iode/). IODE is a free software package that is used either with Matlab (proprietary) or Octave (free software). Projects and labs from the IODE website are referenced throughout the notes. They need not be used for this course, but I think it is better to use them. The graphs in the notes were made with the Genius software (see http://www.jirka.org/genius.html). I have used Genius in class to show essentially these and similar graphs.
These notes are available from http://www.jirka.org/diffyqs/. Check there for any possible updates or errata. The LATEX source is also available from the same site for possible modification and customization.
I would like to acknowledge Rick Laugesen. I have used his handwritten class notes the first time I taught the course. My organization of these present notes, and the choice of material covered, is heavily influenced by his class notes. Many examples and computations are taken from his notes. For spotting errors and other suggestions, I would also like to acknowledge (in no particular order): John P. D’Angelo, Sean Raleigh, Jessica Robinson, Michael Angelini, Leonardo Gomes, Jeff Winegar, Ian Simon, Thomas Wicklund, Eliot Brenner, Sean Robinson, Jannett Susberry, Dana Al-Quadi, Cesar Alvarez, Cem Bagdatlioglu, Nathan Wong, Alison Shive, Shawn White, and probably others I have forgotten. Finally I would like to acknowledge NSF grant DMS-0900885.
The organization of these notes to some degree requires that they be done in order. Hence, later chapters can be dropped. The dependence of the material covered is roughly given in the following diagram:
![]() |
There are some references in chapters 4 and 5 to material from chapter 3 (some linear algebra), but these references are not absolutely essential and can be skimmed over, so chapter 3 can safely be dropped, while still covering chapters 4 and 5. The notes are done for two types of courses. Either at 4 hours a week for a semester (Math 286 at UIUC):
Introduction, chapter 1 (plus the two IODE labs), chapter 2, chapter 3, chapter 4, chapter 5 (or 6).
Or a shorter version (Math 285 at UIUC) of the course at 3 hours a week for a semester:
Introduction, chapter 1 (plus the two IODE labs), chapter 2, chapter 4, (maybe chapter 5 or 6).
IODE need not be used for either version. If IODE is not used, some additional material may need to be covered instead.
The lengths of the chapter on Laplace transform (chapter 6) and the chapter on Sturm-Liouville (chapter 5) are approximately the same and are interchangable. Laplace transform is not normally covered at UIUC 285/286. I think it is essential that any notes on differential equations at least mention the Laplace transform.
Note: more than 1 lecture, §1.1 in [EP]
The laws of physics are generally written down as differential equations. Therefore, all of science and engineering use differential equations to some degree. Understanding differential equations is essential to understanding almost anything you will study in your science and engineering classes. You can think of mathematics as the language of science, and differential equations are one of the most important parts of this language as far as science and engineering are concerned. As an analogy, suppose that all your classes from now on were given in Swahili. Then it would be important to first learn Swahili, otherwise you will have a very tough time getting a good grade in your other classes.
You have already seen many differential equations without perhaps knowing about it. And you have even solved simple differential equations when you were taking calculus. Let us see an example you may not have seen:
![]() | (1) |
Here
is the dependent variable and
is the independent variable. Equation (1) is a basic example of a
differential equation. In fact it is an example of a first order differential equation, since it involves only the
first derivative of the dependent variable. This equation arises from Newton’s law of cooling where the
ambient temperature oscillates with time.
Solving the differential equation means finding
in terms of
. That is, we want to find a function of
,
which we will call
, such that when we plug
,
, and
into (1), the equation holds. It is
the same idea as it would be for a normal (algebraic) equation of just
and
. We claim
that
![]() |
is a solution. How do we check? We simply plug
into equation (1)! First we need to compute
. We
find that
. Now let us compute the left hand side of (1).
![]() |
Yay! We got precisely the right hand side. But there is more! We claim
is also a
solution. Let us try,
![]() |
Again plugging into the left hand side of (1)
![]() |
And it works yet again!
So there can be many different solutions. In fact, for this equation all solutions can be written in the form
![]() |
for some constant
. See Figure 1 for the graph of a few of these solutions. We will see how we can find
these solutions a few lectures from now.
It turns out that solving differential equations can be quite hard. There is no general method that solves any given differential equation. We will generally focus on how to get exact formulas for solutions of certain differential equations, but we will also spend a little bit of time on getting approximate solutions.
For most of the course we will look at ordinary differential equations or ODEs, by which we mean that there is only one independent variable and derivatives are only with respect to this one variable. If there are several independent variables, we will get partial differential equations or PDEs. We will briefly see these near the end of the course.
Even for ODEs, which are very well understood, it is not a simple question of turning a crank to get answers. It is important to know when it is easy to find solutions and how to do so. Even if you leave much of the actual calculations to computers in real life, you need to understand what they are doing. For example, it is often necessary to simplify or transform your equations into something that a computer can actually understand and solve. You may need to make certain assumptions and changes in your model to achieve this.
To be a successful engineer or scientist, you will be required to solve problems in your job that you have never seen before. It is important to learn problem solving techniques, so that you may apply those techniques to new problems. A common mistake is to expect to learn some prescription for solving all the problems you will encounter in your later career. This course is no exception.
So how do we use differential equations in science and engineering? First, we have some real world problem that we wish to understand. We make some simplifying assumptions and create a mathematical model. That is, we translate the real world situation into a set of differential equations. Then we apply mathematics to get some sort of a mathematical solution. There is still something left to do. We have to interpret the results. We have to figure out what the mathematical solution says about the real world problem we started with.
Learning how to formulate the mathematical model and how to interpret the results is what your physics and engineering classes do. In this course we will focus mostly on the mathematical analysis. Sometimes we will work with simple real world examples, so that we have some intuition and motivation about what we are doing.
Let us look at an example of this process. One of the most basic differential equations is the standard
exponential growth model. Let
denote the population of some bacteria on a Petri dish. Let us suppose
that there is enough food and enough space. Then the rate of growth of bacteria will be proportional to the
population. I.e. a large population grows quicker. Let
denote time (say in seconds). Our model will
be
![]() |
for some positive constant
.
Example 0.2.1: Suppose there are 100 bacteria at time 0 and 200 bacteria at time 10s. How many bacteria will there be 1 minute from time 0 (in 60 seconds)?
First we have to solve the equation. We claim that a solution is given by
![]() |
where
is a constant. Let us try.
![]() |
And it really is a solution.
OK, so what now? We do not know
and we do not know
. But we know something. We know
that
, and we also know that
. Let us plug these conditions in and see what
happens.

or
. So we know that
![]() |
At one minute,
, the population is
. See Figure 2.
Let us talk about the interpretation of the results. Does this mean that there must be exactly 6400
bacteria on the plate at 60s? No! We have made assumptions that might not be exactly true. But if our
assumptions are reasonable, then there will be approximately 6400 bacteria. Also note that in real life
is a discrete quantity, not a real number. However, our model has no problem saying that for example at 61
seconds,
.
Normally, the
in
will be known, and you will want to solve the equation for different
initial conditions. What does that mean? Suppose
for simplicity. Now suppose we want to solve the
equation
subject to
(the initial condition). Then the solution turns out to be
(exercise)
![]() |
We will call
the general solution, as every solution of the equation can be written in this
form for some constant
. Then you will need an initial condition to find out what
is to find the
particular solution we are looking for. Generally, when we say “particular solution,” we just mean some
solution.
Let us get to what we will call the four fundamental equations. These appear very often and it is useful to just memorize what their solutions are. These solutions are reasonably easy to guess by recalling properties of exponentials, sines, and cosines. They are also simple to check, which is something that you should always do. There is no need to wonder if you have remembered the solution correctly.
First such equation is,
![]() |
for some constant
. Here
is the dependent and
the independent variable. The general solution
for this equation is
![]() |
We have already seen that this is a solution above with different variable names.
Next,
![]() |
for some constant
. The general solution for this equation is
![]() |
Next, take the second order differential equation
![]() |
for some constant
. The general solution for this equation is
![]() |
Note that because we have a second order differential equation, we have two constants in our general solution.
And finally, take the second order differential equation
![]() |
for some constant
. The general solution for this equation is
![]() |
or
![]() |
For those that do not know,
and
are defined by

,
, and
(no that is not a typo) and
.
An interesting note about
: The graph of
is the exact shape a hanging chain will make and
it is called a catenary. Contrary to popular belief this is not a parabola. If you invert the graph of
it
is also the ideal arch for supporting its own weight. For example, the gateway arch in Saint Louis is an
inverted graph of
(if it were just a parabola it might fall down). This formula is actually inscribed
inside the arch:
![]() |
Exercise 0.2.7: Let
. Now try a solution of the form
for some
(unknown) constant
. Is this a solution for some
? If so, find all such
.