I am working with Wolfram Mathematica 8 and have the following problem. I have an optimization problem under certain constraints and want to have an analytical (symbolical solution). I am maximizing function piA. My input is:
piA[a_, WA1_, WA0_] =
a/(1 + a)*(X - (y*WA1 + 1)^(1/y)) - 1/(1 + a) ((y*WA0 + 1)^(1/y));
Maximize[{piA[a, WA1, WA0], WA0 >= -1/y, WA1 >= -1/y}, WA0]
What I get most of the times is:
Maximize[{-((1 + WA0 y)^((1/y))/(1 + a)) + (
a (X - (1 + WA1 y)^(1/y)))/(1 + a), WA0 >= -(1/y), WA1 >= -(1/y)},a]
Basically, the command does nothing, but outputs itself. Only once I have managed to get the proper output (too long to paste here). I have tested it with simpler functions and it works. Unfortunately, I cannot understand what causes the problem. It is not a syntax problem, since it has worked like that several times. Any help would be very much appreciated.
P.S. Just checked again and my input ALWAYS generates the wrong output. The time it generated the solution was when I accidentally set parameters X and y to certain numbers.
The most likely reason is that given the function and constraints, Mathematica doesn’t know how to maximize your function with respect to WA0. Note you also have a free variables
Xandain there, and it might not have enough information about the domain ofXandato be able to properly form a solution to your equation.I’ve had instances where I tried feeding in some equations and constraints and Mathematica simply couldn’t do anything with them because they were too general. This may be the case here as well. Is there a specific problem you’re trying to solve, and is there any way you could give Mathematica more context?
I don’t think this is a bug at all, but it’s unfortunate that sometimes Mathematica will just spit back your input when it doesn’t have any rules for solving what you gave it.
The usual reason these things happens seems to be when the expressions given are too general for Mathematica to handle, or when it it’s faced with a set of expressions that are ill formed.
Just as an example, I tried passing in fractions into a function I wrote that specifically looked for rational expressions, thinking it would work. It turned out that it needed to handle both
Rational[a, b]andTimes[a, Power[b, -1]]. It could be the case that Mathematica is not expecting a constraint to be of the formGreaterEqual[a, b].