This is the home page for the symbolic-numeric features being added to ore_algebra , an implementation of Ore algebras for the SageMath computer algebra system originally written by Manuel Kauers, Maximilian Jaroschek and Fredrik Johansson.
The symbolic-numeric features revolve around the computation of values of
univariate D-finite functions and connection matrices between regular points
of univariate differential operators. Most of the new code resides in a
submodule called ore_algebra.analytic
, but the main features
are accessible via methods of univariate differential operators.
Please note that this software is intended both for “end users” interested in performing symbolic-numeric computations with D-finite functions, and as a playground for experimenting with algorithms doing such computations. As a consequence, some features may be undocumented and/or very experimental.
While the analytic
submodule is part of the
official ore_algebra
package starting with
version 0.3, the
analytic
development branch sometimes contains experimental improvements to
the symbolic-numeric parts.
ESI2017 (view), FastRelax2019 (view)
Depending on your Sage setup, you should be able to install the git
master
version using
pip
with the command
$ sage -pip install --user git+https://github.com/mkauers/ore_algebra.git
or the
analytic
branch with
$ sage -pip install --user git+https://github.com/mkauers/ore_algebra.git@analytic
See the relevant section of the Python Packaging User Guide for details.
I suggest running the analytic
branch if you are mainly interested in the latest improvements to the
numerical evaluation code, and the master
branch otherwise.
As of ore_algebra
0.4,
Sage version 8.7 or later is recommended, though some
features should work with earlier versions.
The tip of the analytic
branch may require the latest
stable release of Sage, and sometimes even the latest beta.
Here is a short example of how to test the package without installing it. See the Python and Cython documentation for more information.
$ cd ore_algebra ore_algebra$ make build # build compiled submodules (currently optional) ... ore_algebra$ PYTHONPATH=src sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version ..., Release Date: ... │ │ Using Python .... Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: from ore_algebra import * sage: DiffOps, x, Dx = DifferentialOperators() sage: (Dx - 1).numerical_solution(ini=[1], path=[0,1]) [2.7182818284590452 +/- 3.66e-17]
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.