MathGroup Archive 2005

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

Search the Archive

Re: Questions about Abs[_]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg55531] Re: [mg55511] Questions about Abs[_]
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Mon, 28 Mar 2005 02:42:07 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com


On 27 Mar 2005, at 09:42, Steeve Brechmann (schumi) wrote:

>
> Hi,
>
> I define,
>
> G0[r_List, r0_List]:=(Exp[I k  
> Norm[r-r0]/(4*Pi*Norm[r-r0]))*((1+(I/(k*Norm[r-r0]))-(1/(k^2*Norm[r- 
> r0]^2)))*IdentityMatrix[3]-(1/Norm[r-r0]^2)*(1+((3*I)/(k*Norm[r-r0]))- 
> (3/(k^2*Norm[r-r0]^2)))*Outer[Times,r-r0,r-r0])


Your code does not work. It can't be the one you have actually used.

>
> where
>
> r = {x,y,z}
> r0={x0,y0,z0}
> ri={x0,y0,-z0}
> rsn=r0+{0,0,2*n*d}
> rim=ri+{0,0,2*m*d}
>
> When i want to compute
>
> G0r0rim=G0[r0,rim]
>
> I find something odd...
>
> 1) Why Abs[2*z0-2*d*m] doesn't give 2*Abs[z0-m*d] ?

Why should it? Even Simplify won't convert Abs[2*z0-2*d*m] to  
2*Abs[z0-m*d] because, first of all, Simplify does not use a  
transformation function that would do this and secondly even if it did  
the default complexity of the two expressions is the same. So if you  
really insist on this transformation you will have to do something  
like:


f[expr_] := expr /. Abs[(k_)*x] :> k*Abs[x] /; k > 0


Simplify[Abs[2*z0 - 2*d*m], TransformationFunctions ->
    {Automatic, f}, ComplexityFunction ->
    (1/Depth[#1] + LeafCount[#1] & )]


2*Abs[z0 - d*m]

This Depth increasing ComplexityFunction is not very natural and may  
well do undesirable things to the rest of your expression so it may be  
better to look for something better that makes k*Abs[x] less complex  
than Abs[k*x]. However, I can't see anything obvious and natural at the  
same time so
if you do not mind factoring other subexpressions you might prefer to  
use something like this:


Map[Factor, Sin[2*x + 2] + Abs[2*z0 - 2*d*m] + (2*z0 - 2*d*m)^2, {1,  
Infinity}]


4*(d*m - z0)^2 + 2*Abs[d*m - z0] + Sin[2*(x + 1)]



>
> 2) Why Abs[2*z0-2*d*m] doesn't simplify with (2*z0-2*d*m)^2 ?

??

Andrzej Kozlowski



  • Prev by Date: Re: Re: point in convex hull
  • Next by Date: Re: Re: Recursion question
  • Previous by thread: Re: Questions about Abs[_]
  • Next by thread: Re: Questions about Abs[_]