Can you approximate a vector field?

Say you have a physical simulation, there are "wind current" vectors stored in a 2d space.

So you know that the vectors near each other will likely be similar in direction.

Can we capitalize on the "similarity" across the vector field, and use it to write an approximation to the vector field?

So is there an alternative way to represent a vector field (something like a Fourier Transform for vector fields?)

-
– Zhen Lin Dec 30 '11 at 14:41
I disagree Zhen, I think the question is asking: given a collection of tangent vectors in $\mathbb{R}^2$, is there always a continuous vector field that extends it? – Zev Chonoles♦ Dec 30 '11 at 14:43
Look at the component functions. If the vector field is smooth, then you could perform a Taylor expansion (for instance) on the components, thus approximating the vector field. Sketch the case where one of the components is constant. – dls Dec 30 '11 at 15:50

3
Anything you can do to a scalar field, you can do to the components of a vector field... Well, not quite: anything linear in the scalar values can be applied to the components of a vector field, and the result will be sensible under change of basis of the vector values. So you can do bilinear interpolation, spline interpolation, componentwise Fourier transforms, and so on... – Rahul Narain Aug 26 '12 at 19:14

1
This is an essential problem in numerical fluid dynamics. It's not enough to come up with some smooth interpolation of the given data. One should also take care that "conservation laws" at work in these data are represented in the interpolation. Otherwise during numerical processing the system will be fueled, e.g., with extraneous energy not present in the situation on the ground. – Christian Blatter Feb 7 at 10:33
show 1 more comment

1 Answer

Your main point about vector fields is that vectors near each other are fairly similar. Now, assuming we have well-behaved functions that do follow that behavior, one way of "capitalizing on the similarity of a vector field" is to simply "zoom out" by taking the average of all vectors within a certain area and getting the average vector in the center of the area. This will yield a vector field with less vectors, which, because of our approximations, stand for a generalized behavior.

If, in the same scenario, we wished to emphasize the differences, then I'd suggest rather than taking an average vector for a rectangular area, you may want to divvy up your vector field such that there are regions defined by a 'central' vector and some range of tolerance from it.

However, what I think you are looking for is simply the divergence. Given your vector field $\vec F(x, y)$, making a contour plot of $D(x, y) = \nabla \cdot \vec F(x, y)$ and then choosing values of $D$ to be the contours, you can demonstrate how similar the direction and magnitude of a vector is by each curve's spacing. This also causes a loss of information, which is what you were looking for.

-
What do you mean by "less vectors"? By definition, a vector field is a total relation on the state space. Do you mean the image is more restricted because of the averaging? – alancalvitti Oct 26 '12 at 14:51

1
Yes - there would be less information about the field in the image. For example, if you plot some vector field $\vec v$ on a grid with steps $\Delta y$ and $\Delta x$, then after averaging $\vec v'(x, y) = (v(x, y) + v(x+\Delta x, y) + v(x, y+ \Delta y) + v(x-\Delta x, y) + v(x, y- \Delta y))/5$ and plotting a vector on every point on the grid with steps $2\Delta y$ and $2\Delta x$, you'll end up with half the vectors you started with. – VF1 Oct 26 '12 at 17:06
So you're referring to a discrete grid where the number of vectors is a function of the grid subsample, as opposed to differentiable manifold, where your assertion is false? (Btw, in the example you gave above wouldn't there be 1/4 the number of vectors b/c it's quadratic in 2 directions?). – alancalvitti Oct 26 '12 at 21:37
It would be one half, because there is an overlap in the information being used for the averages. But the actual implementation of averaging the is immaterial - you could think of lots of ways to do so. Yes, I was referring to a discrete grid of vectors that represents the vector field - that was what your question was asking - how to show general trends - no? – VF1 Oct 27 '12 at 2:14
@alancalvitti: I suppose for a continuous field, one could take the mean over small regions and thus discretize. (As Mark Kac said:"Be wise, discretize!") – Raskolnikov May 10 at 6:10
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 10, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9403232336044312, "perplexity_flag": "head"}