【问题标题】:Does Matlab's fmincon() do automatic gradient scaling?Matlab 的 fmincon() 是否进行自动梯度缩放?
【发布时间】:2022-01-17 19:04:16
【问题描述】:
我目前正在使用 Matlab 解决一个受约束的非线性优化问题,我为目标和约束提供分析雅可比。 fmincon() 能够在不缩放约束和目标函数的情况下找到解决此问题的方法(即,将 ScaleProblem 设置为 false)但我想知道 fmincon() 是否像我一样自动缩放分析 jacobians m 在没有梯度缩放的情况下使用其他包(例如 IPOPT)复制结果时遇到问题。如果正在执行缩放,那么这个缩放究竟是如何完成的?
【问题讨论】:
标签:
matlab
optimization
mathematical-optimization
nonlinear-optimization
【解决方案1】:
在documentation:
ScaleProblem true 导致算法对所有约束和目标函数进行归一化。通过设置为默认 false 来禁用。
对于optimset,值为'obj-and-constr' 或'none'。见Current and Legacy Option Names。
所以它标准化了目标函数和所有约束。如果该功能没有被混淆,您可以使用edit fmincon 打开它,看看是否可以更清楚地说明问题。如果它被混淆/内置,唯一拥有更多知识的将是 The MathWorks 本身。