Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
1

Transformation of derivative under a change of chart

asked 5 years ago

anonymous user

Anonymous

updated 5 years ago

Consider the following code. When it display the connection coefficient in the Y frame at the end, we obtain derivative expressions that are quite complicated (for example derivative with respect to "r sin(\theta)". I would rather expect simpler expressions containing derivatives with respect to \lambda, \theta or r alone. Like what I would obtain by applying the "textbook" transformation rules for the partial derivatives.

M = Manifold(4, 'M', latex_name=r'\mathcal{M}')
X.<t,x,y,z> = M.chart()
U = M.open_subset('U', coord_def={X: (y!=0, x<0)})
X_U = X.restrict(U)
var('l', latex_name='\lambda')
Y.<t,l,th,r> = U.chart(r't:(0,+oo) l:(0,pi) th:(0,2*pi):\theta r:(0,+oo)')

Omega = var('Omega')
transit_Y_to_X = Y.transition_map(X_U, [t, r*cos(th)*cos(l+Omega*t), r*cos(th)*sin(l+Omega*t), r*sin(th)])
transit_Y_to_X.set_inverse(t, atan2(y, x) - Omega*t, atan2(z, sqrt(x^2+y^2)), sqrt(x^2+y^2+z^2))

nabla = M.affine_connection('nabla', r'\nabla') 
phi = M.scalar_field(function('Phi', latex_name='\Phi')(x, y, z), name='phi', latex_name='\phi')
e = X_U.frame()

nabla[1,0,0] = e[1](phi).expr()
nabla.display(coordinate_labels=False, only_nonredundant=True)

nabla.display(frame=Y.frame(), chart=Y, coordinate_labels=False, only_nonredundant=True)
Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 5 years ago

eric_g gravatar image

You can use

Manifold.options.textbook_output = False

Then D0Φ stands for Φx, etc.

See here for details about the display options.

Preview: (hide)
link

Comments

Thanks, but this is not exactly what I want. From what I can understand, this option gives the same result, except that the notation is a bit more awkward.

What I want is to transform the nabla that contain derivative wrt x y z to an expression for nabla with derivatives wrt lambda theta and r. I do not want derivative with respect to complicated expression like (...)(rsinθ).

In theory, this could be done using the standard transformation rule for partial derivative , i.e something of the form

˜xi=xj˜xixj

Is there something equivalent in sage for the transformation of connection coefficient ?

CD gravatar imageCD ( 5 years ago )

I am not sure to understand what you want exactly. The D0Φ notation gets rid of expressions like /(rsinθ). I agree that the Pynac notation D0Φ is not standard mathematical notation and that Φ/x would be preferable here. I am afraid there is no simple way to achieve this in SageMath, since symbolic functions, as defined with function(), do not have the notion of given names (e.g. x, y, z) for their arguments.

eric_g gravatar imageeric_g ( 5 years ago )

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

Stats

Asked: 5 years ago

Seen: 283 times

Last updated: Sep 27 '19