delierium


Namedelierium JSON
Version 0.9.0.dev10 PyPI version JSON
download
home_page
SummarySymmetry Analysis for ODEs/PDEs using SageMath
upload_time2023-04-06 17:48:24
maintainer
docs_urlNone
authorMartin Mayerhofer-Schöpf
requires_python>=3.10
licenseMIT
keywords ode pde lie symmetry
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # delierium
<span style="font-size:30px;"><b>D</b>ifferential <b>E</b>quations' <b>LIE</b> symmetries <b>R</b>esearch <b>I</b>nstr<b>UM</b>ent</span>

Searching for symmetries in ODEs using Python/SageMath/sympy

# Status

* still playing around with Janet bases
* Lie output form a alpha

## Release 0.9.0.dev1

* Just constructing a Janet basis from a list of homogenuous linear PDEs (for grevlex and degrevlex order, lex is dubious)


# Literature (and inspiration):
* Werner M. Seiler: Involution. The Formal Theory of Differential Equations and its Applications in Computer Algebra, Spinger Berlin 2010, ISBN 978-3-642-26135-0.
* Gerd Baumann: Symmetry Analysis of Differential Equations with Mathematica, Springer New York Berlin Heidelberg 2000, ISBN 0-387-98552-2.
* Fritz Schwarz: Algorithmic Lie Theory for Solving Ordinary Differential Equations, CRC Press 2008, ISBN 978-1-58488-889-5
* Fritz Schwarz: Loewy Decomposition of Linear Differential Equations, Springer Wien 2012, ISBN 978-3-7091-1687-6
* Daniel J. Arrigo: Symmetry Analysis of Differential Equations, Wiley Hoboken/New Jersey 2015, ISBN 978-1-118-72140-7
* John Starrett: Solving differential equations by Symmetry Groups  (e.g https://www.researchgate.net/publication/233653257_Solving_Differential_Equations_by_Symmetry_Groups)
* Alexey A. Kasatkin, Aliya A. Gainetdinova: Symbolic and Numerical Methods for Searching Symmetries of Ordinary Differential Equations with a Small Parameter and Reducing Its Order, https://link.springer.com/chapter/10.1007%2F978-3-030-26831-2_19 (if you are able and willing to pay the 27 bucks)
* Vishwas Khare, M.G. Timol: New Algorithm In SageMath To Check Symmetry Of Ode Of First Order, https://www.researchgate.net/publication/338388495_New_Algorithm_In_SageMath_To_Check_Symmetry_Of_Ode_Of_First_Order

# Goals:

* Short term:
    * All kinda stuff for symmetry analysis of ODE/PDE , doing is step by step, whatver comes to my mind
* Mid term:
    * Make it a valuable package
* Long term:
    * Maybe integration into SciPy|SymPy|SageMath

# Release History
## Release 0.9.0.dev10

* 'infinitesimalsODE' has been renamed to 'overdeterminedSystemODE' as described below. 
* 'Janet_Basis' discarded until *real* working

## Release 0.0.1.dev1

* just alphas for 'infinitesimalsODE' and 'Janet_Basis'

# Documentation(work in progress)

## How to use

### Get the overdetermined equations for the infinitesimals of an third order ODE:

    >>> from delierium.Infinitesimals import overdeterminedSystemODE
    >>> from sage.calculus.var import var, function
    >>> from sage.calculus.functional import diff
    >>> x   = var('x')
    >>> y   = function('y')
    >>> ode = diff(y(x), x, 3) + y(x) * diff(y(x), x, 2)
    >>> inf = overdeterminedSystemODE(ode, y, x)
    >>> for _ in inf:
    >>>     print(_)
    -3*D[0](xi)(y(x), x)
    -6*D[0, 0](xi)(y(x), x)
    y(x)*D[0](xi)(y(x), x) + 3*D[0, 0](phi)(y(x), x) - 9*D[0, 1](xi)(y(x), x)
    y(x)*D[1](xi)(y(x), x) + phi(y(x), x) + 3*D[0, 1](phi)(y(x), x) - 3*D[1, 1](xi)(y(x), x)
    -D[0, 0, 0](xi)(y(x), x)
    -y(x)*D[0, 0](xi)(y(x), x) + D[0, 0, 0](phi)(y(x), x) - 3*D[0, 0, 1](xi)(y(x), x)
    y(x)*D[0, 0](phi)(y(x), x) - 2*y(x)*D[0, 1](xi)(y(x), x) + 3*D[0, 0, 1](phi)(y(x), x) - 3*D[0, 1, 1](xi)(y(x), x)
    2*y(x)*D[0, 1](phi)(y(x), x) - y(x)*D[1, 1](xi)(y(x), x) + 3*D[0, 1, 1](phi)(y(x), x) - D[1, 1, 1](xi)(y(x), x)
    y(x)*D[1, 1](phi)(y(x), x) + D[1, 1, 1](phi)(y(x), x)    
    
If you are using JupyterLab, you can print the results in a more human readable way(and the easiest way to install)
`%pip install delierium --upgrade`

`from IPython.display import Math`
`from delierium.helpers import latexer`

`display(Math(latexer(ode)))`
`from delierium.Infinitesimals import overdeterminedSystemODE`
`from sage.calculus.var import var, function`
`from sage.calculus.functional import diff`
`x   = var('x')`
`y   = function('y')`
`ode = diff(y(x), x, 3) + y(x) * diff(y(x), x, 2)`
`inf = overdeterminedSystemODE(ode, y, x)`


`for _ in inf:`

`    display(Math(latexer(_)))`
   
In this mode a derivative like `d^2y/dx^2` is shown as `y_x`(superscript x)
    



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "delierium",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "ODE PDE Lie Symmetry",
    "author": "Martin Mayerhofer-Sch\u00f6pf",
    "author_email": "tapir@aon.at",
    "download_url": "",
    "platform": null,
    "description": "# delierium\n<span style=\"font-size:30px;\"><b>D</b>ifferential <b>E</b>quations' <b>LIE</b> symmetries <b>R</b>esearch <b>I</b>nstr<b>UM</b>ent</span>\n\nSearching for symmetries in ODEs using Python/SageMath/sympy\n\n# Status\n\n* still playing around with Janet bases\n* Lie output form a alpha\n\n## Release 0.9.0.dev1\n\n* Just constructing a Janet basis from a list of homogenuous linear PDEs (for grevlex and degrevlex order, lex is dubious)\n\n\n# Literature (and inspiration):\n* Werner M. Seiler: Involution. The Formal Theory of Differential Equations and its Applications in Computer Algebra, Spinger Berlin 2010, ISBN 978-3-642-26135-0.\n* Gerd Baumann: Symmetry Analysis of Differential Equations with Mathematica, Springer New York Berlin Heidelberg 2000, ISBN 0-387-98552-2.\n* Fritz Schwarz: Algorithmic Lie Theory for Solving Ordinary Differential Equations, CRC Press 2008, ISBN 978-1-58488-889-5\n* Fritz Schwarz: Loewy Decomposition of Linear Differential Equations, Springer Wien 2012, ISBN 978-3-7091-1687-6\n* Daniel J. Arrigo: Symmetry Analysis of Differential Equations, Wiley Hoboken/New Jersey 2015, ISBN 978-1-118-72140-7\n* John Starrett: Solving differential equations by Symmetry Groups  (e.g https://www.researchgate.net/publication/233653257_Solving_Differential_Equations_by_Symmetry_Groups)\n* Alexey A. Kasatkin, Aliya A. Gainetdinova: Symbolic and Numerical Methods for Searching Symmetries of Ordinary Differential Equations with a Small Parameter and Reducing Its Order, https://link.springer.com/chapter/10.1007%2F978-3-030-26831-2_19 (if you are able and willing to pay the 27 bucks)\n* Vishwas Khare, M.G. Timol: New Algorithm In SageMath To Check Symmetry Of Ode Of First Order, https://www.researchgate.net/publication/338388495_New_Algorithm_In_SageMath_To_Check_Symmetry_Of_Ode_Of_First_Order\n\n# Goals:\n\n* Short term:\n    * All kinda stuff for symmetry analysis of ODE/PDE , doing is step by step, whatver comes to my mind\n* Mid term:\n    * Make it a valuable package\n* Long term:\n    * Maybe integration into SciPy|SymPy|SageMath\n\n# Release History\n## Release 0.9.0.dev10\n\n* 'infinitesimalsODE' has been renamed to 'overdeterminedSystemODE' as described below. \n* 'Janet_Basis' discarded until *real* working\n\n## Release 0.0.1.dev1\n\n* just alphas for 'infinitesimalsODE' and 'Janet_Basis'\n\n# Documentation(work in progress)\n\n## How to use\n\n### Get the overdetermined equations for the infinitesimals of an third order ODE:\n\n    >>> from delierium.Infinitesimals import overdeterminedSystemODE\n    >>> from sage.calculus.var import var, function\n    >>> from sage.calculus.functional import diff\n    >>> x   = var('x')\n    >>> y   = function('y')\n    >>> ode = diff(y(x), x, 3) + y(x) * diff(y(x), x, 2)\n    >>> inf = overdeterminedSystemODE(ode, y, x)\n    >>> for _ in inf:\n    >>>     print(_)\n    -3*D[0](xi)(y(x), x)\n    -6*D[0, 0](xi)(y(x), x)\n    y(x)*D[0](xi)(y(x), x) + 3*D[0, 0](phi)(y(x), x) - 9*D[0, 1](xi)(y(x), x)\n    y(x)*D[1](xi)(y(x), x) + phi(y(x), x) + 3*D[0, 1](phi)(y(x), x) - 3*D[1, 1](xi)(y(x), x)\n    -D[0, 0, 0](xi)(y(x), x)\n    -y(x)*D[0, 0](xi)(y(x), x) + D[0, 0, 0](phi)(y(x), x) - 3*D[0, 0, 1](xi)(y(x), x)\n    y(x)*D[0, 0](phi)(y(x), x) - 2*y(x)*D[0, 1](xi)(y(x), x) + 3*D[0, 0, 1](phi)(y(x), x) - 3*D[0, 1, 1](xi)(y(x), x)\n    2*y(x)*D[0, 1](phi)(y(x), x) - y(x)*D[1, 1](xi)(y(x), x) + 3*D[0, 1, 1](phi)(y(x), x) - D[1, 1, 1](xi)(y(x), x)\n    y(x)*D[1, 1](phi)(y(x), x) + D[1, 1, 1](phi)(y(x), x)    \n    \nIf you are using JupyterLab, you can print the results in a more human readable way(and the easiest way to install)\n`%pip install delierium --upgrade`\n\n`from IPython.display import Math`\n`from delierium.helpers import latexer`\n\n`display(Math(latexer(ode)))`\n`from delierium.Infinitesimals import overdeterminedSystemODE`\n`from sage.calculus.var import var, function`\n`from sage.calculus.functional import diff`\n`x   = var('x')`\n`y   = function('y')`\n`ode = diff(y(x), x, 3) + y(x) * diff(y(x), x, 2)`\n`inf = overdeterminedSystemODE(ode, y, x)`\n\n\n`for _ in inf:`\n\n`    display(Math(latexer(_)))`\n   \nIn this mode a derivative like `d^2y/dx^2` is shown as `y_x`(superscript x)\n    \n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Symmetry Analysis for ODEs/PDEs using SageMath",
    "version": "0.9.0.dev10",
    "split_keywords": [
        "ode",
        "pde",
        "lie",
        "symmetry"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43ac8f41fb533ec4cbecd62ca565df319eb104bb600a276f98db3d2378e415a8",
                "md5": "e06e223d18a8e1b7cd3e4dfd7db41b87",
                "sha256": "b0b2971ef98aa23db2e6bc354d8963993d9ff0d22641283fcf391c2dffc6aa29"
            },
            "downloads": -1,
            "filename": "delierium-0.9.0.dev10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e06e223d18a8e1b7cd3e4dfd7db41b87",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 15508,
            "upload_time": "2023-04-06T17:48:24",
            "upload_time_iso_8601": "2023-04-06T17:48:24.157117Z",
            "url": "https://files.pythonhosted.org/packages/43/ac/8f41fb533ec4cbecd62ca565df319eb104bb600a276f98db3d2378e415a8/delierium-0.9.0.dev10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-06 17:48:24",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "delierium"
}
        
Elapsed time: 0.05396s