Ask Your Question

Evaluating a form field at a point on vectors

asked 2021-04-03 20:35:23 +0200

ripple_carry gravatar image

updated 2021-04-04 15:55:47 +0200

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].

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 =

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 flag offensive close merge delete



Motivated by your question, I've opened the ticket to add a method vector() in order to easily create vectors at a given point.

eric_g gravatar imageeric_g ( 2021-04-05 11:13:01 +0200 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2021-04-03 23:38:43 +0200

slelievre gravatar image

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)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2021-04-03 20:34:41 +0200

Seen: 230 times

Last updated: Apr 04 '21