C = CoordSysCartesian("C")
D = C.locate_new("D", 3*C.i)
In [8]: express(f(D.x), C, variables=True)
Out[8]: f(C.x - 3)
In [9]: express(f(C.x), D, variables=True)
Out[9]: f(D_x + 3)
So far we have assumed the first one (considering lambda as acting on the coordinate system). In that case we need defined transformation for express(f(C.x), D, ... ) and the inverse transformation for express(f(D.x), C, ...).
Considering the rectangular to spherical transformation:
⎛ ______________ ⎛ _________ ⎞ ⎞
⎜ ╱ 2 2 2 ⎜ ╱ 2 2 ⎟ ⎟
(x, y, z) ↦ ⎝╲╱ x + y + z , atan2⎝╲╱ x + y , z⎠, atan2(y, x)⎠
S = R.create_new("S", lambda x, y, z: ( ... defined as above ... ))
Unfortunately if we maintain the transformation directions as defined above, we will have:
express(x, S, ... ) == sqrt(x**2 + y**2 + z**2)
and
express(r, R, ... ) == r*sin(theta)*cos(phi)
The inverse transformation functions should be used.
So the question is, should .locate_new( ... , 3*C.i ) rather correspond to .create_new( ... , lambda x, y, z: (x - 3, ... ) ) (rather than the lambda with x+3) ?
What do you think?
--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscribe@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/a0094783-3910-40db-99c9-f2d8313821b4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.