MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: NDSolve with momentum

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105466] Re: NDSolve with momentum
  • From: dh <dh at metrohm.com>
  • Date: Fri, 4 Dec 2009 04:31:02 -0500 (EST)
  • References: <hf86m0$17g$1@smc.vnet.net>


Gareth Russell wrote:

> Hi,

> 

> Does anyone know how to use NDSolve to create the trajectory of motion 

> of a point following positive gradients on an arbitrary landscape (a 

> ListStreamPlot-like path), but with 'momentum'? The idea is that the 

> trajectory would not terminate on smaller local maxima, depending on 

> the momentum term.

> 

> I don't know exactly how ListStreamPlot does its thing -- I would guess 

> it interpolates the array of gradient pairs, and then uses NDSolve to 

> find the paths. If so, is there way to modify that basic idea to 

> include a momentum-like term? Or would I need to do a full physics-type 

> model as if I were modelling a ball with mass, gravity, friction, etc.?

> 

> Thanks,

> 

Hi Garteh,

if I understand correctly, you want something like simulated annealing. 

Thsi can be donme by:  NMinimize[f, vars, Method -> "SimulatedAnnealing"].

On the other hand, if you want the momentum-friction approach, here is 

an example:



Clear[mass, friction, x, y, pos, position, pot, grad];

mass = 1;

friction = 0.3;

tmax = 10;

pot[pos_] := pos.pos;

grad[{x_, y_}] =

   Evaluate[{D[pot[{#1, #2}], #1], D[pot[{#1, #2}], #2]}] & @@ {x, y};

position =

  pos /. NDSolve[{-grad[pos[t]] - friction (pos'[t].pos'[t]) ==

       pos''[t] mass, pos[0] == {1, 0}, pos'[0] == {0, 1}},

     pos, {t, 0, tmax}][[1]]

ParametricPlot[position[t], {t, 0, tmax}, AspectRatio -> Automatic,

  PlotRange -> All]



Daniel




  • Prev by Date: Re: How to make large graphics object fit within a
  • Next by Date: Re: How to make large graphics object fit within a
  • Previous by thread: NDSolve with momentum
  • Next by thread: Re: NDSolve with momentum