0

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

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: {False} 中的约束不都是相等或不等约束。除用于线性规划的整数域约束外,不支持域约束或不等 (!=) 约束。>>

编辑:

我目前拥有的是:

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}]

这还不够普遍。

4

1 回答 1

0

u1*u2*u3=0, ... 等等怎么样?

于 2013-08-03T18:38:12.997 回答