我正在尝试使用 C 语言中的 Newton-Raphson (NR) 方法来解决查找函数根的问题。我想在其中找到根的函数主要是多项式函数,但也可能包含三角函数和对数函数。
NR 方法需要找到函数的微分。实现差异化的方法有3种:
- 象征性的
- 数字
- 自动(子类型为正向模式和反向模式。对于这个特定问题,我想专注于正向模式)
我有数千个这样的功能,所有这些功能都需要在尽可能快的时间内找到根源。
据我所知,自动微分通常比符号更快,因为它更有效地处理“表达膨胀”问题。
因此,我的问题是,在所有其他条件相同的情况下,哪种微分方法的计算效率更高:自动微分(更具体地说,正向模式)还是数值微分?