Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: surface fitting question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61336] Re: surface fitting question
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Sun, 16 Oct 2005 00:17:52 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <diprth$hpc$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Ralph Smith wrote:
> 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.
> 
> thanks,
> Ralph
> 
> 
> 
Hi Ralph,

You must provide to *Fit* a list of three coordinates for each points as 
in the following example:

In[1]:=
data = Flatten[Table[Table[{i, j, Random[Real, {0, 2500}]}, {j, 17}], 
{i, 26}], 1];

In[2]:=
myFit = Fit[data, {x^3, x^2, x, 1, y^3, y^2, y}, {x, y}]

Out[2]=
901.9358457174038 + 69.00000405849856*x - 4.965777107187227*x^2 + 
0.11341669401419147*x^3 - 18.948955500363553*y +
   5.111441786546051*y^2 - 0.23474750193421623*y^3

In[3]:=
Plot3D[myFit, {x, 1, 26}, {y, 1, 17}];

Best regards,
/J.M.


  • Prev by Date: Re: surface fitting question
  • Next by Date: Re: Re: Compile nested loops with depending index variables...
  • Previous by thread: Re: surface fitting question
  • Next by thread: Re: surface fitting question