# Evaluating a form field at a point on vectors

I am having trouble matching up terminology in my textbook (Hubbard's Vector Calculus) against SageMath operators. I'd like to understand how to solve the following example problem with 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 

So far I have pieced together the following:

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))


which fails with the error:

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

To construct a vector in E, I tried:

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


but that fails with the same error. What's the right way to construct two vectors in E?

edit retag close merge delete

1

Motivated by your question, I've opened the ticket https://trac.sagemath.org/ticket/31609 to add a method vector() in order to easily create vectors at a given point.

( 2021-04-05 11:13:01 +0200 )edit
( 2021-04-05 15:42:48 +0200 )edit

Sort by ยป oldest newest most voted

Almost there.

Evaluate the 2-form at point p on vectors based at 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

more