Model fitting to data

  • Thread starter acusick
  • Start date
  • #1
8
0

Main Question or Discussion Point

I have some (x,y) data with x in the range of 1e10 and 1e13, y is between 0 and 1. I am fitting this data using several theoretical models to gain an understanding of underlying mechanisms (by which model fits best).

Using NonlinearModelFit in Mathematica, I get memory failures and cannot complete the fitting. As a solution, I scaled down the x values by 10^10 so the range is now from about 1 to 1000, and that is now OK with Mathematica. So I just get my functions and scale the constants to get back up to where the x values should be and it is fitting my data well. Now I have a problem shifting the function to where my x values are because it is more complicated mathematically. The function is:

f = 1 - Exp[ -R*G^(m-1)*(x)^m ]

Where I'm fitting R, G, and m and my variable is x. So this question is in 2 parts:

1: Is there a way I can get Mathematica to take my very large x values and have it fit this and similar function models? Is there a trick to this? Or are the values just too large to do the fitting to data?

2. If not possible, if I scale my x values down 10^10 as a solution, how may I shift the R, G, and M values accordingly in this case to get it back up to the x values that will fit my data?

So far I have not been able to do this mathematically and feel maybe it is not possible with an equation in this form... But not sure! Here's what I got so far: The solution of the fitting is in this form:

Exp[-a*x^b]

So scaling to accept my x values I get:

Exp[-a*{x*10^-10}^b]

Exp[-a*x^b*10^(-10b)]

But this does not seem to be working to scale properly... Any ideas? Thanks.
 

Answers and Replies

  • #2
SteamKing
Staff Emeritus
Science Advisor
Homework Helper
12,798
1,666
Instead of using the exponential function for the independent variable, why don't you use a logarithm? Log(x) will be between 10 and 13, which seems eminently practical, given the range of y values.
 
  • #3
798
34
Instead of fitting f = 1 - Exp[ -R*G^(m-1)*(x)^m ], try to fit y= -R*G^(m-1)*(x)^m where y=ln(1-f)
 

Related Threads on Model fitting to data

  • Last Post
Replies
5
Views
814
Replies
1
Views
566
  • Last Post
Replies
4
Views
595
  • Last Post
Replies
9
Views
3K
  • Last Post
Replies
3
Views
2K
Replies
6
Views
20K
Replies
4
Views
1K
  • Last Post
Replies
14
Views
3K
Replies
8
Views
1K
  • Last Post
Replies
1
Views
987
Top