       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[]
> -(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 ?
>
>
> ---
> 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 ?