在Mathematica中定义矩阵的半张量积运算

因为Mathematica Notebook支持的符号集(ListingOfNamedCharacters)比较有限, 这里使用比较接近作者所用符号 ” ” 的方式 ” “定义 左半张量积 (类似地,如果必要,可以用接近于原 ” ” 的符号 ” ” 定义 右半张量积), 用 ” ” 定义普通张量积(笛卡尔积).

跟矩阵的维数有关的一种运算; 矩阵乘法也是这样.

Mathematica中 , \[CircleTimes] \[TensorProuct] 用的是形状相似的符号,前者大, 后者小. 识别上是两者有别的,但使用时又十分容易混淆.

ClearAll["Global`*"];
a_\[CircleTimes]b_:=KroneckerProduct[a,b];
SemiTensorProduct[A_,B_]:=Module[{t,n,p,product},
n=Dimensions[A][[2]];
p=Dimensions[B][[1]];
t=LCM[n,p];
product=(A\[CircleTimes]IdentityMatrix[t/n]).(B\[CircleTimes]IdentityMatrix[t/p])//Simplify;
product];
A_\[RightTriangle]B_:=(SemiTensorProduct[A,B])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值