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:
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?
Symbolic computation is one that emphasizes term rewriting over evaluation (e-value-ation, extracting the value). Symbols (also called expressions) are rewritable terms, values imply a loss or an end to rewritability. In a way, symbols are more abstract, values more concrete.
What's the answer to 3/9
? A symbolic answer would be (a representation of) 1/3
. A value answer would be 0.333333333
, to however many decimals you care. Notice there's a loss of precision (and thus rewritability) here, 0.333333333 * 3
isn't quite 1
as it should.
A calculator (evaluating machine) will likely choke trying to evaluate (2^(74,207,281) − 1)/(2^(74,207,281) − 1)
even though the answer is trivially just 1
. There's no need to evaluate here when a mere rewrite would suffice.
And of course there's also the opposite case of equations so intractable to term rewriting that they can only be approximately answered through numerical methods.