【问题标题】:MATLAB: how to solve this constrained optimization in MatLabMATLAB:如何在 MatLab 中解决这种约束优化
【发布时间】:2017-04-03 23:19:07
【问题描述】:

我想在 MatLab 中做以下约束优化问题:

假设我们想最大化一个目标函数 f(x,t) = x - t, s.t. x 的单位为 [-1/t, 1/t]。 X 是我们的选择变量,t 是给定的参数。假设 X 在实数中,T 在 Real++ 中。

很明显,因为 f(.) 在 x 和 t>0 中是新月形,所以对于给定的 t,解将是 x*(t)=1/t。但是我怎样才能在 Matlab 中获得这个呢?这样我就可以绘制 t vs x*(t)。

我今年开始编程,如果我要找的代码太简单了,我很抱歉。我试着自己做,但我做不到。

非常感谢您。

【问题讨论】:

  • 类似的问题可以用不同的方式处理。如果你想使用官方的 Matlab 工具箱,可以看看:mathworks.com/products/optimization.html。这可能是最简单的解决方案。或者,您可以使用 csminwel.m (sims.princeton.edu/yftp/optimize) 等优化函数为自己建模问题和约束。从编程的角度来看,它更复杂,因为它通常需要您转换您感兴趣的参数,以便它们的支持是无限的。

标签: matlab optimization constraint-programming correspondence


【解决方案1】:

如果你有优化工具箱,你可以使用fmincon函数解决约束优化问题。请点击here

您也可以使用外部库Yalmip

【讨论】:

  • 您不必使用 fmincon,因为您可以使用 linprog 解决问题。您应该执行以下操作: f = [1; -1],Aeq = [0, 1],beq = t,相应地定义上限和下限。请查看uk.mathworks.com/help/optim/ug/linprog.html 以获得进一步的说明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2017-05-11
  • 1970-01-01
  • 2012-10-25
  • 2020-11-06
  • 1970-01-01
相关资源
最近更新 更多