Re: Using FullSimplify to check hand algebra

*To*: mathgroup at smc.vnet.net*Subject*: [mg69313] Re: [mg69277] Using FullSimplify to check hand algebra*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Wed, 6 Sep 2006 04:28:46 -0400 (EDT)*References*: <200609050930.FAA22225@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

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: u=(1-Sin[x]^2-Cos[x]^2)*2; v=(1-Sin[x]^2-Cos[x]^2)*3; Simplify[v==u] True Simplify[v/u] 3/2 Andrzej Kozlowski

**References**:**Using FullSimplify to check hand algebra***From:*"Goyder, Hugh " <h.g.d.goyder@cranfield.ac.uk>