Re: Re: Re: sqrt(x^2) = x
- To: mathgroup at smc.vnet.net
- Subject: [mg61226] Re: Re: [mg61189] Re: sqrt(x^2) = x
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 13 Oct 2005 01:39:34 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
I over simplified the starting point. This is a better start Clear[mySqrt]; mySqrt[a_.*x_^n_?EvenQ]:= mySqrt[a]*x^(n/2); mySqrt[a_.*x_^n_?OddQ]:= mySqrt[a*x]*x^((n-1)/2); mySqrt[a_*b_]:= mySqrt[a]*mySqrt[b]; mySqrt[a_?AtomQ]:= Sqrt[a]; convertSqrt= Power[x_,Rational[1,2]]:>mySqrt[x]; {Sqrt[x^2],Sqrt[a*x^2],Sqrt[a*x^5],Sqrt[a*Pi* x^6],Sqrt[Pi*x^5*y^6]}/.convertSqrt {x, Sqrt[a]*x, Sqrt[a]*x^(5/2), Sqrt[a]*Sqrt[Pi]*x^3, Sqrt[Pi]*x^(5/2)*y^3} Bob Hanlon > > From: Bob Hanlon <hanlonr at cox.net> To: mathgroup at smc.vnet.net > Date: 2005/10/12 Wed AM 09:58:43 EDT > To: "Francisco Javier" <pacoga at ctv.es>, <mathgroup at smc.vnet.net> > Subject: [mg61226] Re: [mg61189] Re: sqrt(x^2) = x > > Changing the definition of a built-in function is dangerous since it may have > unintended side effects. I recommend that you use something like > > Clear[mySqrt]; > mySqrt[a_.*x_^2]:=mySqrt[a]*x; > mySqrt[a_?AtomQ]:=Sqrt[a]; > > convertSqrt=Power[x_,Rational[1,2]]:>mySqrt[x]; > > {Sqrt[x^2],Sqrt[a*x^2],Sqrt[Pi*x^2*y^2]}/.convertSqrt > > {x, Sqrt[a]*x, Sqrt[Pi]*x*y} > > > Bob Hanlon > > > > > From: "Francisco Javier" <pacoga at ctv.es> To: mathgroup at smc.vnet.net > > Date: 2005/10/12 Wed AM 01:42:23 EDT > > Subject: [mg61226] [mg61189] Re: sqrt(x^2) = x > > > > Francisco Javier a formulé ce martes : > > > Dear all, I am new in this group > > > > > > How can I tell Mathematica that I want to simplify all expressions like > > > Sqrt[x^2] as x, whithout taking into account that x is or not a > > > positive real number? > > > > > > Thank you very much > > > > Dear F.Jaccard and Ruth for your answers, but what I really mean has > > not a such simple solution. > > > > I want to "teach" to Mathematica that in next calculations Sqrt[x^2] is > > equivalent to x, > > > > I have tried > > > > Unprotect[Sqrt]; > > Sqrt[(x_)^2] := x; > > > > This seems works fine then with calculations like > > > > Sqrt[y^2] > > y > > > > but it fails with > > > > Sqrt[x^2 y^4] > > > > or even with > > > > Sqrt[x^2 y^4] > > > > Any ideas? > > > > -- > > ---- > > Francisco Javier García Capitán > > http://garciacapitan.auna.com > > > > > >