MathGroup Archive 2003

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

Search the Archive

Re: Linear and logarithmic fit

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39368] Re: Linear and logarithmic fit
  • From: "Kevin J. McCann" <KevinMcCann!kjm at uunet.uu.net>
  • Date: Thu, 13 Feb 2003 04:51:53 -0500 (EST)
  • References: <b2d1ig$eak$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

What you want, probably, is a least squares fit, and then decide by
whichever one gives you the smallest residual. The least-squares fit picks a
function, e.g. a+b x. Then, given (a,b) computes the sum of the squares of
the difference between your data points and the straight line. Then you seek
those parameters (a,b) which minimize the resulting sum (residual). Here is
some code to do that. lsfit takes two arguments (a,b) and returns the
residual, FindMinimum then minimizes. The output of FindMinimum is the
residual and two rules with the best (a,b). Substitute your own function for
f[x_] in the body of lsfit.

Cheers,

Kevin

data = Table[{x, Sqrt[x]},

{x, 1., 3., 0.25}]

Plus @@ Apply[(f[#1] - #2)^2 & , data, {1}]

lsfit[(p_)?NumberQ, (q_)?NumberQ] :=

Module[{soln, f}, f[x_] := p + q*x;

Plus @@ Apply[(f[#1] - #2)^2 & , data,

{1}]]

lsfit[1, 1]

FindMinimum[lsfit[a, b], {a, -2, 2},

{b, -2, 2}]

lsfit[(p_)?NumberQ, (q_)?NumberQ] :=

Module[{soln, f}, f[x_] := p + q*Log[x];

Plus @@ Apply[(f[#1] - #2)^2 & , data,

{1}]]

FindMinimum[lsfit[a, b], {a, -2, 2},

{b, -2, 2}]

"jay Johnson" <joh_nson at yahoo.com> wrote in message
news:b2d1ig$eak$1 at smc.vnet.net...
> Hi everybody,
>
> If I have 9 points in a 2 dimensional space how do I decide if they
> fit better a linear function or a logarithmic function?
>
> Thanks in advance,
>
> Jay
>




  • Prev by Date: Simple List question. HELP.
  • Next by Date: Re: Input output disappear
  • Previous by thread: Re: Linear and logarithmic fit
  • Next by thread: Re: Linear and logarithmic fit