 |
|
List Archives > 
Maple User Group List Archive > 
Archive by date > 
This Month By Date > 
This Month By Topic
[MUG] Re: abstract algebra impossible in Maple?
| [MUG] Re: abstract algebra impossible in Maple? |
|
Author: Maple User Group
Posted: Fri, 3 Jan 2003 13:25:14 -0500 (
|
>> From: Maple User Group "maple_gr"
-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-
Date: Fri, 20 Dec 2002 13:17:55 -0800 (PST)
From: Robert Israel "israel"
To: "maple-list"
Subject: abstract algebra impossible in Maple?
On Fri, 20 Dec 2002, Charles James Leonardo Quarra Cappiello wrote:
> The dot product on Maple ( '.' operator ) has no effect upon undefined
> objects, even if the effect of such operation may depend only on the
> conmutative properties.
> a desired capability would be the following:
>
> >(A + t*B).(A + t*B);
>
> (A + tB)(A + tB)
>
> >expand(%);
>
> 2 2 2
> A + 2 A t B + t B
Huh? This is only valid if A commutes with t*B and t commutes with
B. You should get A.A + A.(t*B) + (t*B).A + (t*B).(t*B).
It is true that expand does not do anything with ".".
Here is at least a partial remedy:
`expand/.` := proc ()
local i, n, A;
n:= nargs;
A := op(map(expand,[args]));
for i to n do
if type(A[i],`+`) then
return map(t -> `expand/.`(A[1 .. i-1],t,A[i+1 .. n]),A[i])
end if
end do;
`.`(A)
end proc;
> >collect(%,t) assuming conmute(t,[A,B]); (t conmutes with A and B)
It would be "commute".
Robert Israel "israel"
Department of Mathematics http://www.math.ubc.ca/~israel
University of British Columbia
Vancouver, BC, Canada V6T 1Z2
-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-
From: "Dr Francis J. Wright" "F.J.Wright"
To: "charsquarra"
Subject: abstract algebra impossible in Maple?
Date: Thu, 2 Jan 2003 18:16:37 -0000
> The dot product on Maple ( '.' operator ) has no effect upon undefined
> objects, even if the effect of such operation may depend only on the
> conmutative properties.
Dot is specifically defined to be non-commutative unless one of its operands
is explicitly numerical. However, one way to make . commutative in Maple 8
is as follows (which should work in all versions since Maple 6):
> use `.`=`*` in
> (A + t*B).(A + t*B)
> end use;
2
(A + t B)
> Other thing that 'should' be easily computable but seem to not be
> implemented yet is bra-ket formalism
>
> ie:
>
> > <psi|:=a*<e1| + b*<e2| + c*<e3|: //(a basis)
>
> > expand( <psi|rho> );
...
> But again, this doesnt seem to be possible, and im not aware what language
> resources are available to Maple to implement it. Any hints about this?
Since Maple 6, the read syntax <...|...> is used to represent a row vector,
so it could be used for bra-ket notation only if there were some mechanism
for redefining read syntax and I'm not aware of any such mechanism.
Customization of the read and print facilities is an area in which Maple is
weak compared with other CASs (such as REDUCE). If you are prepared to use
a different read syntax, such as bra and ket as functions, then it should
not be too hard to implement the formalism. You could overload . in a
module to implement the various non-commutative products involved.
Francis
|
[View Complete Thread]
Previous by date: [MUG] Re: dsolve does not find second solution, Edgardo S Cheb-Terrab
Next by date: [MUG] File Version 4 with Maple version 5.1?, Jean-Pierre SEIMAN
Previous thread: [MUG] abstract algebra impossible in Maple?, Charles James Leonardo Quarra Cappiello
Next thread: [MUG] File Version 4 with Maple version 5.1?, Jean-Pierre SEIMAN
|
|
|