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