Repolode
patrick-kidger

patrick-kidger/diffrax

JAX向けの数値微分方程式ソルバー。ODE、SDE、CDEに対応し、自動微分とGPU実行をサポートします。

スター
2,122
フォーク
202
未解決の Issue
265
最終コミット
2 か月前

これは何?

Diffraxは、JAXを基盤とする数値微分方程式ソルバーライブラリです。常微分方程式(ODE)、確率微分方程式(SDE)、制御微分方程式(CDE)を統一された内部構造で扱うため、いずれも同じ方法で解くことができます。

明示的積分法のTsit5、Dopri5、Dopri8をはじめ、シンプレクティック法や陰解法など、多数のソルバーを備えています。積分区間も含め、あらゆる対象に対して積分をvmapでき、状態には任意のPyTreeを使用できます。高密度解を利用でき、解を通じた逆伝播のために複数の随伴法も用意されています。

Diffraxは、ニューラル微分方程式など、微分可能なシミュレーションを必要とするユーザー向けです。pipでインストールでき、Python 3.10以降が必要です。

主な機能

  • 01統一された構造でODE、SDE、CDEを解きます。
  • 02Tsit5やDopri8などの明示的・シンプレクティック・陰解法ソルバーを備えています。
  • 03積分区間を含め、ソルバーの処理をvmapできます。
  • 04状態としてPyTreeを受け付け、高密度解を提供します。
  • 05逆伝播に使える複数の随伴法を利用できます。

ユースケース

  • ソルバーを通じた勾配計算が必要な、ニューラル微分方程式モデルの学習。
  • 動力学系のシミュレーションをGPU上でバッチ実行。
  • SDEソルバーを使った確率過程のシミュレーション。

クイックスタート

  1. 1

    pipでライブラリをインストールします

    pip install diffrax
  2. 2

    ODE項とソルバーを定義し、diffeqsolveを呼び出します(READMEの簡単な例を参照)

使う前に知っておきたいこと

  • Python 3.10以降が必要です。
  • JAX上に構築されているため、使用するにはJAXが正常に動作する環境が必要です。

収録されている特集

トピック

#differential-equations#jax#scientific-computing#neural-differential-equations#ode-solver#gpu#deep-learning#dynamical-systems#equinox#machine-learning

よくある質問

diffrax とは?
JAX向けの数値微分方程式ソルバー。ODE、SDE、CDEに対応し、自動微分とGPU実行をサポートします。 Diffraxは、JAXを基盤とする数値微分方程式ソルバーライブラリです。常微分方程式(ODE)、確率微分方程式(SDE)、制御微分方程式(CDE)を統一された内部構造で扱うため、いずれも同じ方法で解くことができます。
diffrax は無料で使えますか?ライセンスは?
diffrax は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
diffrax は今もメンテナンスされていますか?
半年以内に更新あり。diffrax の最終コミットは 2026年9月6日 です。
diffrax は何に使えますか?
ソルバーを通じた勾配計算が必要な、ニューラル微分方程式モデルの学習。 動力学系のシミュレーションをGPU上でバッチ実行。 SDEソルバーを使った確率過程のシミュレーション。
diffrax のインストール方法は?
pipでライブラリをインストールします: pip install diffrax ODE項とソルバーを定義し、diffeqsolveを呼び出します(READMEの簡単な例を参照)
diffrax はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/patrick-kidger/diffrax

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト