Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mathematica: How to construct a X-P commutator algebra?

146 views
Skip to first unread message

Rigoberto Hernandez

unread,
Aug 3, 1993, 4:35:41 PM8/3/93
to
If anyone knows of a non-commercial package which could help me create
a non-commutative algebra of operators and have it act on a countable
basis, I would appreciate it if they could let me know about it. I'm
new to programming in Mathematica, so any helpful advice will also be
appreciated.

Thanks in advance,
Rig
r...@sam.cchem.berkeley.edu


And now for more details:

The Specific Problem:
I need to create a package that can do the following within
Mathematica:

a) Construct commutators of polynomials in X and P, where X and P
are position and momentum vectors in Quantum Mechanics, and output
the resulting polynomial.

b) Given a polynomial in X and P, reduce it to one which has only
terms of the form X^i P^j where i and j are integers.

c) Evaluate the matrix elements of the commutators obtained in (a) and
reduced by (b), in the Harmonic Oscillator basis.

d) Once (a) and (b) are done, I think that it would be a simple extension
to define the algebra for creation and destruction operators. This
would make (c) easier to implement.

Examples:

a) Assume that X and P are one dimensional:

Poly(X,P) = X^2P^2 + X P X

b) converting Poly to canonical form, we get:

Poly(X,P) = X^2P^2 + X^2P - I X

where hbar=1, and I is square root of -1

c) The n,n+3 matrix element of Poly(X,P)

<n| Poly(X,P) |n+3> = {(n+1)(n+2)(n+3)/2}^(-1/2) /2

Mark Stankus

unread,
Aug 4, 1993, 2:44:41 AM8/4/93
to


The following package should help.

See after the mathsource@wri for more comments.

Mark Stankus

From ms-d...@wri.com Fri Apr 16 14:31:15 1993
Date: Fri, 16 Apr 93 16:31:07 CDT
From: MathSource <ms-d...@wri.com>
To: msta...@oba.UCSD.EDU (Mark Stankus)
Subject: Session Log
Content-Length: 1995
X-Lines: 51
Status: RO

This is an automatic response from the MathSource server at
maths...@wri.com. Please report all problems and suggestions
to ms-a...@wri.com.

A complete listing of all files in MathSource can be obtained by
issuing the following commands

MaxFull 1000
Find *

Response to request of Fri, 16 Apr 93 14:29:53 PDT

>> find 0204-400
1 items matched your request.

0204-400: Noncommutative Algebra Package and SYStems (September 1992)
Authors: J. William Helton and Robert L. Miller
Although processing of commutative expressions is built into
Mathematica, relatively no support is given to noncommutative
expression manipulation. These packages have been developed to
fill this void. Commands for non-commuting algebra which are
analogous to Mathematica commands are implemented, as well as
others. The development of these packages has been directed by
needs which arose from research in Control Theory Systems Theory
and in Operator Theory. Also attached to the NCAlgebra package
are files SYS* for doing calculations with engineering systems
which are common in Hinfinity control and in differential games.

0011: NCDOC.txt NCAlgebra documentation (September 1992; 92
kilobytes)

0022: NCDOCApp.txt Appendices for NCDOC.txt (September 1992; 28
kilobytes)

0033: SYSDOC.txt Documentation for SYStems package (September
1992; 57 kilobytes)

0044: NCAlg.tar Unix tar file of NCAlgebra package (September
1992; 639 kilobytes)

0055: NCAlg.zip DOS/Windows zip file of NCAlgebra package
(September 1992; 184 kilobytes)

0066: NCAlg.sit.hqx Macintosh binhexed stuffit archive file of
NCAlgebra package (September 1992; 350 kilobytes)


All requests were completed successfully.
Thank you for using MathSource.


> a) Construct commutators of polynomials in X and P, where X and P
> are position and momentum vectors in Quantum Mechanics, and output
> the resulting polynomial.

Comutator[x_,p_] := ExpandNonCommutativeMultiply[x**p - p**x];


>
> b) Given a polynomial in X and P, reduce it to one which has only
> terms of the form X^i P^j where i and j are integers.

I am not sure what you are asking. The following moves the x's and
p's together.


ans = Transform[poly,x**p->p**x];
ans = NCMono[ans];

Rigoberto Hernandez

unread,
Aug 4, 1993, 11:37:02 AM8/4/93
to
>In article <23mi6t$e...@agate.berkeley.edu> msta...@oba.ucsd.edu
>(Mark Stankus) writes:

Thanks for the help.


What I meant, is for example: (That is, create a new polynomial which is
equal to the original one after applying commutation.)

given: x^2 ** p^2 ** x

you get: -2 I x**x**p + x**x**x**p**p

This I can do fairly easily. However, I'd also like it to then translate
it to: -2 I x^2 ** p + x^3 ** p^2

The problem is that if you try to define rules that both force any instance
of p**x to become -I + x**p, and also expand all instances of x^n, say to
x^(n-1)**x, and similarly for p, then you run into infinite loops if you also
want. One could get around this by greating a commutator rule p^m x^n. But
I only know how to do this using recursive rules, and this would get me back
to the original problem.
it to contract back.

I hope this clears up my problem.

--Rig
r...@sam.cchem.berkeley.edu

0 new messages