请教一个矩阵直积输出的问题
mathematica吧
全部回复
仅看楼主
level 1
如题,矩阵mA,mC是两个明确定义的矩阵;mB,mD是未定义的符号。请问如何让mA.mC \[CircleTimes] mB.mD在输出时让mA.mC为矩阵格式而非大括号格式?尝试了MatrixForm命令,但未能达成目的。将mA和mC矩阵化导致不计算矩阵乘积,而在最后使用MatrixForm命令没有结果。代码如下:
Clear["Global`*"];
mA = {{1, 2}, {3, 4}};
mAform = mA // MatrixForm;
mC = {{1, 0}, {0, 1}};
mCform = mC // MatrixForm;
(mA\[CircleTimes]mB) . (mC\[CircleTimes]mD) /. (x_\[CircleTimes]
y_) . (a_\[CircleTimes]b_) -> (x . a)\[CircleTimes](y .
b) // MatrixForm
(mAform\[CircleTimes]mB) . (mCform\[CircleTimes]mD) /. (x_\
\[CircleTimes] y_) . (a_\[CircleTimes]b_) -> (x .
a)\[CircleTimes](y . b)
运行结果如图
2024年10月29日 08点10分 1
level 7
规则右边改成 MatrixForm[(x . a)]\[CircleTimes]MatrixForm[(y . b)] 。不过张量积的符号应该是\[TensorProduct]
2024年10月29日 09点10分 2
谢谢!已经用了一些自定义的方式解决了,思路和您说的很像。不过直积和张量积有什么明显的区别么?张量积可以天然满足这里试图定义的运算和关于加法的分配律嘛?
2024年10月29日 14点10分
@怎么违规了 刚刚试了一下tensorproduct。相比之下,我更需要用kroneckerproduct的性质。感觉这俩还是有区别的。但我不是数学系的,不是很清楚直积和张量积的区别[小乖]物理人只需要懂矩阵直乘就够了[吐舌]
2024年10月29日 14点10分
数学上对矩阵这三个积好像是一个意思?算了我也不管了()
2024年10月29日 14点10分
直积好像多指笛卡尔积,不过反正我也是混着用那派的
2024年10月29日 14点10分
吧务
level 15
……请阅读精品区《为什么我的代码加了MatrixForm就出问题了?》。
2024年11月02日 03点11分 4
1