Fitting a hyperbolic curve to a set of data using Qi, Di, and b

7 views (last 30 days)
Hi,
First, I do not have the optimizaiton toolbox, the only toolbox I have is that stats box.
I have a vector with 1000 numbers in it which are on a general decline. The actual position of the number in the vector is a date and all the dates are evenly spaced. For example with vector [10 9 7 5 3], 10 is oil production in month 1, 9 is oil production in month 2, 7 is oil production in month 3... The three variables I need to adjust are qi (initial oil production and it will be >= the qi in the data), b (ranging from .001 to 1.5) and Di (nominal decline which can range from 1 to 200%). I know I could do this using a tripple for loop and vary Qi, b, and Di and use whatever combination yields the smallest r-squared total but I'm sure that's not the best way of doing it. Any help is appreciated.
Thanks, -Andrew

Answers (1)

Alan Weiss
Alan Weiss on 4 Mar 2014
You might want to try fitnlm to fit a nonlinear model. You could also try the base MATLAB method of curve fittting via optimization. I am not sure if either of these allow you to include bounds on your variables, but at least it is a place to start.
Alan Weiss
MATLAB mathematical toolbox documentation

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!