MathGroup Archive 1999

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

Search the Archive

Re: Commutators and Operator Powers in Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg16687] Re: Commutators and Operator Powers in Mathematica
  • From: "Peltio" <pelt.ioNOS at PAMiol.it>
  • Date: Sat, 20 Mar 1999 02:09:00 -0500
  • Organization: Peltio Inc.
  • References: <7ct2c2$83g@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Alan,
This is a minimum effort answer. Just a simple (alas, neither elegant
 nor functional) way to do what you want.

>As an example, I have two operators L0 and L1 that act on arbitrary
>(well say infinitely differentiable) functions f[x]

L0[f_,t_Symbol:x]:=t f
L1[f_,t_Symbol:x]:= a t^(3/2) D[f,t] + b t^2 D[f,{t,2}]

L0[f[w],w]
        w*f[w]
L1[f[x]]
        b*f''[x]*x^2 + a*f'[x]*x^(3/2)

>Now what I want to do is be able to evaluate repeated commutators
>and powers of these operators.

Commutator[L0_,L1_]:=L0[L1[#]]-L1[L0[#]]&

Commutator[L0,L2]
        L0(L2(#1))-L2(L0(#1))&
Commutator[L0,L2][f[x]]
        x L2(f(x))-L2(x f(x))

>For example, the first commutator should evaluate to:
>[L0,L1]f[x] = x L1 f[x] - L1 (x f[x]) =
> -a x^(3/2) f[x] - 2 b x^2 D[f[x],x]

Commutator[L0,L1][f[x]]//Simplify
    -2*b*f'[x]*x^2 - a*f[x]*x^(3/2)

>Repeated commutators are expressions like [L1,[L0,L1]] or [L0,[L0,L1]],
etc.

Commutator[L1,Commutator[L0,L1]][f[x]]//Simplify
        -4*b*((Sqrt[x]*a + b)*f'[x] + b*x*f''[x])*x^2 -
          3/4*a*(2*Sqrt[x]*a + b)*f[x]*x^(3/2)
Commutator[L0,Commutator[L0,L1]][f[x]]//Simplify
        2*b*x^2*f[x]

>I would also like to evaluate powers such as L1^n,
> meaning the operator acts on f[x] n times.

This is thougher with the simple definitions I have made.Instead of
overloading Power, we could use Composition to define a new power
function for operators

?Composition
        "Composition[f1, f2, f3, ... ] represents a composition of the
         functions f1, f2, f3, ... ."

Composition[L0,L0,L0][f[x]]
        x^3*f[x]

OpPower[A_,n_Integer]:=Composition[Sequence@@Table[A,{n}]]

OpPower[L0,3][f[x]]
        x^3*f[x]

Hope this may be of some help.
Peltio
peltioNOS at PAMusa.net
remove NOS PAM to e-mail me




  • Prev by Date: Re: Improving PolynomialQ
  • Next by Date: Installation problem with RedHat 5.2
  • Previous by thread: Re: Commutators and Operator Powers in Mathematica
  • Next by thread: Re: Commutators and Operator Powers in Mathematica