2013-08-03 2 views
0

Я пытаюсь найти минимум функции. То, что я работаю на что-то вродеFindMinimum и логические ограничения

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. >> 

Edit:

Текущая вещь у меня есть:

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

, которая не является достаточно общим.

+0

Существует специальный сайт StackExchange для * Mathematica * Сейчас: http://mathematica.stackexchange.com/ - пожалуйста, попросите вашего будущего вопросы там. –

ответ

0

Как насчет u1 * u2 * u3 = 0, ... и т.д.

+0

ok Я попробовал, но получаю все нули для решения 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 && u1 * u2 * u3 == 0 && v1 * v2 * v3 == 0 && p1 * p2 * p3 == 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}] – asdfa

+0

Возможно, это недостаток Алгоритма FindMin Mathematica. Вы можете попробовать лучше посеять алгоритм, или почему бы не найти точное решение, разрешив его вручную? – Phil

+0

Потому что я хочу масштабировать его для многих измерений и, возможно, для другого количества ненулевых элементов. Я попробую установить начальную точку. – asdfa

Смежные вопросы