Mathematics 136 – Calculus 2 Lab Day 2: slope fields for Differential Equations and Euler’s Method April 2, 2014

Background

To study first order differential equations

\frac{dy}{dx} = f(x, y)

and their solutions qualitatively, we can use the graphical slope field (or direction field, as in Stewart’s section 7.2). associated to the equation. Recall, the slope field is a picture obtained by placing at each point (x_{0}, y_{0}) in the plane a small line segment of slope equal to the number f(x_{0}, y_{0}). As we will see, Maple draws these as arrows. A solution of the differential equation is then a function y = g(x) whose graph has slope equal to f(x, g(x)) at each point (x, g(x)) on the graph. That is, the graph “follows the slope field” so that at each point, its tangent line has the same slope as the slope field arrow at that point.

Today, we will draw some additional slope fields, use them to visualize solutions, and see how Euler’s Method applies to give approximate solutions.

1. Slope Fields in Maple

Begin by entering

                              with(DEtools);
                               with(plots);

once at the start of the session. Note the capitalization, which is necessary; DE stands for Differential Equation, as you might guess. This command loads an external package of additional Maple commands for working with differential equations. You need to do that to make the DEplot command available – the main operation we will be using today. The output will be a list of the commands in the DEtools package.

To plot the slope field for an equation

\frac{dy}{dx} = f(x, y)

you can enter a command of the following format:

            DEplot(diff(y(x),x)=f(x,y(x)),y(x),x=a..b,y=c..d);

where:

• the f is the expression for the slope function f(x, y). You enter that in usual Maple format (or use a symbolic name for the expression).

• The dependent variable (unknown function) in the differential equation should be entered in the form y(x) everywhere. For example, to plot the slope field for the equation \frac{dy}{dx} = \frac{7x−y}{x+2y}, you can enter a command like

    DEplot(diff(y(x),x) = (7*x-y(x))/(x+2*y(x)),y(x),x=-2..2,y=-2..2);

• the ranges of x- and y-values indicate the portion of the plane that will be plotted with the slope field. A standard number of grid points is used.

Lab Questions, Part I

For each of the following of the following differential equations, generate a plot of the slope field on the given region of the plane. By eye, analyze the behavior of the solution passing through the given points (x_{0}, y_{0}) – that is the solution of the differential equation and the initial condition y(x_{0}) = y_{0}. What do think the graph does as x → +∞?

A) Differential equation: \frac{dy}{dx} = −4xy, Region: −3 ≤ x ≤ 3, 0 ≤ y ≤ 10, Initial point: (0, 8)

B)

Differential equation: \frac{dy}{dx} = y(y − 1)(y − 2),
Region: −3 ≤ x ≤ 3, −1 ≤ y ≤ 3,
Initial points: (0, 0), (0, 0.5), (0, 1.5), (0, 2.01).

C) Differential equation: \frac{dy}{dx} = exp(−x^{2} + y), Region: −3 ≤ x ≤ 3, −10 ≤ y ≤ 10, Initial point: (−3, −1).

Plotting Solutions in Maple

To plot solutions of a differential equation, together with the slope field, we can use the same DEplot command above, but with different options. For example, to plot the solution of the equation \frac{dy}{dx} = −4xy with y(0) = 8, for 0 ≤ x ≤ 1, you would enter a command like

 DEplot(diff(y(x),x) = -4*x*y(x),y(x),x=0..1,[[y(0)=8]],linecolor=black);

If you want to see several solution curves, you can place a list of initial conditions, separated by commas, in the [] brackets after the x = 0..1. For instance to see solution curves with y(0) = .5 and y = 1 on the same axes, change to [[y(0) = .5], [y(0) = 1]]. Note: The default color for the solution curve is a shade of gold that does not show up very well when you print a worksheet on a black and white printer(!). Hence we use the option linecolor=black. The general format is:

• the differential equation will always come first,

• then the dependent variable or unknown function (y(x))

• then the range of x-values for which you want to see the graph of the solution.

• then, in square brackets, separated by commas, a list of initial conditions [y(a)=b]. In the example above, there’s just one, but any number can be included.

Lab Questions, Part II D) For each of the differential equations in questions I A,B,C above, generate a single

plot showing the slope field and the solution(s) starting at the given point(s). Did those solutions look like what you expected?

E) For equation C, experiment with different initial conditions y(−3) = y_{0}. What is the “cut-off” value for y_{0} between solutions that tend to a finite value as t → ∞ and those that grow without any bound?

Lab Questions, Part III

In case you are wondering, Maple draws these graphs in a particular way, by using an approximate numerical method similar to numerical integration methods. We will see a simplified version of this called Euler’s Method next. The idea is this. Suppose we want approximate values for a solution of \frac{dy}{dx} = f(x, y) and y(a) = y_{0} for x in some interval [a, b]. We can subdivide the interval as before into n equal subintervals with Δx = \frac{b−a}{n}, proceed as follows:

1) “sample” the slope function at (x_{0}, y_{0}) to get f(x_{0}, y_{0})

2) proceed along a straight line with slope f(x_{0}, y_{0}) until x = x_{1} = x_{0} + Δx. The y-coordinate on the line is one approximation for y(x_{1}). That can be found like this. The line is y − y_{0} = f(x_{0}, y_{0})(x − x_{0}) so when x = x_{1} = x_{0} + Δx, we get y_{1} = y_{0} + f(x_{0}, y_{0})Δx.

3) Then repeat the process starting from (x_{1}, y_{1}).

This idea yields the following recipe (Euler’s Method) for computing the approximate y-values: y_{0} is given from the initial condition, then

y_{k} = y_{k−1} + f(x_{k−1}, y_{k−1})Δx

for k = 1, 2, …, n.

In this part of the lab, you will use Maple to carry out the calculations for Euler’s Method on the equation from Lab Question I A and plot the results.

A) The following Maple commands will use Euler’s Methods to generate a table of approximate values of the solution of y′ = −4xy with y(0) = 8 on [0, 1] with n = 4, so Δx = .25.

    xl[0]:=0:  yl[0]:=8:
    for i to 4 do
        xl[i]:=xl[i-1]+.25;
        yl[i]:= yl[i-1]-4*xl[i-1]*yl[i-1]*(.25);
    end do;

(To enter these, type Shift/Enter at the end of each line to start a new line, but staying within the same execution group.) Then the following commands will plot the slope field, the piecewise linear approximate solution graph made by connecting the dots for the points computed above

DirField:=DEplot(diff(y(x),x)=-4*x*y(x),[y(x)],x=-.1..1,y=0..10):

Pts:=plot([seq([xl[i],yl[i]],i=0..4)],style=point,symbol=circle,color=blue):
Lines:=plot([seq([xl[i],yl[i]],i=0..4)],color=black):
display(DirField,Pts,Lines);

Enter these and execute them to see the graph. (Note: the display command is in the plots package. If you get that line spit back at you with no output, you will need to execute with(plots); (again).)

B) Now, modify the lines above computing the x- and y-lists to compute a similar table of values but with n = 20, not n = 4. There are number of things you will need to change – be sure you find them all!

C) If you look carefully at your plots from parts A and B here, you should see that there are times when Euler is underestimating the value you would get by following the slope field exactly and other times when Euler overestimates. What is the pattern? What property of the actual solution says that Euler underestimates? What property of the actual solution says that Euler overestimates?

NOTE: In all questions here, some care may be needed to get reasonable graphs. As you will see, some of these solutions grow extremely fast and you may get nonsense output or an error message when that happens. One possible solution is to put in a range of y-values after the initial conditions in the DEplot command if you suspect that there’s a problem. The graphing terminates when the solution curve leaves the window you defined. Try a restriction like y = -10..10.

Assignment

Writeups due by email to jlittle@holycross.edu by 5:00pm on Monday, April 7.