Yes, perhaps I wasn't clear. That first vector p = ax * e_A_x + ay * e_A_y + az * e_A_z is not the same as the vector p^{AB}, as I was assuming you could not define position vectors in that form (ax * e_A_x + ...). The vector p^{AB} would be something like p1 * e_A_x + p2 * e_A_y + p3 * e_A_z. The DCM provides the rotational transformation between coordinates, but not the translational transformation, hence the dot term. The DCM alone is _not_ enough to transform coordinates.
Regarding chaining frame rotations: The number of matrix multiplications is not as important as the complexity of the matrices involved in this case. Consider the following: Going from N -> A`` -> A` -> A, using simple rotations about the 3,2,1 axes (z, y, x) in each new frame. This equivalent the defining the orientation with body 321 (ZYX) Euler angles. However, if I want to look at the DCM between intermediary frame A` and frame A, it should be relatively simple: [[1, 0 ,0], [0, cos(q3), -sin(q3)],[0, sin(q3), cos(q3)]]. But if you get the DCM by going through the global frame, You have to generate the entire ZYX DCM, then a YZ DCM, and multiply them, and hope they will cancel out. I know you have suggested using the 'fu' simplification, but I would recommend you try it on a difficult problem, like the example Sachin discussed above. Just make sure each frame has a different rotation type compared to the previous one. It simply will not work after a certain point. Here's a pastebin to get you started: http://pastebin.com/wdWy8pyn - try going from frames[:-1] -> frames[0] -> frames[:-2], and seeing if that can simplify... Better yet, choose a timeout value, and figure out what the longest chain of simple rotations the can be simplified using that timeout value is. On Wed, Jul 10, 2013 at 12:57 PM, Sachin Joglekar <srjoglekar...@gmail.com>wrote: > When Gilbert used the base scalars in the vector expression, the equation > was just the mathematical way to convert the base scalars from one frame to > another. It wasnt a position vector per say. The point was, that the > relations that you would get between the variables on the lhs and rhs are > the relationships the base scalars should show wrt each other. > About going via a global frame, though its the multiplication of only two > matrices in your cases, calculating the matrices themselves is a tough > task. For eg, in the current framework, try defining 100 frames each wrt > the former, and then find the dcm of the 98th wrt the 96th using the > current, 'tree way'..I tried doing it your way, it just gets stuck. The > issue is the time complexity in calculation and simplification. As it is, > when you store the dcm of the 100th frame wrt the first, you will need to > multiply its dcm wrt 99th with the dcm of the 99th wrt Global, and this > follows a recursive definition, which mathematically means multiplying 99 > dcms. > On Jul 10, 2013 9:51 PM, "Prasoon Shukla" <prasoon92.i...@gmail.com> > wrote: > >> @Stefan : For the case you mention, there's another step that converts >> between coordinate systems. For the case of U and V (as you mentioned), >> we'll just convert from U to V. Here are the steps: >> >> 1. We substitute for x, y, z (base scalars of U) in terms of rho, phi, z >> (base scalars of V). Then, there's a conversion matrix between coordinate >> systems - we apply that transformation to the vector that we got after >> transformation. This gives us the vector in V. >> >> Anyway, it was getting very difficult for me to read the obscure notation >> that we are using here on this thread. So, I think that the points will be >> clearer in latex. >> >> My reply to you guys has therefore been posted here : >> http://mathb.in/8583 >> >> This sheet is editable and is latex enabled. >> >> On Wednesday, July 10, 2013 4:35:10 PM UTC+5:30, Stefan Krastanov wrote: >>> >>> @Prasoon, maybe I misunderstood what you suggest, but on first glance it >>> seems it will work awfully in the following case: >>> >>> coordinate systems: >>> >>> A (carthesian) -> B -> many more -> U -> V >>> >>> where U and V have the same origin and orientation but U is carthesian >>> while V is polar. >>> >>> How will something defined in U will be expressed in V according to your >>> suggestion? >>> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "sympy" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/sympy/t-Je0beTIIU/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> sympy+unsubscr...@googlegroups.com. >> >> To post to this group, send email to sympy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sympy. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > -- > 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+unsubscr...@googlegroups.com. > To post to this group, send email to sympy@googlegroups.com. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.