Well, Chris is right that the problem directly is issue 2049, but actually, the 
reason that you get the problem is that what you are trying to do is not yet 
supported, namely, taking derivatives with respect to functions.  See issue 
1816.

So a workaround will have to be to temporarily replace x(t) with just the 
symbol x (or some other dummy symbol), until that becomes implemented.

Aaron Meurer

On Sep 9, 2010, at 10:55 AM, Bastian Weber wrote:

> I want to replace a derivative by a symbol.
> 
> In some cases it works:
> 
> In [1]: from sympy import *
> In [2]: x = Function('x')
> In [3]: f = Function('f')
> In [4]: a = Symbol('a')
> In [5]: t = Symbol('t')
> In [6]: term = 5+x(t).diff(t)
> In [9]: term.subs(x(t).diff(t), a)
> 
> Out[9]: 5 + a
> 
> 
> But what I really want to do is:
> 
> In [17]: f(x(t)).diff(t)
> Out[17]: D(f(x(t)), x(t))*D(x(t), t)
> 
> In [18]: term = f(x(t)).diff(t)
> In [19]: term.subs(x(t).diff(t), a)
> 
> -> ValueError: Invalid literal: x(t) is not a valid variable
> 
> My desired result would be:
> 
> a*D(f(x(t)), x(t))
> 
> 
> I tested it with the current master branch.
> 
> 
> 
> After playing around I think the term D(f(x(t)), x(t)) is the problem
> because if I do
> 
> In [54]: ( Derivative(f(x(t)), x(t))*a )
> Out[54]: a*D(f(x(t)), x(t))
> 
> In [55]: ( Derivative(f(x(t)), x(t))*a ).subs(a, 5)
> 
> the same error occurs.
> 
> 
> With my limited insight I would guess that in
> sympy/core/function.py(623) the argument **{'evaluate': True} causes
> this behavior.
> 
> 
> Do I use something wrong?
> What would be another way to achieve the desired result?
> 
> Thanks,
> Bastian.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sympy?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to