Ask Your Question

Revision history [back]

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) 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 = f.at(point)

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

show(res(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?

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) 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 = f.at(point)

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

show(res(v1, 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?

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