具有非线性约束的多变量函数优化

3次查看(最近30天)
男孩
男孩 2021年1月29日
评论道: 男孩2021年1月31日
我正在为下面的表达式寻找参数的最优值
函数-x(1)*y(1)*c + x(2)*y(2)*c + x(1)*x(2)
哪一个 X (1) y(1) X (2) y(2) c 有一个大范围的值
X (1) = X (2) = linspace(0,10,10)
Y (1) = Y (2) = linspace(0,2,10)
c = linspace(0100年,10)
和约束条件
x(1)*y(1) + 2*y(1)*c -x(1)* x(2) < 0
X (2)*y(2) + 2*y(2)*c - X (1)* X (2) < 0
目标是找到 α 每组变量的值: X (1) y(1) X (2) y(2) c 这样 函数 具有最小值。
例如:
它的价值是什么 α x (1) = 5, x (2) = 3, y (1) = 2, y (2) = 1, c = 70, 函数 是最低的。基本上,代码应该计算所有不同 α 所有的值 X (1) y(1) X (2) y(2) c 变量
1评论
马特·J
马特·J 2021年1月30日
你文章的标题不准确地将约束描述为非线性。它们实际上是线性的(这是重要的)。

登录评论。

接受的答案

马特·J
马特·J 2021年1月30日
编辑:马特·J 2021年1月30日
因为对于所有x1,x2组合,目标函数是一条正的倾斜直线,最小值就是满足约束条件的最小值。这可以得到,对于所有的组合,
(X1, X2, Y1, Y2, C] = ndgrid (linspace(0、10、10),linspace(0、10、10),...
linspace(0、2、10),linspace(0、2、10),linspace(0100年,10));
X1X2 X2 = X1。*;
不可行的= X1X2 = = 0 & ((2 * Y1。* C-X1。* Y1) > 0 | (2 * Y2 + X2。* Y2) > 0);
不变式= X1X2==0 & ~不可行;
minAlpha = max((2*Y1.*C-X1.*Y1))。/ X1X2 (2 * Y2 + X2。* Y2)。/ X1X2);%的组合解决方案金宝搏官方网站
minAlpha(不可行)=南;
minAlpha(不变的)= 0;
5个评论

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!