在 SageMath 中评估向量上某个点的表单域

Evaluating a form field at a point on vectors in SageMath

我无法将教科书中的术语(Hubbard 的 向量微积分 )与 SageMath 运算符进行匹配。我想了解如何使用 Sage 解决以下示例问题:

Let phi = cos(x z) dx /\ dy be a 2-form on R^3. Evaluate it at the point (1, 2, pi) on the vectors [1, 0, 1], [2, 2, 3].

预期的答案是:

cos (1 * pi) * Matrix([1, 2], [0, 2]).det() = -2

到目前为止,我拼凑了以下内容:

E.<x,y,z> = EuclideanSpace(3, 'E')

f = E.diff_form(2, 'f')
f[1, 2] = cos(x * z)
point = E((1,2,pi), name='point')
anchor = f.at(point)

v1 = vector([1, 0, 1])
v2 = vector([2, 2, 3])

show(anchor(v1, v2))

失败并出现错误:

TypeError: the argument no. 1 must be a module element

为了在 E 中构造一个向量,我尝试了:

p1 = E(v1.list())
p2 = E(v2.list())
show(anchor(p1, p2))

但是失败并出现同样的错误。在E中构建两个向量的正确方法是什么?

快到了。

计算点 p 处的 2 形式, 使用基于 p.

的向量
sage: T = E.tangent_space(point)
sage: T
Tangent space at Point point on the Euclidean space E

sage: pv1 = T(v1)
sage: pv2 = T(v2)
sage: pv1
Vector at Point point on the Euclidean space E
sage: pv2
Vector at Point point on the Euclidean space E

sage: anchor(pv1, pv2)
-2