具有复数的Dotproduct

时间:2017-08-05 14:07:03

标签: python sympy

我有以下示例代码执行具有复数的两个向量的点积。

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方法没有共轭第一个参数。但我不喜欢第二种解决方法。什么是计算两个向量的点积的干净方法?

1 个答案:

答案 0 :(得分:2)

缀合第一载体的点积:

v1.H.dot(v2)

与第二个共轭:

v1.dot(v2.H)
有些人想要前者,有些人想要后者; SymPy没有就此事采取立场。

在你的例子中:

print(sp.simplify(v2.H.dot(b1)))

H代表Hermite结合。