MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: 2D interpolation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72927] Re: 2D interpolation
  • From: Peter Pein <petsie at dordos.net>
  • Date: Thu, 25 Jan 2007 07:23:32 -0500 (EST)
  • References: <ep7cv1$bl5$1@smc.vnet.net>

Jouvenot, Fabrice schrieb:
> Hello,
>  
> I am asking (again) for your knowledge to help me.
> I try to have a 2 dimensional interpolation of points {x, y, f(x,y)}.
> After some try, I wrote these lines (as an exemple of what I want to do)
> that works :
> ________________________________________
> 
> data = {{1, 1, -10}, {1, 2, 2}, {1, 3, 3}, {1, 4, 4}, {1, 5, 5}, {2, 1,
> 2}, {2, 2, 4}, {2, 3, 6}, {2, 4, 8}, {2, 5, 10}, {3., 1, -9}, {3, 2, 6},
> {3, 3, 90}, {3, 4, 12}, {3, 5, 15}, {4, 1, 4}, {4, 2, 8}, {4, 3, 12},
> {4, 4, 16}, {4, 5, 20}, {5, 1, 5}, {5, 2, 10}, {5, 3, 15}, {5, 4, 20},
> {5, 5, 40.5}}; 
> 
> MatrixForm[data]
> 
> test[x_, y_] := Interpolation[data][x, y]; 
> 
> test[1.5, 1.5]
> 
> Plot[test[x, 1], {x, 1, 5}]; 
> 
> Plot[test[x, x], {x, 1, 5}]; 
> 
> Plot3D[test[x, y], {x, 1, 5}, {y, 1, 5}]; 
> 
> ________________________________________
>  
>  
> The problem is that when I want to use a point with a real x or y like
> {1.23, 1.1, -10}, nothing works anymore.
> I think that I miss something essential and fundamental, but I don'y
> know why...
> Thanks for your help,
> Cheers,
> 
> Fabrice.
> 

Salut Fabrice,

Interpolation works only on regular grids.

There is a supplement written at university of freiburg, which can be
downloaded at http://www.imtek.uni-freiburg.de/simulation/mathematica/IMSweb/.


<< "Imtek`Interpolation`"
irregulardata = (#1 + Table[Random[]/10 - 1/20, {3}] & ) /@
{{1, 1, -10}, {1, 2, 2}, {1, 3, 3}, {1, 4, 4}, {1, 5, 5},
 {2, 1, 2}, {2, 2, 4}, {2, 3, 6}, {2, 4, 8}, {2, 5, 10},
 {3., 1, -9}, {3, 2, 6}, {3, 3, 90}, {3, 4, 12}, {3, 5, 15},
 {4, 1, 4}, {4, 2, 8}, {4, 3, 12}, {4, 4, 16}, {4, 5, 20},
 {5, 1, 5}, {5, 2, 10}, {5, 3, 15}, {5, 4, 20}, {5, 5, 40.5}};
sp = imsSpline[x, xi, 3];
func = imsUnstructuredInterpolation[irregulardata, sp];
func[1.5, 1.5]
Plot[func[x, 1], {x, 1, 5}];
Plot[func[x, x], {x, 1, 5}];
Show[Block[{$DisplayFunction = #1 & }, {Plot3D[func[x, y], {x, 1, 5}, {y, 1, 5}],
     Graphics3D[{Red, PointSize[1/50], Point /@ ({0, 0, 0.05} + #1 & ) /@
         irregulardata}]}]];

-->
0.7765956225038178
<Graphics omitted>

Peter


  • Prev by Date: Re: How to remove Dot?
  • Next by Date: Re: Zeroes of Zeta function
  • Previous by thread: Re: 2D interpolation
  • Next by thread: Re: 2D interpolation