1

让我们从有效的东西开始:

restart:
with(Physics):
Setup(noncommutativeprefix = {A, B}):
expand((A+B)^2);

A^2+A*B+B*A+B^2

Maple 认出 A 和 B 不通勤。现在,让我们在泰勒级数中展开它们的总和,然后展开:

restart:
with(Physics):
Setup(noncommutativeprefix = {A, B}):
S := convert(taylor(exp((A+B)*delta), delta = 0, 3), polynom);

                         1        2      2
S := 1 + (A + B) delta + - (A + B)  delta 
                         2                

接着

expand(S);

                         1  2      2            2   1  2      2
 1 + delta A + delta B + - A  delta  + A B delta  + - B  delta 
                         2                          2          

Maple 不再承认 A 和 B 不通勤。显然(?)我不知道如何正确使用枫树。我如何让 maple 认识到 A 和 B 在这种情况下不通勤?这里有这个讨论:http: //www.mapleprimes.com/questions/95808-Noncommutative-Operators,在枫叶帮助和其他地方,我敢肯定..

我应该补充一点,(显然),以下工作,但它变得丑陋。一定会有更好的办法:

restart;
unassign(`&*`); define(`&*`, multilinear, zero = 0, identity = 1, flat);
constants := constants, lambda;
No := 3;
S := convert(taylor(exp((A+B)*delta), delta = 0, No), polynom);
                                1        2      2
       S := 1 + (A + B) delta + - (A + B)  delta 
                                2                
S := subs((A+B)^2 = `&*`(A+B, A+B), (A+B)^3 = `&*`(`&*`(A+B, A+B), A+B), (A+B)^4 =     `&*`(`&*`(`&*`(A+B, A+B), A+B), A+B), S);
       S := 1 + (A + B) delta

            1                                          2
          + - (A &* A + A &* B + B &* A + B &* B) delta 
            2                                           
simplify(S);
                         1      2            1      2         
 1 + delta A + delta B + - delta  (A &* A) + - delta  (A &* B)
                         2                   2                

      1      2            1      2         
    + - delta  (B &* A) + - delta  (B &* B)
      2                   2                
definemore(`&*`, `&*`(A, A) = A^2, `&*`(B, B) = B^2, `&*`(A, B) = AB, `&*`(B, A) = BA);
simplify(S);
                        1  2      2   1  2      2   1         2
1 + delta A + delta B + - A  delta  + - B  delta  + - AB delta 
                        2             2             2          

     1         2
   + - BA delta 
     2          

我现在用的是枫木 17。

编辑:这是上述问题的延续,现在有 edgardo 的反馈:

我正在尝试使用 Gtaylor 执行以下计算:

with(Physics);
Setup(noncommutativeprefix = {A, B});

exp3 := convert(Gtaylor(exp((a-I*b))*delta*B), delta = 0, No), polynom);
exp5 := convert(Gtaylor(exp((a-I*b))*delta*A), delta = 0, No), polynom);
expansion := coeff(simplify(subs(delta = lambda, exp1*exp2*exp1*exp3*exp5*exp3)), lambda, No-1);

并非所有代码都包含在内。exp5 &3 是所有其他 exp 外观的示例。No 设置为 5,并且 b 是分数。此代码有效(尚未通过独立代码确认,但我们假设它确实有效),但需要很长时间。有什么办法可以加快速度吗?

4

1 回答 1

2

简而言之:a) 使用 Physics:-Gtaylor,而不是 taylor b) 在继续之前,将您的 Physics 包更新为最新版本,可在 Maplesoft Maple Physics: Research & Development网页上下载。

详细说明: Physics 是一个相对较新的软件包。taylor 命令来自于 Physics 之前,并且使用*^运算符假定可交换性。为了使 Maple 库更加意识到代数表达式中非交换对象的存在,每年都会发生大量的发展,以便它们的乘积、幂、简化、扩展和组合规则等按预期发生。这个过程中的一个相关命令是物理:-检查它会告诉你,除其他外,非交换对象的乘积是否非良构;即使用交换*运算符表示。尝试使用 taylor(不是 Physics:-Gtaylor)的输出,您会看到。

关于更新物理:每周都会将错误修复和新的物理和物理相关开发集成到软件包的研发版本中。

Edgardo S. Cheb-Terrab

物理,微分方程和数学函数,Maplesoft

于 2014-02-11T19:58:30.470 回答