Re: curve fitting question
- To: mathgroup at smc.vnet.net
- Subject: [mg115421] Re: curve fitting question
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Tue, 11 Jan 2011 00:31:06 -0500 (EST)
- References: <igecqn$cqe$1@smc.vnet.net>
Hi Michael,
It seems that Mathematica 8 is able to solve for y:
In[1]:= Solve[y == a + b (Exp[40*(x + c*y)/d] - 1) - (x + c*y)/e, y]
During evaluation of In[1]:= Solve::ifun: Inverse functions are being
used by Solve, so some solutions may not be found; use Reduce for
complete solution information. >>
Out[1]= {{y -> (
40 a c e - 40 b c e - 40 c x -
c d ProductLog[-((
40 b c e E^((40 a c e)/(d (c + e)) - (40 b c e)/(d (c + e)) + (
40 x)/d - (40 c x)/(d (c + e))))/(d (c + e)))] -
d e ProductLog[-((
40 b c e E^((40 a c e)/(d (c + e)) - (40 b c e)/(d (c + e)) + (
40 x)/d - (40 c x)/(d (c + e))))/(d (c + e)))])/(
40 c (c + e))}}
During evaluation of In[1]:= Solve::ifun: Inverse functions are being
used by Solve, so some solutions may not be found; use Reduce for
complete solution information. >>
Out[1]= {{y -> (
40 a c e - 40 b c e - 40 c x -
c d ProductLog[-((
40 b c e E^((40 a c e)/(d (c + e)) - (40 b c e)/(d (c + e)) + (
40 x)/d - (40 c x)/(d (c + e))))/(d (c + e)))] -
d e ProductLog[-((
40 b c e E^((40 a c e)/(d (c + e)) - (40 b c e)/(d (c + e)) + (
40 x)/d - (40 c x)/(d (c + e))))/(d (c + e)))])/(
40 c (c + e))}}
If that doesn't suit you you could rewrite your equation as y - a + b
(Exp[40*(x + c*y)/d] - 1) - (x + c*y)/e, square this, plug in the data
points (xi,yi) and sum, then Minimize this.
Cheers -- Sjoerd
On Jan 10, 8:34 am, "Michael B. Heaney" <mhea... at alum.mit.edu> wrote:
> Hi,
>
> I have data in (x,y) pairs. I have an equation:
>
> y= a +b (Exp[40*(x + c*y)/d] - 1) - (x +c*y)/e
>
> where a,b,c,d, and e are fitting parameters.
>
> Note that this equationcannot be put in the form y=f(x).
>
> How do I fit this equation to my x,y data?
>
> Thanks,
>
> Michael