Matlab 中的线性不等式约束



我想为管子的环形截面的半径设置一个约束,该约束r_o - r_i>.0025,其中r_o和r_i是变量,每个是沿管长度的内半径和外半径的1x11数组。我已经操纵了这个

r_o - r_i - .0025 <= 0

如何设置 A 和 b 矩阵(用于 fmincon(来解决这种不等式?

我假设我的 b 矩阵只是一个列向量,每个值为 -.0025,长度与 r_o 个变量的数量相匹配(在本例中为 11(,但不知道在矩阵 A 中放入什么。

fmincon中的约束形式为Ax<=b。任何线性不等式约束都可以采用这种形式。

您正在优化整个矢量r_ir_o对吗?在这种情况下,我会将您的优化向量x设置为类似x = [r_i, r_o]'的东西,即长度为 22(列(向量,其中前 11 个元素对应于r_i,其余 11 个元素对应于r_o。在这种情况下,您可以将r_i <= r_o - 0.025映射到[eye(11), -eye(11)]*x <= -0.0025*ones(11,1),从而告诉您Ab应该是什么样子。

最新更新