Re: surface fitting question
- To: mathgroup at smc.vnet.net
- Subject: [mg61330] Re: [mg61328] surface fitting question
- From: "David Annetts" <davidannetts at aapt.net.au>
- Date: Sun, 16 Oct 2005 00:17:46 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Ralph,
> I have this data in a file. It is a 2D table that 26 rows and
> 17 columns.
> |
> --------------------------------------------------------------
> ---------
> | 0.000 0.000 0.000 ... 0.000 0.000 0.000
> | 0.050 0.050 0.155 ... 16.409 19.375 20.156
> | .
> | .
> | .
> | 47.500 50.000 55.000 ... 2017.500 2075.580 2182.765
> --------------------------------------------------------------
> ---------
> |
>
> I would like to find an equation that describes this surface
> using mathematica. I think that 3rd degree polynomials would
> be what I'm looking for. So, maybe
> data[x,y] = ax^3 + bx^2 + cx + d + ey^3 + fy^2 + gy
>
> I've seen and example that uses Fit[], so I think this can be
> done, but I'm a novice at mathematica and don't know how to
> set this problem up. I have been able to fit a polynomial to
> curve data, but now I need to fit a surface.
This sort of thing is described by online help. You can use Fit[], or any
of the ?*Regress options from Statistics`.
As an example,
(* geneate some data *)
data = Table[{x, y, 10 x^3 + 5 x^2 + 6 x + 10 - 5y^3 - 5y^2 - 10y},
{x, -5, 5, .5}, {y, -5, 5, .5}];
(* try and fit these data *)
Needs["Statistics`"]
NonlinearFit[Partition[Flatten[data], 3], a
x^3 + b x ^2 + c x + d + e y^3 + f y^2 +
g y, {x, y}, {{a, 1}, {b, 1}, {c, 1}, {d, 1}, {e, 1}, {f, 1}, {g, 1}}]
To get a better idea of the fit (obviously not needed here), change Fit to
Regress.
Regards,
Dave.