# Plot3D in Mathematica: how to plot in presence of parameters

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


$$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}$$

-
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.

Manipulate[
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]


-
@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],
Background->White]],
{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}]


-
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.

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