MathGroup Archive 2006

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

Search the Archive

Re: FindFit (beginner question)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg63839] Re: FindFit (beginner question)
  • From: Bill Rowe <readnewsciv at earthlink.net>
  • Date: Wed, 18 Jan 2006 02:39:08 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

On 1/17/06 at 4:33 AM, pfraser at covad.net (Pete Fraser) wrote:

>I'm trying to curve fit to a series of points with a Sin. I started
>with a test set of points that actually lay on a Sin curve:

>samples = Table[{i, Sin[i/4]}, {i, 0, 20}];

>then used FindFit (even giving a hint on the amplitude):

>f1 = FindFit[samples, a Sin[b x + c], {{a, 1}, b, c}, x]

>I would have expected:

>{a -> 1, b -> 0.25, c -> 0}

>but actually got:

>{a -> -0.125598, b -> 0.978835, c -> 1.984}

>What am I doing wrong?

The short answer is nothing. Doing non-linear curve fitting is inherently problematic. The answer you get is often very sensitive to the initial starting point. The default starting point uses is 1 for parameters that do not have a specified initial start point.

In this particular example changing the initial starting point for b gives the desired result, i.e.,

In[2]:=FindFit[samples,a Sin[b x +c],{a,{b,0},c},x]

Out[2]:={a -> 1., b -> -0.25, c -> 3.14159}

which is clearly a correct fit since sin(x) = sin(Pi-x)
--
To reply via email subtract one hundred and four


  • Prev by Date: Re: Beginner--how to import a series of files?
  • Next by Date: Getting identifier names from content MathML of equation
  • Previous by thread: FindFit (beginner question)
  • Next by thread: variable of integration not localized in Integrate and Sum?