QuantEcon / ContinuousDPs.jl

Continuous state dynamic programming
BSD 3-Clause "New" or "Revised" License
13 stars 10 forks source link

Optimization #7

Open oyamad opened 6 years ago

oyamad commented 6 years ago

Now a derivative free bounded univariate optimization function Optim.optimize (Brent()) is used to compute the max in the Bellman operator. This part should be the main bottleneck. It will be more efficient if we utilize information on 1st and 2nd derivatives of f and g.

Options: in ContinuousDP,

  1. 1st and 2nd derivatives are mandatory;
  2. 1st and 2nd derivatives are optional; in this case, we have to switch the optimization solver depending on whether or not ContinuousDP has derivatives.
sglyon commented 6 years ago

Given that we require users to pass in functions for f and g, we should be able to use automatic differentiation exactly and efficiently calculate the derivatives of f and g.

I think Optim has this functionality built in

oyamad commented 6 years ago

Thanks, I didn't think about automatic differentiation. (And I have no experience with that.)