- #1
acusick
- 8
- 0
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.
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.