SciML/diffeqpy

Solving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization

何を解決するか

diffeqpy は、Python 内で幅広い種類の微分方程式を直接解くための高パフォーマンスインターフェースを提供します。Python の使いやすさと、Julia 言語の DifferentialEquations.jl エコシステムに含まれる高度で高性能な数値ソルバーの間のギャップを埋めます。

動作方法

このパッケージは DifferentialEquations.jl をラップするものです。Python で問題(ODE、SDE、DAE など)を定義し、Julia のコアルーチンを使って実行できます。パフォーマンスを最大化するために、de.jit 関数を含み、Python の導関数関数を効率的なネイティブコードにコンパイルできます。また、seval を使って Julia 構文で関数を直接定義することも可能です。さらに juliacall と統合されており、質量行列やスパース配列などの複雑な型を扱えます。

対象ユーザー

Python で複雑な微分方程式を解く必要があるが、GPU アクセラレーションやアンサンブルソルビングなどの専門的なソルバー機能(通常、高性能コンピューティング言語に特有)を必要とする研究者、科学者、エンジニア。

特徴

  • 広範な方程式対応: 常微分方程式(ODE)、確率微分方程式(SDE)、遅延微分方程式(DDE)、微分代数方程式(DAE)に加え、離散的およびハイブリッド方程式も解けます。
  • GPU アクセラレーション: DiffEqGPU を通じて、GPU 上で大規模な ODE エンサンブルを並列で解くことができます。
  • パフォーマンス最適化: ジャストインタイム(JIT)コンパイルにより、内部ループのオーバーヘッドを削減します。
  • コアと並列処理: シリアル、スレッド、分散、SplitThreads などのさまざまなアンサンブルソルビング戦略により、複数の CPU コアを活用できます。
  • 柔軟な統合: 最大限の効率を得るために、関数を Python または Julia で定義できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト