Skip to main content
QUICK REVIEW

[論文レビュー] TaylUR, an arbitrary-order automatic differentiation package for Fortran 95

Peter H. von Hippel|arXiv (Cornell University)|Jun 29, 2005
Numerical Methods and Algorithms被引用数 5
ひとこと要約

TaylUR は、算術演算子および組み込み関数をオーバーロードしてテイラー級数オブジェクト上で動作させる仕組みを用いて、複素数関数の混合導関数を除き、任意の順序の自動微分を実現する Fortran 95 パッケージである。Leibniz の公式と Faa di Bruno の公式を活用し、オブジェクト指向プログラミングと演算子オーバーロードを用いて、効率的な導出を実現している。

ABSTRACT

We present TaylUR, a Fortran 95 module to automatically compute the numerical values of a complex-valued function's derivatives w.r.t. several variables up to an arbitrary order in each variable, but excluding mixed derivatives. Arithmetic operators and Fortran intrinsics are overloaded to act correctly on objects of defined type taylor, which encodes a function along with its first few derivatives w.r.t. the user-defined independent variables. Derivatives of products and composite functions are computed using Leibniz's rule and Faa di Bruno's formula. TaylUR makes heavy use of operator overloading and other object-oriented Fortran 95 features.

研究の動機と目的

  • Fortran 95 における複素数関数の高次導関数を計算するための柔軟で拡張可能なフレームワークを提供すること。
  • 混合導関数を除き、各独立変数について任意の順序の導関数をサポートすること。
  • 算術演算子および Fortran 組み込み関数のオーバーロードにより、シームレスな微分を可能にすること。
  • Leibniz の公式や Faa di Bruno の公式のような数学的規則を用いて、合成関数および積関数の導出を実装すること。
  • 現代の Fortran 95 オブジェクト指向機能を活用し、関数と導出情報を型安全な方法でカプセル化すること。

提案手法

  • 各独立変数について指定された順序までの導出を表す派生型 'taylor' を定義する。
  • 算術演算子 (+, -, *, / など) および Fortran 組み込み関数を 'taylor' オブジェクト上でオーバーロードし、正しい導出を伝搬する。
  • 積関数の導出に Leibniz の公式を適用し、乗法的演算における正確性を維持する。
  • 合成関数の高次導出を計算するために Faa di Bruno の公式を用い、正しいテイラー級数の伝搬を保証する。
  • 型バインド手続きおよび演算子オーバーロードを実装し、標準的な Fortran 式内での透明な微分を可能にする。
  • 混合導関数を除き、各変数ごとの純粋な導出に制限することで、複雑さとメモリオーバーヘッドを低減する。

実験結果

リサーチクエスチョン

  • RQ1Fortran 95 において、混合導関数を除き、複素数関数の任意の順序の導出をどのように効率的に計算できるか。
  • RQ2Fortran 95 の演算子オーバーロードおよびオブジェクト指向機能を、信頼性の高い自動微分システムを実装するためにどの程度活用できるか。
  • RQ3Leibniz の公式および Faa di Bruno の公式を型システムに効果的に統合することで、高次導出の伝搬をサポートできるか。
  • RQ4TaylUR の設計は、コンパイル言語としての Fortran において、パフォーマンス、正しさ、拡張性のバランスをどのようにとっているか。
  • RQ5微分モデルから混合導関数を除外することによる制限とトレードオフは何か。

主な発見

  • TaylUR は、型安全でオブジェクト指向的な設計を用いて、各独立変数について任意の順序の導出を正しく計算している。
  • 演算子オーバーロードの活用により、従来の Fortran コードベースへの微分の統合が構文的オーバーヘッドなしに可能である。
  • Faa di Bruno の公式を用いた合成関数の導出は正確に計算されており、ネストされた関数評価における正しさが保証されている。
  • 混合導関数を排除することで、ストレージと計算複雑性を低減し、計算効率を維持している。
  • 実装は、現代の Fortran 95 機能が、強力で拡張可能な自動微分システムを構築するのに十分であることを示している。
  • このアプローチにより、複数の変数における高次導出を必要とする科学技術計算ワークロードにおいて、高精度な導出計算が可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。