An Interesting Interpolation Problem
- To: mathgroup@smc.vnet.net
- Subject: [mg12038] An Interesting Interpolation Problem
- From: "Chris Farr" <farr@brown.edu>
- Date: Fri, 24 Apr 1998 01:52:10 -0400
Mathgroup:
I need your help once again. Any feedback would be much appreciated.
I'm really going to test my powers of explanation so here we go......
I have a two-dimensional matrix. I would like to create an
interpolating object of this thing, but I do not wish to use the
standard interpolating procedure built-in to Mathematica as it would
obscure the "threshold" nature of this matrix. Let me explain.
Consider the following 3 X 3 matrix in MatrixForm(I'm using letters
just for the sake of discussion, numbers will actually be used):
a 0 0
b c 0
d e f
Let's call this mat, so mat[[1,1]] = a, mat[[1,2]] = 0, etc.
Imagine that I create an interpolating object of mat (matinterp
ListInterpolation[mat,InterpolationOrder->1], I just use linear
interpolation for the sake of discussion, I don't think the type of
algorithm available in Mathematica will solve my problem).
If I put matinterp[1,1], I get "a". This is correct.
If I put matinterp[1,1.01], the algorithm will use information at
surrounding values, such as "a","0","b","c", to approximate
matinterp[1,1.01].
I DON'T WANT IT TO DO THIS!!!
When I put in matinterp[1,1.01], I wish it to return 0. This matrix
represents threshold behavior, I want there to be sharp
discontinuities, yet the interpolating object smoothes these out.
This is a tricky problem to say the least. I was thinking of pulling
out the points which lie on the "threshold curve." This would be (the
form is {x coord, y coord, value} ):
{1,1,a}
{2,2,c}
{3,3,f}.
Imaging that I plotted the INTERPOLATED "threshold" in xy space. Then,
(x,y) combinations ABOVE the "threshold" would receive a value of
zero. (x,y) combinations BELOW or ON the "threshold" would receive
some kind of value. The trick is, however, that for (x,y)
combinations BELOW or ON the "threshold" any interpolating which
needed to be done (i.e. the point may lie off of the grid) can only
use information for points below the threshold---the algorithm cannot
use the 0 values above the threshold. I think this is the hard part.
I realize this is a little complex, but any help would be much
appreciated.
Thanks,
Chris Farr