# 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"
}