Part I: Local Behavior

We specify the test box dimensions. The coordinates of the lower left hand corner are (a,b).

> a:= 1.5 ; b:= 2.0 ; deltax:= 0.5 ; deltay:= 0.4 ;

> aplus:=a + deltax : bplus:= b + deltay:

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> Boxplot:= plot([[a, b], [aplus, b], [aplus, bplus], [a, bplus], [a, b] ], style=LINE):

> Fplot:= fieldplot( [F(x,y)] , x = -1 .. 3 , y = -1 .. 7 , arrows=SLIM):

> display( [Fplot , Boxplot] );

>

To see what happens to the box in a small neighborhood of (a,b) we use the direction vectors to give the rates of change in each component separately. Notice that these rates are different at each of the four corners of the box.

> deltat:= 0.9;

[Maple Math]

> LL:= a + F(a,b)[1]*deltat , b + F(a,b)[2]*deltat ;

> LR:= aplus + F(aplus,b)[1]*deltat , b + F(aplus,b)[2]*deltat ;

> UL:= a + F(a,bplus)[1]*deltat , bplus + F(a,bplus)[2]*deltat ;

> UR:= aplus + F(aplus, bplus)[1]*deltat , bplus + F(aplus, bplus)[2]*deltat ;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

At this point we have chosen a fairly large value for deltat, just so we can see the effect clearly. We will come back and repeat these calculations with smaller and smaller values of deltat. (Those of you who are familiar with Maple may wish to program a do .. od loop instead.)

> Newbox:= plot( [[LL], [LR], [UR], [UL], [LL] ], style=LINE ):

> display( { Fplot, Boxplot, Newbox }, title=`One step deltat=0.9`);

> side1 := [ LR[1]-LL[1], LR[2]-LL[2] ]:

> side2 := [ UL[1]-LL[1], UL[2]-LL[2] ]:

> A_new:= side1[1]*side2[2] - side1[2]*side2[1] ;

[Maple Math]

Where on earth did this formula come from? Does it really give the area of the new box, or are we secretly making some approximation? (Hint: what are sides 3 and 4?)

> A_old:= deltax * deltay ;

> rate_of_expansion:= (( A_new - A_old ) / A_old ) / deltat ;

[Maple Math]

[Maple Math]

How do the successive values that you obtain for this rate compare with our original computation of div F? For those of you who have studied differential equations, you will recognize that we have used Euler's method with just one step, and at that we have only computed the effect on the corners of the initial box! Perhaps it would be a good idea to think about the calculation of A_new above--are there other sources of error besides the ones we have already identified? On the other hand, what happens to this error as deltat -> 0? Now try working through the same process with the same vector field, but starting with different boxes (first keep a, and b, but change deltax and deltay, and again take a sequence of successively smaller values of deltat; then start all over again with a box located with lower left corner at a new point (a, b), and vary deltax, deltay, and deltat). What observations do you make?