Since i could not find an already implemented method,
i had to implement it with bare hands.
The following solution is written so that it can be generalized for more or less variables.
Code:
x, y, z = var('x, y, z')
vars = (x,y,z)
U = CoordinatePatch(vars)
A = DifferentialForms(U)
f = DifferentialForm(A, 1)
f[0], f[1], f[2] = ( y*z + exp(y) + x^2
, z^2 + x*z + x*exp(y) + y^3
, exp(z) +2*y*z + x*y )
print "f = %s" % f
print "df = %s" % f.diff()
print "Is f exact? %s" % f.diff().is_zero()
g = f
G0 = DifferentialForm( A, 0, integral( g[0], vars[0] ) )
g = g - G0.derivative()
G1 = DifferentialForm( A, 0, integral( g[1], vars[1] ) )
g = g - G1.derivative()
G2 = DifferentialForm( A, 0, integral( g[2], vars[2] ) )
G = G0 + G1 + G2
print "G = %s" % G
print "dG = %s" % G.diff()
print "Is dG == f? %s" % bool( G.diff() == f )
This gives:
f = (x*y + 2*y*z + e^z)*dz + (x^2 + y*z + e^y)*dx + (y^3 + x*z + z^2 + x*e^y)*dy
df = 0
Is f exact? True
G = (1/4*y^4 + 1/3*x^3 + x*y*z + y*z^2 + x*e^y + e^z)
dG = (x*y + 2*y*z + e^z)*dz + (x^2 + y*z + e^y)*dx + (y^3 + x*z + z^2 + x*e^y)*dy
Is dG == f? True
So G
is a valid potential for the given $1$-form f
.
Please give a concrete example (= Sage code sample) of such omega.
An example would be:
$[\mathit{\ensuremath{\omega}}=\left( {{\%{}e}^{z}}+2yz+xy\right) \,\mathit{dz}+\left( {{z}^{2}}+xz+x\,{{\%{}e}^{y}}+{{y}^{3}}\right) \,\mathit{dy}+\left( yz+{{\%{}e}^{y}}+{{x}^{2}}\right) \,\mathit{dx}]$
which is exact
the text is not rendered correctly, here is again:
$[\mathit{\omega}=\left( {{e}^{z}}+2yz+xy\right) \,\mathit{dz}+\left( {{z}^{2}}+xz+x\,{{\%{}e}^{y}}+{{y}^{3}}\right) \,\mathit{dy}+\left( yz+{{\%{}e}^{y}}+{{x}^{2}}\right) \,\mathit{dx}]$
Which is exact
Daniel
and again:
$\mathit{\omega}=\left( {{e}^{z}}+2yz+xy\right) \,\mathit{dz}+\left( {{z}^{2}}+xz+x\,{{e}^{y}}+{{y}^{3}}\right) \,\mathit{dy}+\left( yz+{{e}^{y}}+{{x}^{2}}\right) \,\mathit{dx}$
Daniel
@danielvolinski you can edit your comments, no need to add new comments to fix typos.