MathGroup Archive 1997

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

Search the Archive

Re: How can I handle Operator Algebra ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg6550] Re: How can I handle Operator Algebra ?
  • From: Pasquale Nardone <pnardon at ulb.ac.be>
  • Date: Tue, 1 Apr 1997 19:00:50 -0500 (EST)
  • Organization: Université Libre de Bruxelles
  • Sender: owner-wri-mathgroup at wolfram.com

Koichiro Yamaguchi wrote:
> 
> Hello,
> 
> I am a beginner user of Mathematica version 2, so following question is
> based on what I have done on Mathematica version 2.
> 
> I have a question about operator algebra. I think this question might be a
> FAQ. But I could find no "answers for FAQ" of this newsgroup on my
> newsserver, and also no explanation in the S.Wolfram's "Mathematica book
> for version 3". So excuse me for asking this.
> 
> According to "Mathematica book" we can treat pure functions such as those
> include some differential operators using "# and &" or "Function". Since it
> seemed both of them gave same answers, only the results using "# and &" are
> written below.
> 
> I tried to make an angular momentum operator as follows.
> 
> dv={D[#,x]&,D[#,y]&,D[#,z]&};
> r={x,y,z};
> Needs["Calculus`VectorAnalysis`"];
> l=CrossProduct[r,dv]
> 
> And here I've got what I expected.
> 
> {-(z (D[#1, y] & )) + y (D[#1, z] & ),
> 
>  z (D[#1, x] & ) - x (D[#1, z] & ),
> 
>  -(y (D[#1, x] & )) + x (D[#1, y] & )}
> 
> Then I applied this operator to the length r.
> 
> rl=Sqrt[ DotProduct[r,r] ];
> lx=l[[1]]
> -(z (D[#1, y] & )) + y (D[#1, z] & )
> rl // lx
> 
> But Mathematica did not accept multiple "&".
>                                              2    2    2
> (-(z (D[#1, y] & )) + y (D[#1, z] & ))[Sqrt[x  + y  + z ]]
> 
> In case of single "&", I could get a correct answer.
> 
> lx2= (-z D[#,y] + y D[#,z])&
> -(z D[#1, y]) + y D[#1, z] &
> rl // lx2
> 0
> 
> However, if I use single "&" to define differential operator vector like
> this,
> 
> dv={D[#,x],D[#,y],D[#,z]}&;
> 
> Mathematica rejects to recognize this as a vector. How should I I handle
> Mathematica to do some elementary operator algebra like this ?
> 
> Thanks in advance for any comments and any answers.
> 
> ---
> Koichiro Yamaguchi
> E-mail: tigercat at da.mbn.or.jp

Just define the angular operator as:
L[f_]:=
{y*D[f,z]-z*D[f,y],z*D[f,x]-x*D[f,z],x*D[f,y]-y*D[f,x]}

and if you would like to express it in
spherical coordinates, define the substitution:
ToRTP={
x->r*Sin[teta]*Cos[phi],
y->r*Sin[teta]*Sin[phi],
z->r*Cos[teta]};
Now you can compute the L on r:
L[Sqrt[x^2+y^2+z^2]]
{0, 0, 0}
the L on theta and phi:
PowerExpand[Simplify[L[ArcCos[z/Sqrt[x^2+y^2+z^2]]]/.ToRTP]]
{-Sin[phi], Cos[phi], 0}
PowerExpand[Simplify[L[ArcTan[y/x]]/.ToRTP]]
{-(Cos[phi] Cot[teta]), -(Cot[teta] Sin[phi]), 1}
--------------------------------------------
 Pasquale Nardone                          *
                                           *
 Université Libre de Bruxelles             *
 CP 231, Sciences-Physique                 *
 Bld du Triomphe                           *
 1050 Bruxelles, Belgium                   *
 tel: 650,55,15 fax: 650,57,67 (+32,2)     *
http://homepages.ulb.ac.be/~pnardon/       *
        ,,,
       (o o)
----ooO-(_)-Ooo----


  • Prev by Date: Q: NDSolve and defining state manifolds
  • Next by Date: help!
  • Previous by thread: Q: NDSolve and defining state manifolds
  • Next by thread: How can I handle Operator Algebra ?