Why does FullSimplify not work with assumptions in Mathematica?

  • Level: Undergrad 
  • Thread starter daudaudaudau
  • Start date
  • Tags Tags
    Mathematica
6 replies · 4K views · last reply
daudaudaudau
Messages
297
Reaction score
0
Anyone have an explanation for this? It can simplify the first one but not the second...
 
Attachments
  • Mathematica session showing two FullSimplify calls with the assumption _ element Reals. First input Abs[Sin[θ]*Cos[φ]]^2 + Abs[Sin[θ]*Sin[φ]]^2 gives output Sin[θ]^2. Second input adds Cos[θ]^2 and gives Abs[Cos[φ]Sin[θ]]^2 + Abs[Sin[θ]Sin[φ]]^2 + Cos[θ]^2 unchanged.
    screen.jpg
    17.5 KB · Views: 399
And what about this:

FullSimplify[Abs[(x*y)]^2, x > 0 && y > 0]

the result is still Abs[x*y]^2

But there is no trouble doing this one

FullSimplify[Abs[(x/y)]^2, x > 0 && y > 0]

is simply returns x^2/y^2...
 
I had similar problems and asked tech support about it - they recommend as a workaround e.g.

PiecewiseExpand[Abs[(x*y)]^2, Reals]
 
daudaudaudau said:
And what about this:

FullSimplify[Abs[(x*y)]^2, x > 0 && y > 0]

the result is still Abs[x*y]^2

But there is no trouble doing this one

FullSimplify[Abs[(x/y)]^2, x > 0 && y > 0]

is simply returns x^2/y^2...

x > 0 && y > 0
Well, if this was an equals sign rather than >, it would need to be a double equqals "==". Not sure what the expression would be for >
 
flatmaster, I don't understand your remarks about "==" ... it clearly says > doesn't it?

Also, AFAIK Mathematica automatically assumes they are real when you use a comparison operator, i.e. "x > 0" implies "Element[x, Reals]"
 
bpet said:
I had similar problems and asked tech support about it - they recommend as a workaround e.g.

PiecewiseExpand[Abs[(x*y)]^2, Reals]

I see. When you want to assume that both x and y are real, you simply write ", Reals" ? Because this doesn't work for FullSimplify, e.g.

FullSimplify[Abs[x/y]^2, Reals]

is not the same as

FullSimplify[Abs[x/y]^2, _ \[Element] Reals]