Numerical Integrators With Problem-Based Optimization

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.

 채택된 답변

Matt J
Matt J 2025년 10월 29일
편집: Matt J 2025년 10월 29일

1 개 추천

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

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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Surrogate Optimization에 대해 자세히 알아보기

질문:

2025년 10월 29일

댓글:

2025년 10월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by