Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I realize I the earlier question was ill-posed. To clarify:

I am trying to find the values of $A$ and $B$ that will maximize a function f on the domain {x,0,100},{y,0,100}. I have had trouble using Maximize or NMaximize, etc. So I am trying to find x and y in terms of A and B, which will maximize a function f. The function f is dependent on two parameters: $A$ and $B$, with constraints such that $ 0< A < 100 $ and $A < B \le 100$. The explicit form of the function is:

f = (B^3 - B^2 (x + y) + x (A^2 - y^2 + A (-x + y)) + B (x^2 + x y + y^2 - A (x + y)))/(A - B)^2

or, for readability,

$$ f=\frac{B^3 - B^2 (x + y) + x (A^2 - y^2 + A (-x + y)) + B (x^2 + x y + y^2 - A (x + y))} {(A - B)^2} $$

share|improve this question
Your original question is very valid. I suggest keeping it, so you do not discourage people answering your question and they do not need to re-edit their answers. You can ask about your optimization problem as a separate question. Also can you post your functions using Mathematica syntax too so it is easy to copy? – Vitaliy Kaurov Jun 14 '12 at 22:15

Use Manipulate function to interactively change the parameters values. The If statement is to auto-remove breaking of controls due to getting out of proper range.

 If[B < A, B = A];
 Plot3D[A^3 - A^2 (x + y) + x (B^2 - y^2 + B (-x + y)), {x, 0, 
   100}, {y, 0, 100}, PlotStyle -> Opacity[.7], 
  ColorFunction -> "Rainbow"], {{A, 50}, 0, 99.9, 
  Appearance -> "Labeled"}, {{B, 100}, A, 100, 
  Appearance -> "Labeled"}, FrameMargins -> 0]

enter image description here

share|improve this answer
@Vitaly: I see your point , you are right. My second day here :) – emmett Jun 14 '12 at 23:29

Besides interactive manipulation, you might also just want to see a set of surfaces with different parameter settings in a single picture:

Plot3D[Evaluate@Table[Tooltip[A^3-A^2 (x+y)+x(B^2-y^2+B(-x+y)),
                              Style["A = " <> ToString[A]
                                    <> ", B = "<>ToString[B],
                      {A, 1, 100, 33}, {B, A, 100, 33}],
       {x, 0, 100}, {y, 0, 100},
       PlotStyle -> {Green, Darker[Yellow], Red, Blue, Cyan, Magenta,
                     Brown, Orange, Purple, Pink}]

output of above command

share|improve this answer
To improve visual representation of this vertical AspectRatio should be greater and Opacity could be helpful. – Vitaliy Kaurov Jun 14 '12 at 15:52
@celtschk Thank you, this is helpful and – emmett Jun 14 '12 at 21:56

Parameters should have numerical values. Otherwise it is done by a standard command Plot3D:

A = 10; B = 20;
Plot3D[(A^3 - A^2 (x + y) + x (B^2 - y^2 + B (-x + y))), {x, -100, 
  100}, {y, -100, 100}, PlotRange -> All]

If the question is about how to change parameters interactively and see that happens it can be done with Manipulate.

share|improve this answer
With[] is a particularly convenient function for this. – J. M. Jun 14 '12 at 9:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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