C 言語でニュートン ラフソン (NR) メソッドを使用して関数の根を見つける問題を解決しようとしています。根を見つけたい関数は、ほとんどが多項式関数ですが、三角関数と対数関数も含まれる場合があります。
NR 法では、関数の微分を求める必要があります。差別化を実装するには、次の 3 つの方法があります。
- シンボリック
- 数値
- 自動(サブタイプはフォワードモードとリバースモードです。この特定の質問では、フォワードモードに焦点を当てたいと思います)
私はこれらの機能を何千も持っており、すべて可能な限り迅速にルートを見つける必要があります。
私が少し知っていることから、自動微分は一般に、「式のうねり」の問題をより効率的に処理するため、シンボリックよりも高速です。
したがって、私の質問は、他のすべてが等しい場合、どの微分方法がより計算効率が高いかということです:自動微分(より具体的には、フォワードモード)または数値微分?