【发布时间】: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