The dynamicsymbols._t is just a symbols('t') variable declaration. So
dynamicsymbols._t is symbols('t') gives True
dynamicsymbols is just a light wrapper to Symbol Function that gives
functions of the ._t variable.
Jason
moorepants.info
+01 530-601-9791
On Thu, Aug 14, 2014 at 11:12 AM, Rathmann <[email protected]> wrote:
> Oops - except the m \ddot{x} formats properly in the notebook.
>
>
> On Thursday, August 14, 2014 11:09:08 AM UTC-7, Rathmann wrote:
>>
>> Thanks a lot! It turned out that init_vprinting() gives the behavior I
>> wanted.
>>
>> In case others want to go down this path, I am appending a minimal
>> notebook entry which shows the syntax. I am really impressed that diff(L,
>> xdot) just works, and that I can use solve to get algebraic expressions for
>> velocities and accelerations.
>>
>> One additional question - is there a better way to get the time variable
>> than dynamicsymbols._t ? I look at that leading underscore as an
>> indication that I shouldn't be touching it from user code.
>>
>> ------------------
>>
>> In [1]:
>>
>> from sympy.physics.vector import dynamicsymbols
>> from sympy import diff, symbols, S
>> from sympy.physics.vector import init_vprinting
>>
>> init_vprinting()
>>
>> # Simplest test case .. particle of mass m in uniform gravitational field
>> g
>> x = dynamicsymbols('x')
>> t = dynamicsymbols._t
>> xdot = diff(x,t)
>> m, g = symbols('m g')
>>
>> T = (m * xdot**2)/S(2) #kinetic energy
>> V = m*g*x # potential energy is just mgh
>> L = T - V
>>
>> #Euler-Lagrange equation
>> diff(L, xdot,t) - diff(L,x)
>>
>>
>> Out[1]:
>> gm+mx¨
>>
>>
>>
>>
>>
>> On Wednesday, August 13, 2014 10:24:47 PM UTC-7, Jason Moore wrote:
>>>
>>> Oh, you should use
>>>
>>> sympy.physics.vector.init_printing()
>>>
>>> If you want the dot notation in latex in your notebooks.
>>>
>>>
>>> Jason
>>> moorepants.info
>>> +01 530-601-9791
>>>
>>>
>>> On Wed, Aug 13, 2014 at 10:23 PM, Jason Moore <[email protected]>
>>> wrote:
>>>
>>>> You can subclass a printer and have it do what you want. You can see
>>>> here:
>>>>
>>>> https://github.com/sympy/sympy/blob/master/sympy/
>>>> physics/vector/printing.py#L145
>>>>
>>>> where we subclass the latex printer and get the \dot{} notation for
>>>> derivatives, for example. There is also an example here:
>>>>
>>>> http://docs.sympy.org/dev/modules/printing.html
>>>>
>>>> of subclassing to do custom derivative printing. Maybe exactly what you
>>>> want.
>>>>
>>>> The LagrangesMethod in sympy.physics.mechanics works with the classes
>>>> available in that package (RigidBody, ReferemceFrame, etc). The other one
>>>> is more basic math. So if you want to write all the math yourself then
>>>> maybe the later is preferable, but if you want to use the objects in
>>>> sympy.physics.mechanics to build up a rigid body system and find the
>>>> equations of motion, the use the former.
>>>>
>>>>
>>>> Jason
>>>> moorepants.info
>>>> +01 530-601-9791
>>>>
>>>>
>>>> On Wed, Aug 13, 2014 at 10:13 PM, Rathmann <[email protected]> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I have been watching the lectures of Susskind's "Theoretical Minimum"
>>>>> course, and using Sympy with IPython notebook to take notes, and work
>>>>> through some of the examples.
>>>>>
>>>>> Sympy is serious overkill for this purpose, but overall it has been
>>>>> working well.
>>>>>
>>>>> A couple of questions:
>>>>>
>>>>> - What is the best way to deal with dynamics variables and the dot
>>>>> convention for printing? (In physics, the first time derivative of x is
>>>>> often written as \dot{x} instead of dx/dt.) Is there an easy way
>>>>> to get IPython notebook to print dynamics variables using the dot
>>>>> convention, and still give the nice LaTeX-rendered equations? If I use
>>>>> vprint (from physics.vector), I get the variables with primes, but
>>>>> just a
>>>>> text rendering of the equations.
>>>>> - I notice sympy.physics.mechanics.LagrangesMethod and
>>>>> sympy.calculus.euler.euler_equations both implement Lagrangian
>>>>> mechanics. Is one of these more "official" than the other? Both seem
>>>>> to
>>>>> work for the very simple examples I have tried.
>>>>>
>>>>> Thanks
>>>>>
>>>>> --
>>>>> 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 [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/sympy.
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/sympy/fe1737e3-3b19-40e5-8983-5d64bfad8e2f%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/sympy/fe1737e3-3b19-40e5-8983-5d64bfad8e2f%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/2cc6e324-d82d-4210-a1aa-46f99ffc5d12%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/2cc6e324-d82d-4210-a1aa-46f99ffc5d12%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/CAP7f1AidfwWwSV%2Bm03N5Ncx30UTc2%2B%2BHgK5UanB-zfv6%2BU-5pw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.