You might want to look at "New Foundations for Classical Mechanics" by David Hestenes and the rigid body rotor description of equations of motion.
http://www.amazon.com/Foundations-Classical-Mechanics-Fundamental-Theories/dp/0792353021 Should be in your school library. On Tue, Jun 7, 2016 at 1:14 PM, Aaron Meurer <asmeu...@gmail.com> wrote: > On Tue, Jun 7, 2016 at 8:58 AM, Michi S <mischk...@gmail.com> wrote: > > > > Thanks for the answers! For the purpose of my master thesis I am trying > to > > optimize the simulaion of helicopter dynamics. These dynamics are pretty > > complicated, which leads to huge equations for most states. In order to > > speed up the calculation I need to detect functions that where already > > evaluated. The inner derivative that is produced due to the chain rule is > > such a function, that I need to detect. > > > > factor() works only for the first derivative unfortunately. In the second > > and higher derivatives it does not factorize the inner derivates anymore: > > > > t = sym.symbols('t') > > diff( (sin(t)+exp(t))**5 , t ) > >>> (exp(t) + sin(t))**4*(5*exp(t) + 5*cos(t)) > > > > factor(diff( (sin(t)+exp(t))**5 , t )) > >>> 5*(exp(t) + sin(t))**4*(exp(t) + cos(t)) > > > > factor(diff( (sin(t)+exp(t))**5 , t, t )) > >>> 5*(exp(t) + sin(t))**3*(5*exp(2*t) + 8*exp(t)*cos(t) - sin(t)**2 + > >>> 4*cos(t)**2) > > What output were you expecting here? I don't think the second factor > can be factorized. Note however that it can be simplified slightly if > you call trigsimp() on it. > > Aaron Meurer > > > > > > > I think, writing my own differentiation programm will be a little bit to > > hard to solve my issue. Is there no other way besides factor() and > wiriting > > my own programm? > > > > > > Thank for your help! > > > > > > Am Mittwoch, 1. Juni 2016 15:34:28 UTC+2 schrieb Michi S: > >> > >> Hello! > >> > >> Is there a way to turn off the automatic simplification by calculating > the > >> derivative of a function? For example > >> > >> t = sym.symbols('t') > >> sym.Derivative( (sin(t)+exp(t))**3 , t ).doit() > >> > >> gives: > >> (exp(t) + sin(t))**2*(3*exp(t) + 3*cos(t)) > >> > >> I need the result without any simplifications (in order to detect the > >> inner derivative for further calculations) > >> > >> Should be: > >> (exp(t) + sin(t))**2*3*(exp(t) + cos(t)) > > > > -- > > 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 https://groups.google.com/group/sympy. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/sympy/c5e1f95e-d5e2-4334-b302-39bd6e2ebc9b%40googlegroups.com > . > > > > For more options, visit https://groups.google.com/d/optout. > > -- > 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 https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAKgW%3D6J%3D%3Dq4K17wnEvJFagB3URSbJO9CHAjhDJ%3D6a6iQdbZ-gA%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- 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 https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CALOxT-mEdU2X7-yiL52wNnq-%2Be%3Dw-k%2B_3SGn%2BuP8Dj_FS9Y1BA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.