• Archana Receives the Donna B. Hamilton Award

    Archana Khurana has been selected to receive the Donna B. Hamilton Award for Excellence in Undergraduate Teaching in a General Education Course.  Awards are based solely on student nominations and are solicited from across campus.  From the many nominations received, the selection committee was very impressed by the student experience Read More
  • Yanir Receives a Do Good Campus Fund Grant

    Yanir’s proposal on “Incorporating outreach into the curriculum via experiential learning” is one of the only 27 projects out of 140 submissions that were funded by the UMD Do Good Campus Fund. Read More
  • Congrats to 3 CMNS Students Named Goldwater Scholars

    Congratulations to UMD’s 3 Goldwater Scholars this year, all from CMNS: Junior physics and mathematics double-degree student Yash Anand Sophomore atmospheric and oceanic science and physics double-degree student Malcolm Maas Junior biological sciences and mathematics double-degree student Jerry Shen Over the last 15 years, UMD’s nominations yielded 49 scholarships—No. 2 Read More
  • Maria Cameron Receives the 2024 MURI Award

    Congratulations to Maria Cameron for her MURI award. MURI are multidisciplinary university research initiative grants that are awarded by the department of defense. Cameron’s grant is sponsored by the office of naval research. Her team includes Balakumar Balachandran (ME) and Miao Yu (ME). This is a project on “disorder-influenced collective Read More
  • A $27.2M Gift to the Math Department by the Brin Family

    The university announced today a big gift to the Math Department. The very generous gift of $27.2M was made by Michael & Eugenia Brin. The gift will endow the Brin Mathematics Research Center, establish an endowed chair, and launch a summer camp for high school students. The official university’s press Read More
  • 1
  • 2
  • 3
  • 4
  • 5

Glossary for Differential Equations with MATLAB, 3rd edition

For the updated version of this glossary for MATLAB 2019a, please go here.

This glossary is divided into the following sections:

  1. MATLAB Operators: the special symbols used by MATLAB,
  2. MATLAB Commands: commands that manipulate data or expressions, or that initiate a process,
  3. Built-in Functions: basic mathematical functions that can be evaluated or plotted,
  4. Graphics Commands: commands using in creating or modifying figures,
  5. Built-in Constants,
  6. MATLAB Programming: commands used for programming and structuring M-files,
  7. Simulink Blocks: the Simulink blocks most useful for the Simulink problems in this book. For a more extensive listing of Simulink blocks, see the Simulink documentation.
  8. Useful MuPAD Commands: for using MuPAD directly (rather than through the Symbolic Math Toolbox interface).

The distinction among these various categories, especially among commands and programming constructs, is somewhat artificial.

Each item is followed by a brief description of its effect and then (in most cases) one or more examples. To get more information on a command, you can use the help command or the Help Browser. This glossary is not a comprehensive list of MATLAB commands, but it includes the commands most useful for studying differential equations.

MATLAB Operators

@
Marker for a function handle, used to refer to a built-in function or to create an anonymous function.
  f = @(x, y) x.^2.*y + y.^2
  quadl(@atan, 0, 1)
\
Left matrix division. X = A\B is the solution of A*X = B. Type help slash for more information.
    A = [1 0; 2 1]; B = [3; 5]; A\B
/
Ordinary division or right matrix division. Type help slash for more information.
./
Element-by-element division of arrays. Type help rdivide for more information.
*
Scalar or matrix multiplication, depending on context. Type help mtimes for more information.
.*
Element-by-element multiplication of arrays. Type help times for more information.
^
Scalar or matrix power, depending on context. Type help mpower for more information.
.^
Element-by-element power. Type help power for more information.
:
Range operator, used for defining vectors. Type help colon for more information.
'
Single quote mark, used for beginning and ending strings. Also used to denote the conjugate transpose of a matrix (see ctranspose).
.'
Denotes the transpose of a matrix (see also transpose).
;
Suppresses output of a MATLAB command. Also used to separate rows of a matrix.
    X = 0:0.1:30;
    A = [1 2 3; 4 5 6; 7 8 9]
...
Line continuation operator. Cannot be used inside strings.
    1 + 3 + 5 + 7 + 9 + 11 ...
        + 13 + 15 + 17
    ['This is a way to create very long strings ', ...
        'that span more than one line. Note the ', ...
        'square brackets.']

MATLAB Commands

addpath
Adds the specified directory to MATLAB's file search path.
    addpath('C:\my_mfiles')
    addpath C:\my_mfiles
ans
A variable holding the value of the most recent unassigned output.
bvp4c
Boundary value problem solver. Usually requires use of bvpinit to set the ``initial guess'' argument. The example below solves and plots the solution of y''+y=0 with boundary values y(0)=0, y(π/2)=1.
    solinit = bvpinit((0:0.1:1)*pi/2, [1, 0]);
    sol = bvp4c(@(x, y) [y(2); –y(1)], ...
        @(ya, yb) [ya(1); yb(1) – 1], solinit);
    plot(sol.x, sol.y(1,:))
cd
Makes the specified directory the current (working) directory.
    cd C:\mydocs\mfiles
char
Converts a symbolic expression to a string. Useful for defining inline functions or for defining input to dsolve.
    syms x y
    f = inline(char(sin(x)*sin(y)), 'x', 'y')
clear
Clears values and definitions for variables and functions. If you specify one or more variables, then only those variables are cleared.
    clear
    clear f, g
collect
Collects coefficients of powers of the specified symbolic variable in a given symbolic expression.
    syms x y
    collect(x^2 – 2*x^2 + 3*x + x*y, x)
conj
Gives the complex conjugate of a complex number.
    conj(2 + 3*i)
ctranspose
Conjugate transpose of a matrix. Usually invoked with the ' operator. Equivalent to transpose for real matrices.
    A = [1 3 i]; A'
D
Not a true MATLAB command. Used in the dsolve command to denote differentiation. See diff.
    dsolve('t*Dy + y = sin(t)')
deal
Distributes its arguments to different variables.
    [r, t] = deal(sqrt(x^2 + y^2), atan2(y, x))
delete
Deletes a file from the disk.
    delete filename
det
The determinant of a matrix.
    det([1 3; 4 5])
deval
Evaluates a numerical solution to an ODE at specified points.
    sol = ode45(@(t, y) t.*y, [0, 5], 1)
    deval(sol, 1)
diff
Symbolic differentiation operator (and difference operator).
    syms x; diff(x^3)
    syms x y; diff(x*y^2, y)
dir
Lists the files in a directory.
disp
Displays a string or the value of a variable.
    disp('The answer is:'), disp(a)
doc
Displays details about a specific command in the Help Browser.
    doc print
double
Gives a double precision value for either a numeric or symbolic quantity. Applied to a string, double returns a vector of ASCII codes for the characters in the string.
    z = sym('pi'); double(z)
dsolve
Symbolic ODE solver. By default, the independent variable is t, but a different variable can be specified as the last argument. The input must be a string, not a symbolic expression.
    dsolve('D2y – t*y = 0')
    dsolve('Dy + y^2 = 0', 'y(0) = 1', 'x')
    [x, y] = dsolve('Dx = 2*x + y', 'Dy = – x')
echo
Turns on or off the echoing of commands inside script M-files.
edit
Opens an M-file in the Editor/Debugger.
    edit mymfile
eig
Computes eigenvalues and eigenvectors of a square matrix.
    eig([2, 3; 4, 5])
    [e, v] = eig([1, 0, 0; 1, 1, 1; 1, 2, 4])
end
Last entry of a vector. (Also a programming construct.)
    v(end)
    v(3:end)
eval
Evaluates a string or symbolic expression. Useful in M-files or in defining anonymous functions.
    sol = dsolve('Dy = t^2 + y', 'y(0) = 2', 't');
    fsol = @(t) eval(vectorize(sol))
eye
The identity matrix of the specified size.
factor
Factors a polynomial or integer.
    syms x y; factor(x^4 – y^4)
feval
Evaluates a function specified by a string. Useful in function M-files.
    feval('exp', 1)
format
Specifies the output format for numerical variables.
    format short
    format long
fzero
Tries to find a zero of the specified function or expression (given as a string) near a given starting point or on a specified interval. If the first argument is a string, the independent variable must be x.
    fzero(@cos, [–pi 0])
    fzero('cos(x) – x', 1)
help
Asks for documentation for a MATLAB command. See also lookfor.
    help factor
ilaplace
Inverse Laplace Transform.
    syms s t; ilaplace(1/s, s, t)
inline
Constructs a MATLAB inline function from a string expression. Useful in MATLAB 6, but discouraged in later versions, in which it is better to use anonymous functions.
    sol = dsolve('Dy = t^2 + y', 'y(0) = 2', 't')
    fsol = inline(vectorize(sol), 't')
int
Integration operator for both definite and indefinite integrals.
    int('1/(1 + x^2)', 'x')
    syms x; int(exp(–x), x, 0, Inf)
inv
Inverse of a square matrix.
    inv([1 2; 3 5])
jacobian
Computes the Jacobian matrix, i.e., the matrix of partial derivatives with respect to the indicated variables.
    syms x y; jacobian([x^2*y y–x], [x y])
laplace
Computes the Laplace Transform.
    syms t s; laplace(t^5, t, s)
length
Returns the number of elements in a vector or string.
    length('abcde')
limit
Finds a two-sided limit, if it exists. Use right or left for one-sided limits.
    syms x; limit(sin(x)/x, x, 0)
    syms x; limit(1/x, x, Inf, 'left')
load
Loads Workspace variables from a disk file with a .mat suffix.
    load filename
lookfor
Searches for a specified string in the first line of all M-files found in the MATLAB path. Can be slow if many toolboxes are installed.
    lookfor ode
more
Turns on (or off) page-by-page scrolling of MATLAB output. Use the space bar to advance to the next page, the ENTER or RETURN key to advance line-by-line, and q to abort the output.
    more on
    more off
num2str
Converts a number to a string. Useful in programming.
    constant = ['a' num2str(1)]
ode45
Numerical ODE solver for first order equations. See MATLAB's online help for ode45 for a list of other MATLAB ODE solvers.
    [t, y] = ode45(@(t, y) t^2 + y, [0 10], 1);
    plot(t, y)
odeset
Used to set options for ode45, such as Events, AbsTol, and RelTol.
    options = odeset('Events', @eventfile)
ones
Creates a matrix of ones.
    ones(3), ones(3,1)
path
Without an argument, displays the search path. With an argument, sets the search path.
pause
Suspends execution of an M-file until the user presses a key.
pretty
Displays a symbolic expression in a more readable format.
    syms x y; expr = x/(x – 3)/(x + 2/y)
    pretty(expr)
publish
Runs the specified M-file and assembles input, comments, and output into a finished document in specified format. (The default is a web page, i.e., html format.)
    publish('mymfile', 'doc')
pwd
Shows the name of the current (working) directory.
quadl
Numerical integrator. The input function must be ``vectorized.''
    quadl(@(x) (1–x.^2).^(1/2), –1, 1)
quit
Terminates a MATLAB session.
roots
Finds the roots of a polynomial whose coefficients are given by the elements of the vector argument of roots.
    roots([1 1 –2])
save
Saves Workspace variables to a specified file. See load.
    save filename
sim
Runs a Simulink model. Specifying the time interval is optional.
    sim('mymodel', [0, 5])
simplify
Simplifies an algebraic expression.
    syms x; simplify((x+1)^2 – x^2)
size
Returns the number of rows and the number of columns in a matrix.
    A = [1 3 2; 4 1 5]
    [r, c] = size(A)
solve
Solves an algebraic equation. Will guess what the independent variable is if it is not specified.
    solve('x^2 + 3*x + 1')
strcat
Concatenates two or more strings.
    strcat('This ', 'is ', 'a ', 'long ', 'string')
str2num
Converts a string to a number. Useful in programming.
    constant = 'a7'
    index = str2num(constant(2))
struct
Used to create a ``structure.''
    x = struct; x.first = 'a'; x.second = 'b'; x
subs
Substitutes for parts of an expression.
    subs('x^3 – 4*x + 1', 'x', 2)
    subs('sin(x)^2 + cos(x)', 'sin(x)', 'z')
sum
Sums a vector, or sums the columns of a matrix.
    k = 1:10; sum(k)
sym
Creates a symbolic variable or number.
    pi = sym('pi')
    x = sym('x')
    constant = sym('1/2')
syms
Shortcut for creating symbolic variables. The command syms x is equivalent to x = sym('x').
    syms x y z
symsum
Evaluates a symbolic sum in closed form.
    syms x n; symsum(x^n/n, n, 1, inf)
taylor
Gives a Taylor polynomial approximation of order one less than a specified number (the default is 6) around a specified point (default 0). Will guess what the independent variable is if it is not specified.
    syms x; taylor(cos(x), 8, 0)
    taylor(exp(1/x), 10, x, inf)
transpose
Transpose of a matrix. Converts a column vector to a row vector, and vice versa. Usually invoked with the .' operator. See also ctranspose.
    A = [1 3 4]
    A.'
type
Displays the contents of a specified file.
    type myfile.m
vectorize
Vectorizes a symbolic expression. Useful in defining functions; see also eval and inline.
    f = inline(vectorize('x^2 – 1/x'))
vpa
Evaluates an expression to the specified degree of accuracy using variable precision arithmetic.
    vpa('1/3', 20)
whos
Lists current information on all the variables in the Workspace.
zeros
Creates a matrix of zeros.
    zeros(10), zeros(1,10)

Built-in MATLAB Functions

abs
absolute value
acos
inverse cosine
airy
Airy functions; airy(0, x) and airy(2, x) are linearly independent solutions of Airy's equation
asin
inverse sine
atan
inverse tangent
atan2
atan2(y,x) is the polar coordinate θ of the point (x, y).
besselj, bessely
Bessel functions. besselj(n, x) and bessely(n, x) are linearly independent solutions of Bessel's equation of order n.
cos
cosine
cosh
hyperbolic cosine
dirac
the unit impulse "function"
erf
the error function, the integral from 0 to x of (2/√π)exp(−t2).
exp
the exponential function ex
expm
the matrix exponential function, defined like ex, but using matrix multiplication
gamma
the gamma function Γ(x) = ∫0tx−1etdt
heaviside
the unit step function
hypgeom
the hypergeometric function of Gauss, 2F1(a,b;c;z)
imag
the imaginary part of a complex number
log
the natural logarithm
real
the real part of a complex number
sin
the sine
sinh
the hyperbolic sine
sinint
the sine integral ∫0x (sin t/t) dt
sqrt
the square root
tan
the tangent
tanh
the hyperbolic tangent

MATLAB Graphics Commands

axis
Sets axis scaling and appearance.
    axis([xmin xmax ymin ymax]) -- sets ranges for the axes.
    axis tight -- sets the axis limits to the full range of the data.
    axis equal -- makes the horizontal and vertical scales equal.
    axis square -- makes the axis box square.
    axis off -- hides the axes and tick marks.
close
Closes the current figure window; close all closes all figure windows.
contour
Plots the level curves of a function of two variables; usually used with the meshgrid command.
    [X, Y] = meshgrid(–3:0.1:3, –3:0.1:3);
    contour(X, Y, X.^2 – Y.^2)
ezplot
Basic plot command for symbolic expressions. Can also be used for implicit plots of f(x,y)=0.
    ezplot('exp(–x^2)', [–5, 5])
    syms x; ezplot(sin(x))
    syms x y; ezplot(x^3 – x – y^2, [–2, 2])
figure
Creates a new figure window.
gca
Get current axes. Returns the identifier (``handle'') of the axes properties of the active figure window.
gcf
Get current figure. Returns the number of the active figure window.
ginput
Gathers coordinates from a figure using the mouse (press the Enter or Return key to finish).
    [X, Y] = ginput
gtext
Places a text label using the mouse.
    gtext('Region of instability')
hold
Holds the current graph. Superimpose any new graphics generated by MATLAB on top of the current figure.
    hold on
    hold off
legend
Creates a legend for a figure.
    t = (0:0.1:2)*pi;
    plot(t, cos(t), t, sin(t))
    legend('cos(t)', 'sin(t)')
meshgrid
Creates a vector array that can be used as input to commands such as contour or quiver.
    [X, Y] = meshgrid(0:0.1:1, 0:0.1:2);
    contour(X, Y, X.^2 + Y.^2)
plot
Plots vectors of data. Specifying the plot style is optional.
    X = [0:0.1:2];
    plot(X, X.^3)
    plot(X, X.^3), 'rx–', 'LineWidth', 2)
plot3
Creates 3-dimensional (line) plots.
    t = [0:0.1:30];
    plot3(t, t.*cos(t), t.*sin(t))
print
Sends the contents of the current figure window to the printer or to a file. With the –s option, prints the current Simulink model.
    print
    print –deps picture.eps
    print –s
quiver
Plots a vector field for a pair of functions of two variables. It takes numerical, rather than symbolic, data. It is often useful to normalize vectors so that they have length close to 1 and to scale them by a factor of about 1/2.
    [X, Y] = meshgrid(–2:0.2:2, –2:0.2:2);
    U = X.*(X – Y – 2); V = Y.*(–X + Y + 1);
    L = sqrt(1 + U.^2 + V.^2));
    quiver(X, Y, U./L, V./L, 0.5)
set
Sets a property of a figure window.
    set(gca, 'FontSize', 14)
simplot
Similar to plot, but uses the style of a Simulink Scope window.
    t = [0:0.1:10]'; simplot(t, [sin(pi*t), cos(pi*t)])
subplot
Breaks the figure window into a grid of smaller plots.
    subplot(2, 2, 1), ezplot('x^2')
    subplot(2, 2, 2), ezplot('x^3')
    subplot(2, 2, 3), ezplot('x^4')
    subplot(2, 2, 4), ezplot('x^5')
text
Annotates a figure, by placing text at specified coordinates.
    text(x, y, 'string')
title
Assigns a title to the current figure window.
    title 'Nice Picture'
xlabel
Assigns a label to the horizontal coordinate axis.
    xlabel 'Year'
ylabel
Assigns a label to the vertical coordinate axis.
    ylabel 'Population'
zoom
Rescales a figure by a specified factor; zoom by itself enables use of the mouse for zooming in or out.
    zoom
    zoom(4)

Built-in MATLAB Constants

i
the imaginary unit
Inf
pi
the number π

MATLAB Programming

end
Terminates an if, for, while, or switch statement.
else
Alternative in a conditional statement. See if.
elseif
Nested alternative in a conditional statement. See the online help for if.
error
Displays an error message and aborts execution of an M-file.
for
Repeats a block of expressions a specified number of times. Must be terminated by end.
    figure, hold on
    t = –1:0.05:1;
    for k = 0:10
        plot(t, t.^k)
    end
function
Always used at the top of a function M-file to define a new function.
    function y = myfunction(x)
if
Conditional execution of MATLAB statements. Must be terminated by end.
    if (x >= 0)
        sqrt(x)
    else
        error('Invalid input')
    end
input
Used in a script M-file to prompt for user input.
    answer = input('Please enter [x, y] coordinates: ')
isa
Used in programs to check whether an object is of a given class (double, sym, etc.).
    isa(x, 'sym')
keyboard
Used in an M-file to return control to the keyboard. Useful for debugging M-files.
nargin
In M-files, returns the number of arguments passed to the function.
    if (nargin 2); error('Wrong numberof arguments'); end

MATLAB has many other programming constructs, including while, switch, case, otherwise, break, nargout, and return. Looking at MATLAB's built-in M-files is a good way to learn how to use these.

Useful Simulink Blocks

Continuous Library

  • Integrator: the most important block for differential equations, computes the integral. Also used to set initial conditions.

Math Operations Library

  • Sum, Add, Subtract: all can be used for addition and subtraction
  • Gain: used to multiply by a constant
  • Trigonometric Function: used for sin, cos, sinh, tan, etc.
  • Sqrt: square root
  • Abs: absolute value
  • MinMax: takes min or max
  • Polynomial: can compute any polynomial function
  • Product: self-explanatory
  • Divide: self-explanatory
  • Math Function: can compute many mathematical functions, such as exp and log

Sources Library

  • Constant: used to input a constant
  • Sine Wave: used to input a trigonometric signal
  • Step: used for a Heaviside function
  • Ramp: used for a ramp signal (Heaviside × linear)

Sinks Library

  • To Workspace: sends Simulink output back to MATLAB
  • Scope: used for plotting a signal
  • XY Graph: used for plotting one signal against another

Useful MuPAD Commands

Welcome to the home of A Guide to MATLAB. This book is a short, focused introduction to MATLAB, a comprehensive software system for mathematics and technical computing. It should be useful to both beginning and experienced users. It contains concise explanations of essential MATLAB commands, as well easily understood instructions for using MATLAB's programming features, graphical capabilities, and desktop interface. It also includes an introduction to SIMULINK, a companion to MATLAB for system simulation. Written for MATLAB 7, this book (the second edition, 2006) can also be used with earlier (and later) versions of MATLAB. An especially attractive feature is the many worked-out applications to mathematics, economics, science, and engineering.

A third edition, ISBN 978-1-107-66222-3, updated for MATLAB 8, is currently in production and will be available in the spring of 2014. This new edition contains new applications to image processing and financial mathematics. For more information about A Guide to MATLAB, please go to schol.math.umd.edu/matlab/.

cover for the 3rd edition

Problem Set D. Second Order Equations


Problem 1.

Airy's equation is the linear second order homogeneous equation y" = ty. Although it arises in a number of applications, including quantum mechanics, optics and waves, it cannot be solved exactly by the standard symbolic methods. In order to analyze the solution curves, let us reason as follows.

(a) For t close to zero, the equation resembles y"=0, which has general solution y = c1t + c2. We refer to this as a "facsimile" solution. Graph a numerical solution to Airy's equation with initial conditions y(0) = 0, y'(0) = 1, and the facsimile solution (with the same initial data) on the interval (-2, 2). How well do they match?

(b) For t ≈ −K2 << 0, the equation resembles y" = −K2y, and the corresponding facsimile solution is given by y = c1 sin(Kt + c2). Again using the initial conditions y(0) = 0, y'(0) = 1, plot a numerical solution of Airy's equation over the interval (-18, -14). Using the value K = 4, try to find values of c1 and c2 so that the facsimile solution matches well with the actual solution. Why shouldn't we expect the initial conditions for Airy's equation to be the appropriate initial conditions for the facsimile solution?

(c) For t ≈ K2 >> 0, Airy's equation resembles y" = K2y, which has solution y = c1 sinh(Kt + c2). Plot a numerical solution of Airy's equation together with a facsimile solution (with K = 4) on the interval (14, 18). In analogy with part (b), you have to choose values for c1 and c2 in the facsimile solution.

(d) Plot the numerical solution of Airy's equation on the interval (-20, 2). What does the graph suggest about the frequency and amplitude of oscillations as t → -∞? Could any of that information have been predicted from the facsimile analysis?

Here is a Mathematica Notebook solution, converted to a PDF file. If your browser is configured to view Mathematica Notebooks, you can view the actual Mathematica Notebook solution.

Table of Contents

1. Introduction 1
2. Getting Started with Mathematica 7
3. Doing Mathematics with Mathematica 13
4. Using Mathematica Notebooks 31
Problem Set A: Practice with Mathematica 41
5. Solutions of Differential Equations 45
6. A Qualitative Approach to Differential Equations 59
Problem Set B: First Order Equations 69
7. Numerical Methods 79
8. Features of Mathematica 97
Problem Set C:Numerical Solutions of Differential Equations 121
9. Solving and Analyzing Second Order Linear Equations 129
Problem Set D: Second Order Equations 145
10. Series Solutions 159
10. Laplace Transforms 167
Problem Set E: Series Solutions and Laplace Transforms 177
11. Higher Order Equations and Systems of First Order Equations 189
12. Qualitative Theory for Systems of Differential Equations 205
Problem Set F: Systems of Equations 213
Glossary 229
Sample Solutions 239
Index 261

Preface


© Copyright 2008 John Wiley and Sons, Inc.

Traditional introductory courses in ordinary differential equations (ODE) have concentrated on teaching a repertoire of techniques for finding formula solutions of various classes of differential equations. Typically, the result was rote application of formula techniques without a serious qualitative understanding of such fundamental aspects of the subject as stability, asymptotics, dependence on parameters, and numerical methods. These fundamental ideas are difficult to teach because they have a great deal of geometrical content and, especially in the case of numerical methods, involve a great deal of computation. Modern mathematical software systems, which are particularly effective for geometrical and numerical analysis, can help to overcome these difficulties. This book changes the emphasis in the traditional ODE course by using a mathematical software system to introduce numerical methods, geometric interpretation, symbolic computation, and qualitative analysis into the course in a basic way.

The mathematical software system we use is Mathematica™. (This book is also available in MATLAB and Maple versions.) We assume that the user has no prior experience with Mathematica. We include concise instructions for using Mathematica on any standard computer platform: Windows, Macintosh, or UNIX, including Linux. This book is not a comprehensive introduction or reference manual to either Mathematica or any of the computer platforms. Instead, it focuses on the specific features of Mathematica that are useful for analyzing differential equations. In this third edition we discuss some of the features of Mathematica 6 that make it even easier than it was previously to use Mathematica to produce integrated documents that incorporate text, mathematical calculations, and graphics.

This supplement can easily be used in conjunction with most ODE texts. It addresses the standard topics in ODE, but with a substantially different emphasis.

We had two basic goals in mind when we introduced this supplement into our course. First, we wanted to deepen students' understanding of differential equations by giving them a new tool, a mathematical software system, for analyzing differential equations. Second, we wanted to bring students to a level of expertise in the mathematical software system that would allow them to use it in other mathematics, engineering, or science courses. We believe that we have achieved these goals in our own classes. We hope this supplement will be useful to students and instructors on other campuses in achieving the same goals.

Acknowledgement and Disclaimer


We are pleased to acknowledge support of our research by the National Science Foundation, which contributed over many years to the writing of this book. Our work on the third edition was partially supported by NSF Grants DMS-0616585, DMS-0611094, and DMS-0805003. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

Brian R. Hunt
Ronald L. Lipsman
John E. Osborn
Donald A. Outing
Jonathan M. Rosenberg

College Park, Maryland and West Point, New York
August, 2008
  • 1
  • 2