maximization with decimal numbers

I have a very simple question (I'm a beginner on mathematica, and didn't find the answer here). When I try to maximize a simple function like Maximize[x - 0.5*x^(4/3), x] I obtain an error message "the function value... is not a real number". When I replace "0.5" by "1/2" I get the correct anwer. I also get an answer with any integer, but never with a decimal number. Eg "2.5" doesnt work, but "5/2" works. What is the problem please ?

If you restrict x to be positive it works as expected:

NMaximize[{x - 0.5*x^(4/3), x > 0}, x]
(* {0.84375, {x -> 3.375}} *)

• Additionally, one might want to apply Rationalize[] to the exponent. Mar 19 '18 at 14:50
• Maximize[{x - 0.5*x^(4/3), FunctionDomain[x - 0.5*x^(4/3), x]}, x] Mar 19 '18 at 15:15

you can also do this:

Maximize[x - c*x^(4/3), x] /. c -> .5

{0.84375, {x -> 3.375}}

as a bit of explanation, when you give Maximize everything exact it uses analytic methods to find the value. As soon as you give it a float (inexact) value it switches to numerical methods which produce complex results for negative x.