当前位置: 首页 > 程序语言 >如何用Mathematica处理不可对易乘法

如何用Mathematica处理不可对易乘法

作者 华丽的飘过
来源: 小木虫 350 7 举报帖子
+关注

小虫要计算一些不可对易关系的乘法,A1*A2=-A2*A1,也就是A1和A2不符合乘法交换律,但是比如AAA=(C1*A1)*(C2*A2)=C1*C2*(A1*A2)=C2*C1*(A1*A2)也就是说C1和C2是符合乘法交换律的,在Mathematica中能否有什么命令可以使这个计算实现,并提出A1*A2项的系数C1*C2呢?

其实我是想做一个外乘的事情,但是我发现Mathematica中的Wedge命令根本没法用来计算,不知哪位大侠能帮我想想该怎么实现,比如AAA=(C1*A1)*(C2*A2)=C1*C2*(A1*A2)中提出A1*A2项的系数C1*C2,最好还能自动合并A1*A2和A2*A1项(因为有A1*A2=-A2*A1关系)的程序或者命令? 返回小木虫查看更多

今日热帖
  • 精华评论
  • virtualzx

    算符**代表非对易乘法

  • 华丽的飘过

    引用回帖:
    2楼: Originally posted by virtualzx at 2012-11-09 03:05:18
    算符**代表非对易乘法

    这是不行的,电脑辨别不出C的可对易,而A的不可对易

  • walk1997

    如果只是上面这样简单或者特殊的情况,应该可以直接自己定义规则,一个例子
    ---------------------------------------
    rule1 = {(x_*b) ** (y_*d) -> x*y*(b ** d), (x_*d) ** (y_*b) -> x*y*(d ** b)};
    rule2 = {b ** d -> -d ** b};
    t1 = (a*b) ** (c*d) + (x*d) ** (y*b)
    t1 = t1 /. rule1 /. rule2
    Coefficient[t1, d ** b]
    ----------------------------------------
    如果很复杂的话,可以用nc软件包 https://www.math.ucsd.edu/~ncalg/
    << NC`;
    << NCAlgebra`;
    t1 = (AA1 ** b) ** (AA2 ** d) + (AA3 ** d) ** (AA4 ** b)
    t1 = Substitute[t1, b ** d -> -d ** b]
    NCCollect[t1, d ** b],

  • 华丽的飘过

    引用回帖:
    4楼: Originally posted by walk1997 at 2012-11-09 23:56:42
    如果只是上面这样简单或者特殊的情况,应该可以直接自己定义规则,一个例子
    ---------------------------------------
    rule1 = {(x_*b) ** (y_*d) -&gt; x*y*(b ** d), (x_*d) ** (y_*b) -&gt; x*y*(d ** b)};
    ...

    貌似您的方法很强大,我先试一试,先谢谢咯,不过您不点击应助,我无法给您评分啊

  • 华丽的飘过

    请版主帮我把帖子里许诺的金币发给4楼walk1997

    多谢了

  • walk1997

    引用回帖:
    6楼: Originally posted by 华丽的飘过 at 2013-02-25 03:37:58
    请版主帮我把帖子里许诺的金币发给4楼walk1997

    多谢了

    不用金币
    回帖只是闲暇中的乐趣
    不为其他

  • 华丽的飘过

    引用回帖:
    7楼: Originally posted by walk1997 at 2013-02-25 23:54:31
    不用金币
    回帖只是闲暇中的乐趣
    不为其他...

    我又通知了版主处理,相信很快就可以处理了。我得讲信用,呵呵,谢谢您了

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓