Hi Alan,

a very good question, thanks for raising it.

On Sun, Jan 11, 2009 at 9:33 AM, Alan Bromborsky <[email protected]> wrote:
>
> What do we mean when we say a expression is simplified.

I think the docstring of simplify() answers this one.

In [1]: simplify?
Type:           function
Base Class:     <type 'function'>
String Form:    <function simplify at 0x8afdae4>
Namespace:      Interactive
File:           /home/ondra/repos/sympy/sympy/simplify/simplify.py
Definition:     simplify(expr)
Docstring:
    Naively simplifies the given expression.

    Simplification is not a well defined term and the exact strategies
    this function tries can change in the future versions of SymPy. If
    your algorithm relies on "simplification" (whatever it is), try to
    determine what you need exactly  -  is it powsimp(), or radsimp(),
    or together(), or something else? And use this particular function
    directly, because those are well defined and thus your algorithm
    will be robust.


> Should we
> define some kind of metric that says one expression is more simplified

Yes, that occured to me as well, we can do something more sophisticated.

> than another.  My dumb suggestion would be the simplification of an
> expression would be the string that contains the fewest characters.

Either that, but it depends on how long the function (or symbol) names
are, so a better suggestion may be the number of atomic operations in
the expression:

In [1]: a = x**2+3

In [3]: len(a.atoms())
Out[3]: 3


> Could simplification methods be defined in some kind of multidimensional
> space that could be searched for the simplest final expression.  The

That'd be a nice addition. From the engineering point of view, sympy
should have both ways, e.g. the constructive direct way (e.g. the
current simplify) and then the new way.

> main problem I have with computer algebra is that in simplifying an
> express It is obvious to my brain what should be done, but the program
> requires step by step instructions and the instructions are usually
> different for each expression.

Exactly.

> What is the current standard for
> automatic simplification of finite algebraic/trigonometric/hyperbolic
> expressions and how is it implemented?

There is no standard. Currently we just do our best in functions like
trigsimp(), trim(), etc.

I don't know if Mathematica (or any other CAS) has something more rigorous.

Ondrej

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