Determining Constants of Best Fit Curve

3 views (last 30 days)
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

Steven Lord
Steven Lord on 6 Nov 2015
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
Ian
Ian on 6 Nov 2015
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)

Community Treasure Hunt

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

Start Hunting!