Ask Your Question

ehremington's profile - activity

2016-05-30 19:41:31 +0100 received badge  Famous Question (source)
2015-12-12 16:27:06 +0100 received badge  Taxonomist
2013-07-28 23:21:36 +0100 received badge  Notable Question (source)
2012-10-20 09:16:20 +0100 received badge  Good Question (source)
2012-09-12 22:11:19 +0100 received badge  Popular Question (source)
2012-09-05 16:47:48 +0100 received badge  Nice Question (source)
2011-01-10 08:03:57 +0100 received badge  Student (source)
2011-01-08 17:03:06 +0100 received badge  Editor (source)
2011-01-08 17:02:19 +0100 asked a question lagranian mechanics

I'm working on using sage to help with the Euler-Lagrange equation in my mechanics class. I have this worked up so far for a simple pendulum.

var('m,l,g,th,thdot,thdotdot,t')
th = function('th',t)
thdot = th.diff(t)
thdotdot = thdot.diff(t)
L = 1/2*m*l^2*thdot^2 - m*g*l*(1-cos(th))
diff(L,thdot)

but that gives off the error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_23.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("dmFyKCdtLGwsZyx0aCx0aGRvdCx0aGRvdGRvdCx0JykKdGggPSBmdW5jdGlvbigndGgnLHQpCnRoZG90ID0gdGguZGlmZih0KQp0aGRvdGRvdCA9IHRoZG90LmRpZmYodCkKTCA9IDEvMiptKmxeMip0aGRvdF4yIC0gbSpnKmwqKDEtY29zKHRoKSkKZGlmZihMLHRoZG90KQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>

  File "/tmp/tmpTPoOKC/___code___.py", line 8, in <module>
    exec compile(u'diff(L,thdot)
  File "", line 1, in <module>

  File "/home/eric/sage/local/lib/python2.6/site-packages/sage/calculus/functional.py", line 130, in derivative
     return f.derivative(*args, **kwds)
  File "expression.pyx", line 2502, in sage.symbolic.expression.Expression.derivative (sage/symbolic/expression.cpp:11917)
  File "derivative.pyx", line 216, in sage.misc.derivative.multi_derivative (sage/misc/derivative.c:2191)
  File "expression.pyx", line 2570, in sage.symbolic.expression.Expression._derivative (sage/symbolic/expression.cpp:12263)
 TypeError: argument symb must be a symbol

I don't have any idea what all this means other than I'm guessing it doesn't like that I am trying to take the derivative with respect to a function?

Any help would be appreciated.