Numerical Integrators With Problem-Based Optimization

35 views (last 30 days)
I have an optimization problem where I will have to integrate some differential equations over a time horizon that is dependent on the optimization variables (it is a two-body astrodynamics problem so alternatively I could use root-finding to solve Kepler's equation). I tried setting up the problem using the problem-based approach but quickly realized that the class of variables used in the problem-based approach will not work with ode45 (or any root-finding problems). I was just curious if there happened to be any workaround to this, or if it can be confirmed that I have to resort to the solver-based approach when I have such an optimization problem.

Accepted Answer

Matt J
Matt J on 29 Oct 2025 at 3:44
Edited: Matt J on 29 Oct 2025 at 6:02
but quickly realized that the class of variables used in the problem-based approach will not work with ode45 (or any root-finding problems)
We don't know what brought you to that conclusion, but objective functions involving ODEs should be possible in the problem-based framework using fcn2optimexpr. You should be able to do anything in the problem-based approach that you can with the solver-based approach, except when you want to use the SpecifyObjectiveGradient and SpecifyConstraintGradient options of the nonlinear optimization solvers.
There are, however, other pitfalls in optimization problems involving ODEs, which are discussed here,
  1 Comment
Nick
Nick on 30 Oct 2025 at 2:16
Ok good to know. I came to that conclusion because I got an error when inputting the optimization class of variables into various functions. I was not aware of that function you linked or lots of other documentation I came across when looking at it. I am not well versed in the problem based approach yet. The only downside (as far as I have come to understand) is that you can't use the automatic differentiation when using fcn2optimexpr.

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!