Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I'm finding a curious behavior for Mathematica 8. The code


does not want to Simplify or FullSimplify. I'd prefer not to make a rule for this, because trivial extensions such as

(x^3 y^3 z)^(1/3)

should also be able to simplify (to $xy(z)^{(1/3)}$), which is not so straightforward for a rule.

I suspect this may be related to this unanswered question.

share|improve this question

closed as off-topic by Mark McClure, acl, Öskå, Michael E2, RunnyKine Jul 22 '14 at 1:53

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question arises due to a simple mistake such as a trivial syntax error, incorrect capitalization, spelling mistake, or other typographical error and is unlikely to help any future visitors, or else it is easily found in the documentation." – Mark McClure, acl, Öskå, Michael E2, RunnyKine
If this question can be reworded to fit the rules in the help center, please edit the question.

You can see why it doesn't from this: Plot3D[ Arg[((x + I*y)^3)^(1/3)], {x, -2, 2}, {y, -2, 2} ] –  acl Jul 21 '14 at 22:27
(or Im instead of Arg, etc). Basically you need to find out what a branch cut is. –  acl Jul 21 '14 at 22:28
That's quite a pretty plot. I'm aware of branch cuts, but thanks. –  Jolyon Jul 21 '14 at 22:37
I see. Well then, the existence of branch cuts is why $(x^3)^{1/3}\neq x$, which is why Mathematica does not simplify your expression. –  acl Jul 21 '14 at 22:38

2 Answers 2

up vote 2 down vote accepted

Well, it's not generally true. For example:

(* Out:
  0.5 + 0.866025 I

I suppose you could do

FullSimplify[(x^3 y^3 z)^(1/3),
  Assumptions -> {x > 0, y > 0, z > 0}]
(* Out: x y z^(1/3) *)
share|improve this answer
It appears that specifying your quantities are real in the assumptions is sufficient to pick out the real branch. Thanks. –  Jolyon Jul 21 '14 at 22:37

Others are certainly correct in pointing out that (x^3)^(1/3) is only equal to x under certain circumstances. But if you know that, and just want to simplify while assuming that x is positive, then just use PowerExpand

(*  x  *)

PowerExpand[(x^3 y^3 z)^(1/3)]

(*  x y z^(1/3)   *)
share|improve this answer
Ah, neat! That's a useful function to know! –  Jolyon Jul 21 '14 at 22:39

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