FindMinimum和逻辑约束

时间:2013-08-03 10:16:00

标签: wolfram-mathematica

我试图找到一个函数的最小值。我正在做的是像

FindMinimum[Norm[{u1, u2, u3}, 2] + Norm[{v1, v2, v3}, 2] + Norm[{p1, p2, p3}, 2], {u1, 0, 1}, {u2, 0, 1}, {u3, 0, 1}, {v1, 0, 1}, {v2, 0, 1}, {v3, 0,   1}, {p1, 0, 1}, {p2, 0, 1}, {p3, 0, 1}]

现在我要添加约束:

{u1, u2, u3} + {v1, v2, v3} + {p1, p2, p3} = {somevec1, somevec2, somevec3}

并且我希望3个向量中的每一个至少有1个零,这给了我麻烦。

我试过了Count[{u1, u2, u3}, 0] > 1而我收到了这个错误

FindMinimum::eqineq: Constraints in {False} are not all equality or inequality constraints. With the exception of integer domain constraints for linear programming, domain constraints or constraints with Unequal (!=) are not supported. >>

修改

我目前的情况是:

w = {1, 1, 1};
FindMinimum[{Norm[{u1, u2, u3}, 2] + Norm[{v1, v2, v3}, 2] + Norm[{p1, p2, p3}, 2], {u1, u2, u3} + {v1, v2, v3} + {p1, p2, p3} == w && u3 == 0 && v1 == 0 && p2 == 0}, {u1, 0, 1}, {u2, 0, 1}, {u3, 0, 1}, {v1, 0, 1}, {v2, 0, 1}, {v3, 0, 1}, {p1, 0, 1}, {p2, 0, 1}, {p3, 0, 1}]

这不够普遍。

1 个答案:

答案 0 :(得分:0)

u1 * u2 * u3 = 0,...等等。