fmincon for sensitive problem

2 次查看(过去 30 天)
Dear all, I am using fmincon for trajectory optimization including ODE. Thanks to the helps from this community, my code works well (final first-order optimality value is small) for ordinary trajectories. However, when I try to optimize a trajectory that sensitively depends on intiial conditions, my code can find a feasible solution, but the final first-order optimality value is very large (typically around 10,000). Is there any methods or options that capable of handling such sensitive problems using fmincon?
Regards, Kenta

采纳的回答

Matt J
Matt J 2014-9-7
编辑:Matt J 2014-9-7
If it's a linear ODE, it's not clear why the result would be sensitive to initial conditions. The dependence on the initial conditions should be linear.
As we discussed in your earlier thread, the problem could be non-differentiable. If so, that could be the reason why you sometimes see poor behavior in the first-order optimality measure. But I would expect that any non-differentiabilities would lie on regions of measure zero. It may be worth running the optimization with the 'Display' option set to 'iter' and observing how the first order optimality varies throughout the iterations.
Also, how many unknown parameters do you have? If less than 6, it might be worth trying fminsearch or a similar derivative-free method. There are versions on the FEX that support constraints,
  1 个评论
Kenta
Kenta 2014-9-7
Dear Matt J, thanks again for your answer. My ODE is nonlinear and I have already run the 'Display' and 'iter', where first order optimality has been always large and not shown unidirectional decrease.
Indeed, I have 6 unknown parameters, but it seems to be great idea to consider fminsearch with constraints. Derivative-free method is attractive for me now even though computational time may be long. I'll try and thanks again! Regards, Kenta

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by