如何在mathematica中生成一组不等式

时间:2011-01-12 21:16:58

标签: wolfram-mathematica

我想在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一起),然后将它们逐个导入Reduce,并根据x1求解x2?

非常感谢!

2 个答案:

答案 0 :(得分:3)

eqs = {x1, 3 x1 - x2, x2 - x1};
Reduce[Max[eqs] >= 2 Min[eqs], {x1, x2}, Reals]

如果你想与第二大或第三大/最小的比较,那么可以使用RankedMax

至于为x2求解它 - x2对应于每个x1有许多不同的值,所以你不能在传统意义上解决它,你可以从{{{ 1}}

RegionPlot

答案 1 :(得分:0)

使用MaxMin并在变量列表中指定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}]