Computational efficiency of the forward mode Automatic vs Numeric vs Symbolic differentiation

I am trying to solve the problem of finding the roots of a function using the Newton-Raphson (NR) method in C. The functions in which I would like to find the roots are mainly polynomial functions, but can also contain trigonometric and logarithmic ones.

The NR method requires finding the differential of the function. There are three ways to implement differentiation:

  • Symbolic
  • Numeric
  • Automatically (with subtypes in forward and reverse mode. For this specific issue, I would like to focus on direct access mode)

I have thousands of these features that require root searches in the fastest time.

From the small number that I know, automatic differentiation is usually faster than symbolic, because it more effectively deals with the problem of "swelling of the expression."

Thus, my question is that, ceteris paribus, the differentiation method is more efficient from the point of view of calculations: automatic differentiation (more precisely, forward mode) or numerical differentiation?

+1
source share
2 answers

, . p[k] = a_k, k x ^ k, dp[k] = (k+1) p[k+1]. . , . , (x-a)^2 ((x-a)^2-b)^3 - , , , , , , .

+2

, . (φ- ). , , ( ).

, , . √2, .

, , . , , , , .

+1

All Articles