Question: vector field

I am trying to do animated plots of vector fields and I'm running into a problem with the fieldstrength parameter.

Basically the way a typical vector field plot works is that every time it plots a vector it scales it by some amount based on field strengths of the other vectors on the plot.  So for example, if you use the "fixed" option it scales arrows by 0.9 times the maximum arrow size for the grid.

This is great for still plots but it causes a problem when you use the "animate" command to animate the vector field.  What I think happens is that animating something over n frames just creates n separate plots.  So each plot uses only its own maximum field strength to calculate the arrow size.  In other words, the arrows are scaled by a different factor for each plot, thereby resulting in the animation being inaccurate.

So, for example, take the following animation:

animate(fieldplot, [[t, t], x = -10 .. 10, y = -10 .. 10], t = -10 .. 10, frames = 30)

As you animate t from -10 to 10, this should result in the arrows getting smaller and smaller as t approaches zero.  At zero itself there would be no plot at all.  Above zero, as t increases, the arrows would get longer and longer until they reach maximum size.

If you try this out in maple, you'll see that it doesn't work.  As t approaches zero from the negative direction, the arrows remain at a constant length.  When t crosses the zero point, the arrows suddenly flip direction but have the same magnitude.  Then they remain unchanged as t increases to 10.

It seems like this could be fixed if there was a "fieldstrength" option where you could just specify explicitly the scale factor and not have it depend on the other vectors in the grid.  For this example, if I were able to tell fieldplot to just use a scale factor of 0.1 for all the plots, it would work fine -- in this example each vector takes up a 1x1 portion of the plot and the maximum x and y value is 10.  I thought maybe the "fixed" fieldstrength option did this but alas this is not the case.

Does anyone have any insight into how to do this?




Please Wait...