张量积#

抽象张量积。

class sympy.physics.quantum.tensorproduct.TensorProduct(*args)[源代码]#

两个或多个自变量的张量积。

对于矩阵,它使用 matrix_tensor_product 计算Kronecker或张量积矩阵。对于其他对象 TensorProduct 实例已返回。张量积是一种非交换乘法,主要用于量子力学中的算符和态。

目前,张量积区分可交换和非交换参数。交换参数被假定为标量,并在 TensorProduct . 结果中仍然存在非交换参数 TensorProduct .

参数:

args :元组

取张量积的对象序列。

实例

Start with a simple tensor product of SymPy matrices:

>>> from sympy import Matrix
>>> from sympy.physics.quantum import TensorProduct

>>> m1 = Matrix([[1,2],[3,4]])
>>> m2 = Matrix([[1,0],[0,1]])
>>> TensorProduct(m1, m2)
Matrix([
[1, 0, 2, 0],
[0, 1, 0, 2],
[3, 0, 4, 0],
[0, 3, 0, 4]])
>>> TensorProduct(m2, m1)
Matrix([
[1, 2, 0, 0],
[3, 4, 0, 0],
[0, 0, 1, 2],
[0, 0, 3, 4]])

我们也可以构造非交换符号的张量积:

>>> from sympy import Symbol
>>> A = Symbol('A',commutative=False)
>>> B = Symbol('B',commutative=False)
>>> tp = TensorProduct(A, B)
>>> tp
AxB

我们可以取张量积的匕首(注意顺序不像普通乘积的匕首那样颠倒):

>>> from sympy.physics.quantum import Dagger
>>> Dagger(tp)
Dagger(A)xDagger(B)

Expand可用于在加法中分布张量积:

>>> C = Symbol('C',commutative=False)
>>> tp = TensorProduct(A+B,C)
>>> tp
(A + B)xC
>>> tp.expand(tensorproduct=True)
AxC + BxC
sympy.physics.quantum.tensorproduct.tensor_product_simp(e, **hints)[源代码]#

尽量简化和组合张量积。

通常,这将尝试将表达式拉入 TensorProducts . 它目前只适用于相对简单的产品只有标量的情况 TensorProducts 不是 AddPowCommutators 属于 TensorProducts . 最好通过示例来了解它的作用。

实例

>>> from sympy.physics.quantum import tensor_product_simp
>>> from sympy.physics.quantum import TensorProduct
>>> from sympy import Symbol
>>> A = Symbol('A',commutative=False)
>>> B = Symbol('B',commutative=False)
>>> C = Symbol('C',commutative=False)
>>> D = Symbol('D',commutative=False)

首先看看张量积的乘积会发生什么:

>>> e = TensorProduct(A,B)*TensorProduct(C,D)
>>> e
AxB*CxD
>>> tensor_product_simp(e)
(A*C)x(B*D)

这是该函数的核心逻辑,它在内部工作,幂、和、换向器和反交换器也是:

>>> tensor_product_simp(e**2)
(A*C)x(B*D)**2