I have a list of data existing as {{{x, y, z}, f},...} from which I construct a 3D interpolation function using Interpolation[ ]. I am able to construct a vector field from the gradient of this scalar field, I have verified this looks correct by plotting it.
I wish to find the 'attractors' of this vector field.
By 'attractor' I mean the points at which a particle would end up at $t \rightarrow \infty$ by following the field. I.e. they flow down the gradient field to these points. I think attractor is the right name for this, please let me know if I am using the wrong word. I have also seen them referred to as $\omega$ limits.
I would like to use mathematica to find all of these points and here I begin to struggle. My initial attempt was to use:
interp = Table[
{{dat[[i, 1]], dat[[i, 2]], dat[[i, 3]]}, 1/(1 + dat[[i, 7]])},
{i, 1, Length[dat[[All, 1]]]}
]
intf = Interpolation[interp]
intfd[x_,y_,z_] :=Evaluate[D[intf[x,y,z],{{x,y,z}}]]
Table[
NMinimize[
{Norm[intfd[x,y,z]],-4<=x<=4,-4<=y<=4,-4<=z<=4},
{{x,-5,5},{y,-5,5},{z,-5,5}},
Method->{"NelderMead","RandomSeed"->i}
],
{i,1,20}
]
To try to find the points of 0 gradient. I'm aware this will also find the $\alpha$ limits (or sources for the field, where the particle is at $t \rightarrow -\infty$) and I'm not even 100% sure that Norm[V[x,y,z]] == 0 is a definition for one of these limits.
Also this is a crappy stochastic method for finding as many as I can. Though I can intuit where the points should be ahead of time to verify I have found them all I would like a general solution.
Can anyone suggest a better method for finding the attractors of the field?


ContourPlotand plot the zero-contours of the norm of the vector field to start with. Again, this will find points other than the "attractors", but it's a start, maybe. Of course, your functions are functions of three variables? Then this might not work. – march Sep 14 '15 at 16:49FindMinimumonintf? – Michael Seifert Sep 15 '15 at 15:59