On Tue, Sep 7, 2010 at 9:21 PM, Aaron S. Meurer <[email protected]> wrote:
> I don't think it's possible to substitute just theta without concern for x, 
> but this should work
>
> In [9]: f = Function('theta')(x)
>
> In [10]: f
> Out[10]: θ(x)
>
> In [11]: expr = 6*f + x
>
> In [12]: expr
> Out[12]: x + 6⋅θ(x)
>
> In [13]: g = Function('beta')(x)
>
> In [14]: g
> Out[14]: β(x)
>
> In [15]: expr.subs(f, g)
> Out[15]: x + 6⋅β(x)

OK, but that just gets me from theta to beta... can I substitute an
actual function, like sin?

But it doesn't matter -- I just realised I don't actually need it
(though it would be nice to have it).

The situation is this: my implementation of SICM lets me calculate the
Lagrangian, the Lagrange equations, and the "first-order" Lagrange
equations for any Lagrangian.  For example, for the harmonic
oscillator I get the first order equations (functions to be equated to
zero):
-v(t) + D(x(t), t)
(k*x(t) + m*D(v(t), t))/m
(equating each to zero, the first just defines the velocity and the
second is Newton's law.)

Now it would be nice to use these equations (or rather, equations for
less trivial systems) in an integrator, but that requires substituting
values for x(t) and v(t).  But I can actually get equivalent equations
in terms of symbols x and v, rather than functions x(t) and v(t), via
a rather clever procedure in SICM called Gamma_bar -- and that is
preferable for the integrator, anyway.

Thanks,

Rahul

-- 
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