Is there any formal way to generate samples of physical fields (e.g. electromagnetic field, fluid flow) conditional on observations? The samples would need to satisfy conditions like being continuous, globally divergence free, boundary conditions etc.

I could generate something with numerical simulation that met the criteria, but this feels messy and I'm not really sure it would be sampling the right distribution.

From reading around, I have the feeling that I should be able to put something together using Lagrangians and generating functions. But I'm not really sure where to start.


I will try to be more specific:

Suppose I have a vector field representing a fluid flow. I know some the field is continuous, divergence free, and have partial information on boundary conditions (i.e. the flow does not cross some boundaries).

Now suppose I observe a version of the field that has been blurred, or averaged over. What I would like to do is sample from the distribution of realistic fields (satisfying the conditions above) which are also consistent with my partial observations.

  • 1
    $\begingroup$ Can you elaborate further on what you want to do? Depending on the details, this could either be a totally straightforward problem, or a total mess. $\endgroup$ – knzhou Apr 1 '19 at 21:21
  • $\begingroup$ Thanks for your comment, I've added some further details. Either way, I'd be interested to know which interpretation would make the problem straightforward. $\endgroup$ – prdnr Apr 1 '19 at 21:51

As far as I understand you want to do something similar to Vector field reconstruction. But with some conditions on sample distribution.

I would try to do it in the following way.

  1. Get some [orthogonal] basis for representation of the field. Probably you already have one. Boundary and continuity conditions should give you some ideas. Probably instead of looking for a vector field basis it is worth to look for a basis of some three-dimensional function and consider it's gradient as your vector field. Plane waves is a nice basis for 3-D functions.

  2. Sample uniformly from this basis.

  3. (Trick is here!) Assign weights to sample elements in such a way that makes the sample consistent with your observations. Optimize some regularity function of weights (variation for example) keeping consistency with observations.

  • $\begingroup$ Thanks, I like the idea of treating the vector field as the gradient of a 3D function. Just to clarify on step 3: if I understand correctly what you describe is an optimization over the weights assigned to the basis vectors, and the output would be a single field that most closely matches my observations. So to find the conditional distribution would I need to use something like Laplace's method, or did you have something else in mind? $\endgroup$ – prdnr Apr 3 '19 at 14:26
  • $\begingroup$ 2prndr No, I mean something like Umbrella Sampling or Wang and Landau algorithm. You just randomly pick some points in your space of vector fields (randomly picking basis coefficients), then for each point (vector field) calculate the magnitude that you also know from observations, for example some mean vector. Then compute average of this magnitude over the whole sample. Then compare your observable with this mean. Then assign weights to points in such a way that makes them equal. $\endgroup$ – user36313 Apr 4 '19 at 8:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.