如何在数值上最小化一个函数,例如,
一个等价的问题是求解这个泛函作为微分方程的欧拉方程。但是有没有一种数值方法可以在不求解微分方程的情况下直接最小化这个函数?
如何在数值上最小化一个函数,例如,
一个等价的问题是求解这个泛函作为微分方程的欧拉方程。但是有没有一种数值方法可以在不求解微分方程的情况下直接最小化这个函数?
像这样的变分问题是最优控制问题的特例,有大量关于求解方法的文献和大量可用的软件。为了用最优控制中使用的标准形式来表达它,我们可以写而不是并考虑“系统动力学”
数值求解方法有很多,但在实践中最常用的是“直接”方法,将成本表示为总和,而不是通过某种离散化过程的积分。最常见的方法被称为直接搭配(参见例如https://doi.org/10.2514/3.20223)和多重拍摄(例如https://doi.org/10.1016/S1474-6670(17)61205-9)。在此之后,我们得到一个非线性规划 (NLP) 问题,这是一个可以使用标准求解器解决的优化问题。
如果你对解决实际问题感兴趣,我建议你看看开源工具包 ACADO,它通过多次射击来解决最优控制问题,或者 CasADi,它是一个为动态优化而设计的自动微分工具包,可以与常见的接口NLP 求解器,例如 IPOPT。