张量积#
抽象张量积。
- 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
不是Add
,Pow
,Commutators
属于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