Skip to content

somisawa/auto-deriv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

auto-deriv

自動微分を二重数でしてみるライブラリ。

環境について

numpy があれば動く。推奨されていない numpy.matrix を使っているのでバージョンによっては今後動かなくなるかも。

pipenv で環境を作成します。pipenv の使い方は公式ドキュメントを参照してください。

pip install pipenv
export PIPENV_VENV_IN_PROJECT=true # .bashrc に書いておくと良い
pipenv install --dev

利用方法

有理関数を定義します。

def f(x): return x ** 2 + x

このx = 2における微分は次のように計算できます。

deriv(f, 2) # 5

他にもexpとかsinとかの微分も求まります(参照)。

原理

二重数を無理やり演算から実装してもいいですが,次の事実を用いました(証明してみよう)。

(命題) $\mathbb{R} / (x^2)$ という $\mathbb{R}$ 加群は

$$\begin{pmatrix} a+b & b \\ -b & a - b \end{pmatrix}$$

($a, b\in \mathbb{R}$)という行列全体のなす $\mathbb{R}$ 加群と同型

テスト

pytestを使います。テストは以下のように実行できます。

pipenv run pytest --doctest-modules

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages