Re: interpolation and plotting 3d data

• To: mathgroup at smc.vnet.net
• Subject: [mg44725] Re: interpolation and plotting 3d data
• From: drbob at bigfoot.com (Bobby R. Treat)
• Date: Sat, 22 Nov 2003 02:17:18 -0500 (EST)
• References: <200307120919.FAA29502@smc.vnet.net> <bphub9\$1o8\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

Here's a quadratic fit with the x y term:

allpoints = {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34},
{0.19, 0.64, 0.31}, {0.19, 1.04, 0.29}, {0.19, 1.07, 0.31},
{0.2, 0.54, 0.39}, {0.2, 0.59, 0.35}, {0.2, 0.63, 0.32},
{0.2, 0.66, 0.3}, {0.2, 0.69, 0.28}, {0.2, 1, 0.28},
{0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09, 0.34},
{0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21, 0.62, 0.33},
{0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31},
{0.21, 1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4},
{0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29},
{0.22, 0.92, 0.28}, {0.22, 0.95, 0.29}};
ClearAll@f
f[x_, y_] = Fit[allpoints, {1, x, y, x y, x^2, y^2}, {x, y}]
tabdata = Table[f[x, y], {x, 0.25, 0.7, 0.05}, {y, 0.3, 1.1, 0.1}];
ListPlot3D[tabdata]

Bobby

Michael Alfaro <malfaro at ucsd.edu> wrote in message news:<bphub9\$1o8\$1 at smc.vnet.net>...
> Hello,
>
> I have a list of 3D data that is not uniformly spaced (obtained through
> monte carlo sampling).  Is it possible to interpolate a function across
> the range of the sampled points and plot the interpolated 3d function?
>
> A sample of the data in the table (allpoints) looks like this:
>
> {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34}, {0.19, 0.64, 0.31}, {0.19,
>       1.04, 0.29}, {0.19, 1.07, 0.31}, {0.2, 0.54, 0.39}, {
>    0.2, 0.59, 0.35}, {0.2, 0.63, 0.32}, {0.2, 0.66, 0.3}, {0.2, 0.69,
>       0.28}, {0.2,
>    1, 0.28}, {0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09,
>      0.34}, {0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21,
>     0.62, 0.33}, {0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31},
> {0.21,
>     1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4}, {
>      0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29}, {0.22,
>      0.92, 0.28}, {0.22, 0.95, 0.29} }
>
> I had something in mind like:
>
>   f[x_, y_, z_] = Interpolation[Flatten[allpoints, 1]]
> tabdata = Table[f[x, y, z ], {x, 0.25, 0.7,
>        0.05}, {y, 0.3, 1.1, 0.1}, {z, 0.3, 1.1, 0.1}]
> ListPlot3D[tabdata]
>
> but must be missing something important because I can't get a plot out