Как сформировать список множеств неравенств в математике - PullRequest
3 голосов
/ 13 января 2011

Я хочу сделать следующее в Mma. Предположим, у меня есть три выражения, x1, 3 x1-x2, x2-x1, где 0<=x1,x2<=1). Я хочу иметь еще один, в котором указано, что наибольшее число из трех является, по меньшей мере, вдвое меньшим. Таким образом, есть некоторые перестановки трех с точки зрения их порядка:

x1<=3 x1-x2<=x2-x1 && 2 x1<=x2-x1
3 x1-x2<=x1<=x2-x1 && 2 (3 x1-x2)<=x2-x1

.... с остальными 4 схожими условиями.

Как мне автоматически сформировать эти условия (вместе с 0<=x1,x2<=1), а затем передать их в Уменьшить по одному и найти x2 в терминах x1?

Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 13 января 2011
eqs = {x1, 3 x1 - x2, x2 - x1};
Reduce[Max[eqs] >= 2 Min[eqs], {x1, x2}, Reals]

Если вы хотите сделать сравнение со вторым по величине или третьим по величине / самым маленьким, тогда можете использовать RankedMax

Что касается решения для x2 - существует множество различных значений x2, соответствующих каждому x1, поэтому вы не можете решить это в обычном смысле, вы можете увидеть это из RegionPlot

RegionPlot[Max[eqs] >= 2 Min[eqs], {x1, 0, 1}, {x2, 0, 1}, PlotPoints -> 100]
0 голосов
/ 13 января 2011

Используйте Max и Min и укажите x2 перед x1 в списке переменных следующим образом

In[1]:= Reduce[
         Max[x1, 3 x1 - x2, x2 - x1] >= 2 Min[x1, 3 x1 - x2, x2 - x1] && 
         0 <= x1 && x2 <= 1, 
         {x2, x1}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...