Determining Constants of Best Fit Curve

I have a dataset (x,y) that I would like to fit a curve to. The curve must be of the form:
y = a + b*c^d*x^e
where a,b,c,d,e are constants and constants a and c are known.
Is there a way to numerically determine these constants in matlab?

 Accepted Answer

No. You can't decouple b and d: consider that (b)*c^(d) and (b*c)*c^(d-1) are the exact same value. So let's say you determine for your particular data set that b*c^d is 8 and you know c is 2. We could have (assuming b and d were restricted to take on only nonnegative integer values.)
  • b = 1 and d = 3
  • b = 2 and d = 2
  • b = 4 and d = 1
  • b = 8 and d = 0
All of those result in a value for b*c^d of 8. Which solution is the "correct" solution? Without other information, they all are.
If you want to try to determine e and b*c^d search the documentation for "curve fitting" and you'll find descriptions of many different tools that you can use for this application.

1 Comment

I see!
If I fix one of the constants, say b, such that a,b, and c are now known, will I be able to get a unique solution?
I tried doing this using the curve fitting tool app in matlab and it appears to be working.

Sign in to comment.

More Answers (0)

Categories

Asked:

Ian
on 6 Nov 2015

Commented:

Ian
on 6 Nov 2015

Community Treasure Hunt

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

Start Hunting!