# Determining the domain of definition of x y z for an inequality that contains sin and cos?

I have the following expression:

Vd =
{{
-11.0001 eth^2 + 19.4214 eth ex + 10. ex^2 - 0.3162 ey +
(0.3162 - 0.999919 ey) ey Cos[eth] +
(-1. eth - 0.6982 ex + 3.1623 eth ey + 2.20792 ex ey) Sin[eth]
}}


I would like to find the domain of definition of ex ey eth where Vd < 0, so I tried using the reduce function of mathematica as follows.

Reduce[{Vd < 0, 0 <= eth < 2 Pi}, {ex, ey, eth}, Reals]


But what ends up happening is Mathematica running, longer than I can bear, with no result.

When I use the theorem of small angles and replace Cos[eth] with 1 and Sin[eth] with eth, i.e.,

Vd =
{{
-11.0001 eth^2 + 19.4214 eth ex + 10. ex^2 - 0.3162 ey +
(0.3162 - 0.999919 ey) ey +
(-1. eth - 0.6982 ex + 3.1623 eth ey + 2.20792 ex ey) eth
}}


and evaluate

Reduce[{Vd < 0, 0 <= eth < 0.1}, {ex, ey, eth}, Reals]


I get results, so I'm certain that the issue is in the Sin and Cos in the original expression.

How can I make it work?

• Is it deliberate that eth is both inside and outside a trigonometric function? That would definitely be troublesome for Reduce[]. Mar 24, 2018 at 4:03
• Yes that is deliberate. Is there any alternative to the reduce function i could use for this situation? Mar 24, 2018 at 4:06
• Any method will likely attempt to solve a transcendental equation at some point, and your eth variable will be the first source of complication. I don't have much hope for you getting a symbolic solution. Mar 24, 2018 at 4:08

Have a look, how compicated the region Vd<0is.

Vd[ex_, ey_, eth_] =
Rationalize[-11.0001 eth^2 + 19.4214 eth ex + 10. ex^2 -
0.3162 ey + (0.3162 - 0.999919 ey) ey Cos[
eth] + (-1. eth - 0.6982 ex + 3.1623 eth ey +
2.20792 ex ey) Sin[eth], 0];

RegionPlot3D[
Vd[ex, ey, eth] < 0, {ex, 0, 10}, {ey, 0, 40}, {eth, 0, 8}]


There will be no change to get simple constraints with Reduce.

Reducing at certain eth gives results, but even very complicated.

red[eth_] :=
Reduce[Vd[ex, ey, eth] < 0, {ex, ey}, Reals] // PowerExpand //
FullSimplify

red[0]

(*   ey < -1000 Sqrt[10/999919] ex || ey > 1000 Sqrt[10/999919] ex   *)

red[1]