Прежде всего, получение Mathematica для вывода чего-то точно так, как вам бы хотелось, это что-то вроде черного искусства и требует большого терпения. Тем не менее, если применить Reduce
к исходному выражению, согласно Belisarius, вы получите
In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3
Однако, как вы отметили, это не полное выражение, и Reduce
производит то, что можно описать только как менее полезный ответ при применении к нему. Именно в этот момент требуется терпение и много дополнительной обработки. Я хотел бы начать с
In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify
Хотя это не дает вам чистый ответ, это лучше, чем раньше, и показывает больше структуры вашего решения. (Я бы не использовал FullSimplify
, так как это смешивает Delta
с другими условиями.) На этом этапе нам нужно знать больше о самих терминах, а вывод от In[2]
не так полезен, как мы хотим.
Я бы повторно расширил это с помощью LogicalExpand
, который дает вам двенадцать терминов, которые значительно проще, чем то, что дает только Reduce
. (Вы заметите, что только за последние шесть членов на самом деле связаны с Delta
, так что я бы проверить, что переменные условия фактически совпадают.) Выбор только те последние шесть членов,
In[3]:=%2[[-6;;]] // Simplify
Out[3]:= m != 0
&& ((Omega > 0 && Delta < something) || (Omega > 0 && Delta < something else)
&& (1 < e < 2 || e < 1 || e > 2)
Третий член тавтологично, но Simplify
или FullSimplify
, похоже, не удаляет его. И все равно нас интересует только средний срок. Если Omega > 0
, ваше выражение затем может быть извлечено через %[[2,1,2]]
.
Сведя все это вместе в одном выражении:
In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
Simplify // #[[2,1,2]]&
Out[4]:= Delta < something
После записи, что, я понял, что существует гораздо более простой способ приблизиться к этому. Я бы повторить линию 2, выше, следующим образом:
In[5]:= Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify //
Cases[#, ___ && Delta < _ && ___, Infinity]&
Out[5]:= {Omega > 0 && Delta < something}
Или, если вы действительно знаете, что m != 0
и Omega > 0
вы можете сделать
In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand //
Simplify // #[[2]]&
Это действительный Mathematica вопрос. Пожалуйста, не голосуйте, чтобы закрыть –
Saw your edit после публикации. Пожалуйста, напишите свое фактическое выражение –