Prima di tutto, ottenere Mathematica per produrre qualcosa esattamente come si vorrebbe è qualcosa di un'arte nera, e richiede molta pazienza. Detto questo, se si applica Reduce
alla vostra espressione originale, come da Belisarius, si otterrebbe
In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3
Tuttavia, come lei ha sottolineato, questo non è l'espressione piena e Reduce
produce ciò che può solo essere descritto come una risposta meno che utile quando applicato ad esso. È a questo punto che è richiesta pazienza e molta elaborazione extra. Mi piacerebbe iniziare con
In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify
Anche se questo non ti dà una risposta pulita, è meglio di prima e rivela più della struttura della soluzione. (Non userei FullSimplify
come quello mescola Delta
con gli altri termini.) A questo punto, abbiamo bisogno di sapere di più sui termini stessi, e l'output da In[2]
non è abbastanza utile come vogliamo.
Vorrei espanderlo nuovamente con LogicalExpand
che offre dodici termini notevolmente più semplici rispetto a ciò che solo Reduce
fornisce. (Noterete che solo le ultime sei termini in realtà coinvolgono Delta
, quindi mi piacerebbe verificare che le condizioni variabili effettivamente corrispondano a quelle.) Selezionando solo quegli ultimi sei termini,
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)
Il terzo termine è tautologico, ma Simplify
o FullSimplify
non sembrano rimuoverlo. E comunque siamo interessati solo a medio termine. Se Omega > 0
l'espressione può essere estratta tramite %[[2,1,2]]
.
Mettendo tutto insieme in una sola espressione:
In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
Simplify // #[[2,1,2]]&
Out[4]:= Delta < something
Dopo aver scritto che fuori, mi sono reso conto che c'è un modo molto più semplice per avvicinarsi a questo. Mi piacerebbe rifare la linea 2, al di sopra, come segue:
In[5]:= Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify //
Cases[#, ___ && Delta < _ && ___, Infinity]&
Out[5]:= {Omega > 0 && Delta < something}
Oppure, a condizione che davvero sa che m != 0
e Omega > 0
si può fare
In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand //
Simplify // #[[2]]&
Questa è una domanda valida Mathematica. Si prega di non votare per chiudere –
sega la modifica dopo la pubblicazione. Per favore pubblica la tua espressione attuale –