Skip to main content

Symmetry Analysis for ODEs/PDEs using SageMath

Project description

delierium

Differential Equations' LIE symmetries Research InstrUMent

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):

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

delierium-0.9.0.dev10-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file delierium-0.9.0.dev10-py3-none-any.whl.

File metadata

File hashes

Hashes for delierium-0.9.0.dev10-py3-none-any.whl
Algorithm Hash digest
SHA256 b0b2971ef98aa23db2e6bc354d8963993d9ff0d22641283fcf391c2dffc6aa29
MD5 e06e223d18a8e1b7cd3e4dfd7db41b87
BLAKE2b-256 43ac8f41fb533ec4cbecd62ca565df319eb104bb600a276f98db3d2378e415a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page