This week I primarily worked on some bugs and added singular initial conditions to the result of expr_to_holonomic()
.
Firstly I fixed a bug in .unify()
. There were some errors being raised in it when one of the Holonomic Function had ground domain RR
or an extension of it. This now works fine.
In [9]: expr_to_holonomic(1.4*x)*expr_to_holonomic(a*x, x) Out[9]: HolonomicFunction((-2.0) + (1.0*x)*Dx, x, 0, {2: [1.4*a]}) In [10]: _9.to_expr() Out[10]: 2 1.4⋅a⋅x
Later I fixed a bug in converting the two types of initial condition into one another. Apparently I forgot to add the factorial
term while converting.
After that I added singular initial conditions to the result of expr_to_holonomic()
whenever the Indicial equation have one root. For example:
In [14]: expr_to_holonomic(x*exp(x)) Out[14]: HolonomicFunction((-x - 1) + (x)*Dx, x, 0, {1: [1]}) In [15]: _.to_expr() Out[15]: x x⋅ℯ
I also changed printing of the class HolonomicFunction
to include the initial conditions inside the call, so as to make it proper python. These are implemented in #11480 and #11451.
Right now we are trying to find a way to include convergence conditions in the result while converting Holonomic Functions to expressions.