Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Python library for working with simple equations

0 views
Skip to first unread message

lallous

unread,
Feb 18, 2010, 4:09:58 AM2/18/10
to
Hello

Is there is any Python library that allow such things:

Given a string expression as: x + 5 + x * (y + 2), any library that
can develop the equation for example.
Or if we say factor with "x" then it renders the expression with x *
( rest of expression ).
There could be a functionality where when x,y are given then the
expression can be evaluated.
If there are two expressions, they can be added and the symbols
preserved.

Does such a thing exist?

Thanks,
Elias

Chris Rebert

unread,
Feb 18, 2010, 4:17:42 AM2/18/10
to lallous, pytho...@python.org

They're called computer algebra systems:
http://en.wikipedia.org/wiki/Computer_algebra_system

SymPy is one for Python:
http://code.google.com/p/sympy/

Don't know if it supports factoring specifically; I've never used it,
I just have Google-Fu.

Cheers,
Chris
--
http://blog.rebertia.com

Daniel Fetchinson

unread,
Feb 18, 2010, 4:24:10 AM2/18/10
to Python
> Given a string expression as: x + 5 + x * (y + 2), any library that
> can develop the equation for example.
> Or if we say factor with "x" then it renders the expression with x *
> ( rest of expression ).
> There could be a functionality where when x,y are given then the
> expression can be evaluated.
> If there are two expressions, they can be added and the symbols
> preserved.

Take a look at sage: http://www.sagemath.org/
I wouldn't say it's simple, in fact it's huge, but it'll do the job.

Cheers,
Daniel

--
Psss, psss, put it down! - http://www.cafepress.com/putitdown

Daniel Fetchinson

unread,
Feb 18, 2010, 5:50:13 AM2/18/10
to Python
>> Given a string expression as: x + 5 + x * (y + 2), any library that
>> can develop the equation for example.
>> Or if we say factor with "x" then it renders the expression with x *
>> ( rest of expression ).
>> There could be a functionality where when x,y are given then the
>> expression can be evaluated.
>> If there are two expressions, they can be added and the symbols
>> preserved.
>
> Take a look at sage: http://www.sagemath.org/
> I wouldn't say it's simple, in fact it's huge, but it'll do the job.

Probably you can isolate the part of sage that you actually need and
can throw away 95% of it.

HTH,

geremy condra

unread,
Feb 18, 2010, 10:30:29 AM2/18/10
to lallous, pytho...@python.org
> --
> http://mail.python.org/mailman/listinfo/python-list
>

>From sage:

>>> x = var('x')
>>> g = x**2 + x
>>> g(x=5)
30
>>> g.factor
... (x + 1)*x

Geremy Condra

0 new messages