free_symbols is the best way to do what you want, but note that there
is no order, because it returns a set, so this will just give you *a*
Jacobian (there is no *the* Jacobian without a predetermined order on
the variables). If you want to sort them, e.g., by their name, you
could do something like sorted(expr.free_symbols, key=lambda i:
i.name).

Aaron Meurer

On Jun 30, 2012, at 2:52 PM, "[email protected]"
<[email protected]> wrote:

> If there is no particular reason that you prefer to use strings, you
> should explicitly create these symbols.
>
> x, y, z = symbols('x y z')
>
> If you work on the console for interactive stuff and do not write
> library code you can use the following faster and sloppier command
>
> var('x y z') # x, y and z will go automatically in the global namespace
>
> If you need to use strings (e.g. parsing some input on a webpage) you
> can use the .free_symbols property
>
> expression = sympify('user_string')
> set_of_symbols = expression.free_symbols # no default order
>
> On 30 June 2012 10:52, Daniel Farrell <[email protected]> wrote:
>> Dear list,
>>
>> I use the sympify function to return an symbolic expression of the string
>> and then call the jacobian function. However, I need to extract the
>> variables that were created when the string was processed by sympify?
>>
>> For example, the Jacobian of a quadratic equation is,
>>
>> import sympy
>> equation = sympy.sympify( " a * x**2 + b * x + c ")
>> X = sympy.Matrix([equation])
>> Y = sympy.Matrix([a,b,c])  # here, not general because must be manually
>> specified
>> jacobian = X.jacobian(Y)
>>
>> Everything is general apart from the  Y = sympy.Matrix([a,b,c]) line.
>>
>> Is there a away to extract the variables added (a, b, c) to the namespace by
>> the sympify function? If so this code an be used to calculate the Jacobian
>> of any function.
>>
>> Best wishes,
>>
>> Dan
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msg/sympy/-/GD8TJ1nDeSsJ.
>> 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.
>

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