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 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...
> Cheers,
>
> Fabrice.
>

Salut Fabrice,

Interpolation works only on regular grids.

There is a supplement written at university of freiburg, which can be

<< "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