1
$\begingroup$

Is there a simple way to take this output from Reduce:

((-360. + 11.25 c2 + 14.5 c3 < c4 < 
  5.1917 c2 + 4.4417 c3 && 
 0.602319 c2 + c3 < 
  35.7913 && ((c3 > 0 && c2 < 59.4226 && 
     c2 >= 59.4054) || (c2 > 59.4051 && c2 < 59.4054 && 
     1102.5 + 
       6.32922*10^-31 Sqrt[
        3.27567*10^66 - 1.09189*10^65 c2 + 9.09908*10^62 c2^2] < 
      18.75 c2 + c3))) || ((
  1.61503*10^37 + 2.82069*10^33 c2^2 + 
   c2 (-4.2916*10^35 - 3.99645*10^33 c3) + 2.90144*10^35 c3 + 
   1.14149*10^33 c3^2)/(-2.01879*10^33 + 6.72929*10^31 c2 + 
   8.97238*10^31 c3) < c4 < 5.1917 c2 + 4.4417 c3 && 
 0 < c3 < -201.297 + 3.20418 c2 + 
   2.21826*10^-32 Sqrt[
    3.81708*10^67 - 1.47633*10^66 c2 + 1.41047*10^64 c2^2] && 
 59.4038 < c2 <= 59.4051)),

which is in terms of three variables c2 to c4, and plot the region in c2-c3-c4 space that is bounded by these inequalities? I have tried using

region = Reduce[ (* Inequalities here*) , {c2, c3, c4}]
RegionPlot3D[region, {c2, -100, 100}, {c3, -100, 100}, {c4, -100, 100}]

but the resulting plot appears blank no matter what I do. Do I have to construct a function of some sort from this? Other examples seemed a little unclear to me. Thanks for your time.

$\endgroup$
  • $\begingroup$ Try FindInstance[inqualities, {c2, c3, c4}] and then restrict the RegionPlot3D region to a neighborhood of the returned value. $\endgroup$ – Carl Woll Jul 10 '17 at 18:37
  • $\begingroup$ @Carl Wolf : Your suggestion does not work for me. I obtain a sample {{c2 -> 59.4054, c3 -> 0.00632201, c4 -> 308.415}, {c2 -> 59.4047, c3 -> 0.000921602, c4 -> 308.411}, {c2 -> 59.4094, c3 -> 0.00101499, c4 -> 308.391}, {c2 -> 59.4073, c3 -> 0.00854468, c4 -> 308.46}, {c2 -> 59.4054, c3 -> -0.017957, c4 -> 308.285}} of the size 5. Then RegionPlot3D[ineq, {c2, 59, 60}, {c3, -1, 1}, {c4, 308, 308.5}] performs an empty plot. $\endgroup$ – user64494 Jul 10 '17 at 18:47
1
$\begingroup$

As I mentioned in my comment, one idea is to use FindInstance to get a possible {c2, c3, c4} value, and then to use RegionPlot3D in a neighborhood of this point. Depending on how large a neighborhood you use, you may need to increase the default PlotPoints option.

Another idea is to find out what the min and max values of c2, c3, and c4 can be using MaxValue/MinValue. For instance:

Quiet @ (
    c2min = MinValue[{c2,ineq}, {c2,c3,c4}, Reals];
    c2max = MaxValue[{c2,ineq}, {c2,c3,c4}, Reals];
    c3min = MinValue[{c3,ineq}, {c2,c3,c4}, Reals];
    c3max = MaxValue[{c3,ineq}, {c2,c3,c4}, Reals];
    c4min = MinValue[{c4,ineq}, {c2,c3,c4}, Reals];
    c4max = MaxValue[{c4,ineq}, {c2,c3,c4}, Reals];
);

Then, use RegionPlot3D over this neighborhood:

    RegionPlot3D[
        ineq,
        {c2, c2min, c2max},
        {c3, c3min, c3max},
        {c4, c4min, c4max},
        PlotPoints -> 100
    ]

enter image description here

$\endgroup$
  • $\begingroup$ This works - I guess the range of values is rather awkward to handle. I have another set of inequalities with a similar issue, with an even more asymmetric set of ranges. Do you suppose that the number of PlotPoints is the issue? $\endgroup$ – nonreligious Jul 10 '17 at 19:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.