関数の最小値を見つけようとしています。私が取り組んでいるのは次のようなものです
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}]
これは十分に一般的ではありません。