如何用Mathematica处理不可对易乘法
小虫要计算一些不可对易关系的乘法,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关系)的程序或者命令?
返回小木虫查看更多
今日热帖
京公网安备 11010802022153号
算符**代表非对易乘法
这是不行的,电脑辨别不出C的可对易,而A的不可对易
如果只是上面这样简单或者特殊的情况,应该可以直接自己定义规则,一个例子
---------------------------------------
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楼walk1997
多谢了
不用金币
回帖只是闲暇中的乐趣
不为其他
我又通知了版主处理,相信很快就可以处理了。我得讲信用,呵呵,谢谢您了