Re: 2D interpolation
- To: mathgroup at smc.vnet.net
- Subject: [mg72953] Re: 2D interpolation
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Fri, 26 Jan 2007 06:58:34 -0500 (EST)
- Organization: The University of Western Australia
- References: <ep7cv1$bl5$1@smc.vnet.net>
In article <ep7cv1$bl5$1 at smc.vnet.net>,
"Jouvenot, Fabrice" <F.Jouvenot at liverpool.ac.uk> wrote:
> 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.
n dimensional interpolation using Interpolation requires that the
coordinates lie on a structured tensor product grid. The point
{1.23, 1.1, -10} is not on the grid formed by x, y = 1, 2, ..., 5, i.e,
Outer[List, Range[5], Range[5]]
Have a look at the triangular interpolation functionality which is
included in the ExtendGraphics Packages available at
http://library.wolfram.com/infocenter/Books/3753/
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul