curve fitting toolbox for y=y0.exp((x0/x)^v) where data is known, but y0,x0 and v are unknown constants

1 view (last 30 days)
Hi everyone
I have some scatter data that should take the form of y=y0.exp((x0/x)^v) (where x is the independent variable).
I have tried using the cftool gui but one of 2 things happens; either no model appears on the plot and I get values that can't possibly be right, or I get a totally straight line appearing across the plot.
I should say that y0,x0 and v are unknown constants in a range that I have a rough idea about. I was wondering if a different MATLAB tool would be better for this even. I can't see whats wrong with my approach.
Thanks for your time.

Sign in to comment.

Answers (1)

Alex Sha
Alex Sha on 3 May 2020
Hi, Em, if fit as the function: y=y0.exp((x0/x)^v), then the result will be about:
Root of Mean Square Error (RMSE): 9.39279339716383E-8
Sum of Squared Residual: 2.20561419504511E-13
Correlation Coef. (R): 0.82258630535955
R-Square: 0.676648229765075
Parameter Best Estimate
---------- -------------
y0 5.04851528699078E-118
x0 8.3186904534098E-210
v -0.0113812101308709
While, if change your fit function from " y=y0.exp((x0/x)^v)" to " y=y0.exp(x0^v/x^v)", take x0^v as x1, the function become: y=y0.exp(x1/x^v), the result will be more better and stable as below, the biggest difference is: x0 in original function will never be negative, but x1 in new function can be any value:
Root of Mean Square Error (RMSE): 7.55037962863218E-8
Sum of Squared Residual: 1.42520581341159E-13
Correlation Coef. (R): 0.886423351349966
R-Square: 0.785746357818505
Parameter Best Estimate
---------- -------------
y0 3.84276923298628E-7
x1 -2.23082444717647E24
v 10.629499809373

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by