MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Using FullSimplify to check hand algebra

  • To: mathgroup at
  • Subject: [mg69313] Re: [mg69277] Using FullSimplify to check hand algebra
  • From: Andrzej Kozlowski <akoz at>
  • Date: Wed, 6 Sep 2006 04:28:46 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

On 5 Sep 2006, at 10:30, Goyder, Hugh wrote:

> The output from some computer algebra gives me
> ee1 = (-(1/Sqrt[2]))*Sqrt[(1/(KK*r^2))*(w*((-(2 + KK + 2*nu))*w +
>        Sqrt[4*KK^2 + (KK - 2*(1 + nu))^2*w^2]))]
> I also have the following assumptions and can use FullSimplify.
> ass = {w > 0, KK > 0, nu > 0, r > 0}
> s1 = FullSimplify[ee1, ass]
> FullSimplify does not give me a nice form. I don't mind this because I
> realise that my nice form may not be the same as that given by
> Mathematica. Using hand algebra I converted the expression to a nice
> form for my application
> s2 = (-(w/r))*Sqrt[-(1/2 + (1 + nu)/KK) + Sqrt[1/w^2 + (1/2 - (1 +
> nu)/KK)^2]]
> (Which when evaluated annoyingly puts the r on the denominator of the
> whole expression not just under the w), I now wish to check that I  
> have
> not made any slips so I try the following hoping to get the answer  
> True.
> However, I don't and on checking I don't find any slips. So why do  
> I not
> get the answer True?
> FullSimplify[s1 == s2, ass]
> I note that I do get the answer True if I use the following but I  
> think
> this is less strict than the previous test. (Under what  
> circumstances is
> this the same as the previous test?)
> FullSimplify[s1/s2 == 1, ass]
> Similarly using PowerExpand does not help. (I don't wish to use
> PowerExpand because complex solutions are a possibility.)
> FullSimplify[PowerExpand[s1] == PowerExpand[s2], ass]
> So the general question is when can I use FullSimplify to check my  
> hand
> algebra?
> Hugh Goyder
> Cranfield University

You can never be completely sure that any computer program will be  
able to check your "hand algebra". All such programs use a certain  
set of allowable transformations that reduce "complexity of  
expressions", and certain general algorithms, which try to reduce  
expressions to certain standard forms. It can always happen that  
there will be no sequence of complexity reducing transformations (for  
a given ComplexityFunction) leading from one expression to another,  
and even the more powerful method of reducing to "standard forms" may  
also fail, for example, because there are not enough transformations  
that FullSimplify uses. Nevertheless, failures to prove that two  
expressions are equal like the one you have found are relatively rare.

The identities x/y==1 and x==y are always equivalent, as long as x  
and y are non-zero. In fact the statement x/y==1 is equivalent to  
x==y and x!=0 . So when FullSimplify[x/y,ass] returns 1 you can be  
sure that x==y. The other way round is not true (at least in  
Mathematica!). Here is an example:







Andrzej Kozlowski

  • Prev by Date: Re: Why doesn't Mathematica solve this simple differential equation?
  • Next by Date: RE: Re: Dot Product in Cylindrical Coordinates
  • Previous by thread: Using FullSimplify to check hand algebra
  • Next by thread: 2nd attempt at post with corrected code