我有以下示例代码执行具有复数的两个向量的点积。
import sympy as sp
from sympy import I
sp.init_printing()
b1 = sp.Rational(1, 2) * sp.Matrix([I, 1, 0, -I, 1])
v2 = sp.Matrix([2 * I, 1 + I, 0, 1 - I, 2 * I])
print(sp.simplify(v2.dot(b1)))
print(sp.simplify(sp.conjugate(v2.T) @ b1)[0])
输出结果为:
-1 + I
2 - 2*I
显然dot方法没有共轭第一个参数。但我不喜欢第二种解决方法。什么是计算两个向量的点积的干净方法?
答案 0 :(得分:2)
缀合第一载体的点积:
v1.H.dot(v2)
与第二个共轭:
v1.dot(v2.H)
有些人想要前者,有些人想要后者; SymPy没有就此事采取立场。
在你的例子中:
print(sp.simplify(v2.H.dot(b1)))
H代表Hermite结合。