Ask Your Question

how to simplify differential form

asked 2017-02-01 21:01:09 +0200

cguo gravatar image

updated 2017-02-01 21:10:15 +0200

kcrisman gravatar image


I try the source code:







the output is: (r*cos(theta)^2 + r*sin(theta)^2)*dr/\dtheta

then I want to simplify_trig to the coefficients. Unfortunately a.simplify_trig() not working and all the map_coefficients and map_item are not defined.

Although in such case I can use: a[0,1]=a[0,1].simplify_trig() to do the job, for general case, maybe a 3 form depends on 6 variables, it is very cumbersome to apply simplify_trig to each coefficients.

One ugly method is: for i in a._components: a[i]=a[i].simplify_trig()

However it depends to real implementation not the interface. I want to ask whether there is an elegant way to do the same job, but just rely on the interface of class sage.tensor.differential_form_element.DifferentialForm

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-02-01 22:05:09 +0200

eric_g gravatar image

updated 2017-02-01 22:55:12 +0200

With Sage 7.5.1, you can use the exterior calculus on manifolds instead of DifferentialForm; the advantage is that the simplification is automatic (no need to invoke simplify_trig by hand): your example becomes:

sage: U = Manifold(2, 'U')
sage: X.<r, theta> = U.chart(r"r:(0,+oo) theta:(0,2*pi):\theta") 
sage: x = U.scalar_field(r*cos(theta))
sage: y = U.scalar_field(r*sin(theta))
sage: a = x.differential().wedge(y.differential())
sage: a
2-form on the 2-dimensional differentiable manifold U
sage: a.display()
r dr/\dtheta

See for more details.

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: 2017-02-01 21:01:09 +0200

Seen: 403 times

Last updated: Feb 01 '17