- I am new to Mathematica and would like to find the set $$\{ (x,y) \in \mathbb{R}^2: (3x+y\exp(xy))(x-a) + (6y + x \exp(xy))(y-b) < 0 \}$$ for some constants $a$ and $b$. How can I do this? Added: Is the set empty when a=-1.0643 and b=0.150?
- My actual question may be more difficult. For this function $f:\mathbb{R}^2 \to \mathbb{R}$, defined as $$ f(x,y) := (3x+y\exp(xy))(x-a) + (6y + x \exp(xy))(y-b) $$ I would like to know its range $f(\mathbb{R}^2)$, or better yet $f(\mathbb{R}^2 - \{(a,b)\})$, or as close as possible. Can it be done in Mathematica as well?
- $\begingroup$ Is the set Finite? If so use the function FindInstance or use Solve or NSolve: reference.wolfram.com/mathematica/ref/… If the set is not finite, then please clarify what you mean by "finding the set". $\endgroup$Searke– Searke2012-03-13 21:47:28 +00:00Commented Mar 13, 2012 at 21:47
- $\begingroup$ @Searke: I have no idea if the set is finite, or empty. That is part of my questions too. $\endgroup$Tim– Tim2012-03-13 21:48:19 +00:00Commented Mar 13, 2012 at 21:48
- $\begingroup$ Can you describe what you would like to do as you would do it by hand on a chalkboard or with a different piece of software? $\endgroup$Searke– Searke2012-03-13 21:53:58 +00:00Commented Mar 13, 2012 at 21:53
- $\begingroup$ If you are asking me how I do it by hand, I can tell you I will be stuck. If you are asking me why I want to know the result, my part 2 explains that, I think. $\endgroup$Tim– Tim2012-03-13 21:59:29 +00:00Commented Mar 13, 2012 at 21:59
- $\begingroup$ Please also include the expressions in correct Mathematica syntax. It is appreciated if you include formatted math for readability, but it is important to also have directly copyable code. $\endgroup$Szabolcs– Szabolcs2012-03-14 05:59:19 +00:00Commented Mar 14, 2012 at 5:59
2 Answers
[Please please please...post actual cut-and-pastable code.]
Here is a method that is, unfortunately, impractical. But it sometimes gives results if you are patient.
isEmpty[a_?NumericQ, b_?NumericQ] := Module[{finst}, finst = FindInstance[(3*x + y Exp[x*y])*(x \[Minus] a) + (6*y + x*Exp[x*y])*(y \[Minus] b) < 0, {x, y}]; If[ListQ[finst], If[Length[finst] == 0, True, False] , $Failed] ] In[306]:= isEmpty[1, 3] Out[306]= False Here is a start on a method that uses contpur plotting. One must settle for a finite range on {x,y} for this; I use -+10 for both.
isEmpty2[a_?NumericQ, b_?NumericQ] := Module[{cplot}, cplot = ContourPlot[(3*x + y Exp[x*y])*(x \[Minus] a) + (6*y + x*Exp[x*y])*(y \[Minus] b) == 0, {x, -10, 10}, {y, -10, 10}, ContourShading -> False, Frame -> None] ] It just gives a picture but i guess those better versed in Mathematica's Graphics might be able to extract at True/False therefrom. It would of course not be a guaranteed resutl, since plotting uses numeric approximation methods.
It gives a nice result for a=-4, b=-1.

--- edit ---
A comment asks about a specific set of inputs for {a,b}. Not one to duck such a test, I'll show a result with FindRoot. Here we find an {x,y} pair for which the expression of interest is negative (equal to -0.2), by setting y first to 0. I did this because the contour plot indicated there was a negative region in that general vicinity.
In[339]:= FindRoot[((3*x + y Exp[x*y])*(x - a) + (6*y + x*Exp[x*y])*(y - b) /. {a -> -1.0643, b -> -.15, y -> 0.}) == -.2, {x, .1}] Out[339]= {x -> -0.0634401} --- end edit ---
- $\begingroup$ Thanks! Is the set empty when a=-1.0643 and b=0.150? $\endgroup$Tim– Tim2012-03-13 22:09:12 +00:00Commented Mar 13, 2012 at 22:09
- $\begingroup$ @Tim No, not empty. isEmpty2[1.0643, .15] indicates a small ovaline contour. Or something. (I don't suppose "ovaline" is a word.) $\endgroup$Daniel Lichtblau– Daniel Lichtblau2012-03-13 22:12:22 +00:00Commented Mar 13, 2012 at 22:12
- $\begingroup$ @Daniel: a is negative. If it is nonempty, could you give an element of the set? $\endgroup$Tim– Tim2012-03-13 22:13:40 +00:00Commented Mar 13, 2012 at 22:13
- $\begingroup$ @Tim see edited response. $\endgroup$Daniel Lichtblau– Daniel Lichtblau2012-03-13 22:24:50 +00:00Commented Mar 13, 2012 at 22:24
- $\begingroup$ @DanielLichtblau: Thanks! (a is negative and b positive). May I ask what "In[306]:= isEmpty[1, 3]" and "Out[306]= False" mean? Is the first one run the function isEmpty and return the false, true or failed value to the variable In[306]? What does 306 mean in both? $\endgroup$Tim– Tim2012-03-13 22:38:02 +00:00Commented Mar 13, 2012 at 22:38
To get an indication of the region where your function is negative you could use RegionPlot. For example
ineq[x_, y_, a_, b_] := ((3 x + y Exp[x y]) (x - a) + (6 y + x Exp[x y]) (y - b)) Manipulate[ Show[RegionPlot[ineq[x, y, a, b] < 0, {x, -8, 20}, {y, -5, 20}, ImagePadding -> 20, PlotPoints -> 30]], {a, 0, 10}, {b, 0, 10}] 