Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symbolic vs Numeric Math - Performance

Do symbolic math calculations (especially for solving nonlinear polynomial systems) cause huge performance (calculation speed) disadvantage compared to numeric calculations? Are there any benchmark/data about this?

Found a related question: Symbolic computation vs. numerical computation

Another one: Computational Efficiency of Forward Mode Automatic vs Numeric vs Symbolic Differentiation

like image 756
ferit Avatar asked Jul 14 '17 12:07

ferit


People also ask

What is the difference between numeric arithmetic and symbolic arithmetic?

In numeric arithmetic, you represent numbers in floating-point format using either double precision or variable precision. In symbolic arithmetic, you represent numbers in their exact form. This topic compares double-precision, variable-precision, and symbolic arithmetic.

What type of arithmetic should I use when using Symbolic Math Toolbox?

This arithmetic is recommended when you do not have Symbolic Math Toolbox or are using functions that do not accept symbolic input. Otherwise, exact symbolic arithmetic and variable-precision arithmetic are recommended. To convert a symbolic value to double precision, use the double function.

How do I convert a symbolic value to double precision?

To convert a symbolic value to double precision, use the double function. Variable-precision arithmetic using vpa is the recommended approach for numeric calculations in Symbolic Math Toolbox. You can specify the number of significant digits when performing calculations with variable-precision arithmetic.

How to create symbolic numbers in MATLAB?

Use sym to create symbolic numbers. Express the irrational numbers π and in symbolic form. When you declare a number, MATLAB automatically converts the number to double precision. For example, declare the integer 80435758145817515 as the input argument of sym.


1 Answers

I am the individual who answered the Scicomp question you reference in your question. I personally am not aware of any empirical metrics performed to compare run-time performance for symbolic versus numerical solutions to systems of polynomial equations.

However, it should be fairly intuitive that symbolic solutions will have a bit more overhead for most aspects of solving the problem due to things such as manipulation of terms in the equation symbolically, searching how to simplify/rearrange equations to make them easier to solve, searching through known closed form solutions, etc. One major issue with symbolic solvers is that you may not have a closed form solution you can find and use, so solving it numerically would have to happen either way.

The only way I can see symbolic solvers outperforming numerical solutions in terms of run-time is if the symbolic solver can quickly enough recognize your problem as one with a known analytical solution or if it arrives at the solution eventually while the numerical solver never does (aka it diverges).

Given you can find a numerical solver that converges, I think the numerical case will generally be much more efficient since there's just much less overhead to make progress in refining your solution. Since you mention solving systems of polynomial equations, I suspect there are also some tailored algorithms for your type of problem that may be superior to typical nonlinear equation solving schemes.

like image 187
spektr Avatar answered Oct 20 '22 04:10

spektr