Matlab中的线性不等式约束

时间:2018-10-16 15:29:14

标签: matlab constraints

我想为管的环形截面的半径设置约束,即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中放入什么

1 个答案:

答案 0 :(得分:0)

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的外观。