Search code examples
symbolic-math

What is symbolic computation?


According to wiki:

In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects

Does symbolic computation focus on symbol manipulation and computation? Lisp program is written in the form of an AST with atoms as leaves. Lisp is said to be language for symbolic computing. Does it mean that in symbolic computation, it is:

  • all about symbols (symbols are atoms or non-atom expressions in Lisp)
  • every symbol is assigned a semantic
  • symbolic computation is a paradigm that orients programmers to focus on working with symbols and semantics (a semantic can be an atom or expression that does something) and the relationships between symbols, as opposed to think that data structure and code are two separated entities.
  • program design is language design, based on symbol composition/manipulation and semantic assignment.

According to this question, the opposite of symbolic computation is numeric computation. What's the primary difference between these two? When I work with Octave (I'm studying it), I have to work with numbers a lot and have to guess the meaning of those magic numbers many times. Is this a numerical computation focus?


Solution

  • Symbolic Computation is the computation with symbolic expressions.

    Examples for symbolic expressions:

    • a mathematic formula, for example an integral expression
    • a logic theorem
    • a score of music, using note symbols
    • a plan situation

    For the latter:

    • roads from a to b, b to d, c to e, e to f, b to f, ...
    • parcels p1 at a, p2 at d and p3 at f
    • a truck t1 at d
    • a goal

    Now the task would be to generate a good plan which picks up all parcels and reaches the given goal.

    1. pick up parcel p2 at d
    2. move truck t1 from d to b
    3. move truck t1 from b to a
    4. pick up parcel p1 at a
    5. ...

    In above examples symbols stand for places and for things (truck, parcel). Symbol expressions describe a situation, a plan generator will return a sequence of actions (move, pick up) - again described as symbolic expressions.

    The LISt Processor (-> LISP) as symbolic computation

    One of the fundamental discoveries of Lisp was then that a program is a symbolic expression and that the interpreter executing the program itself can be described by a program written as a symbolic expression. Thus the data, the Lisp program and its interpreter are symbolic expressions.