Ask Your Question

Revision history [back]

A workaround is the following, assuming that M is the manifold where omega is defined:

om = matrix([[omega[i, j].expr() for j in M.irange()] for i in M.irange()])
omega_inv = M.multivector_field(2, om.inverse())

Here is a full example:

sage: M = Manifold(2, 'M')
sage: X.<x,y> = M.chart()
sage: omega = M.diff_form(2)
sage: omega[0, 1] = 1 + x^2
sage: omega.display()
(x^2 + 1) dx/\dy
sage: om = matrix([[omega[i, j].expr() for j in M.irange()] for i in M.irange()])
sage: omega_inv = M.multivector_field(2, om.inverse())
sage: omega_inv.display()
-1/(x^2 + 1) d/dx/\d/dy