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 onR^3
. Evaluate it at the point(1, 2, pi)
on the vectors[1, 0, 1], [2, 2, 3]
.
The expected answer is:
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
?
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.Also asked at Stack Overflow question 66934629: Evaluating a form field at a point on vectors in SageMath.