Hi, this week started with two of my previous PR’s getting merged (finally).
I started working on the integration of the infinitesimals to the present dsolve architecture. Before telling about the issues I ran into (a number of them actually), let me explain the algorithm in a few lines.
As you know (If you have been following my blog),the past few weeks my focus was on solving this monster PDE.
Why? Well, without going too much into detail, the solution to this PDE, and , give the infinitesimals of the ODE . After getting the infinitesimals, this method is adopted.
1] One has to solve the Partial Differential Equations (again?)
2] Now one knows and in terms of and , doing and converting the R.H.S in terms of and , reduces into a quadrature, which can be solved quite easily with the ode_separable hint
3] After solving the ODE, it can be converted back into the original coordinates.
On a scale of optimism to pessimism, I am somewhere in between a realist and a pessimist, and I have to admit I was slightly disappointed with the effectiveness of the hint, since I was running into various issues, with a few ODEs that I had tested. These were some of them that I had identified.
1] Problem with Integral: I was testing an ODE in which, , and I had to integrate a huge expression, which couldn’t be integrated, something like , it gave me an output of the form Integral, and when I substitued as , it gave me a definite value, this is because doing subs on an Integral object, doesn’t substitute for the variable with respect to which you are integrating to. I was pointed to this issue by Aaron, which I haven’t looked at yet.
2] Assumptions: When I was applying to SymPy for Google Summer of Code, I saw this awesome proposal by Tom Bachmann, which seemed Greek and Latin to me then (Some parts of it does still, but never mind). The bottom line, is simplifies to a quadrature, sometimes only when, there are certain assumptions on and . Lets take a random example, suppose reduces to zero only when , Since the input variable is , giving assumptions on , doesn’t seem to affect the assumptions on .
3] There are some cases when the final expression, cannot be solved explicitly for like this https://gist.github.com/Manoj-Kumar-S/6201842 . I think the best way would be to return it as it is.
4] Recursion: Take the case of this wonderful ODE, , calculating the infinitesimals, give me and . Since the first step in solving the PDE, , it gives the same ODE again.
Apart from this I believe rest of the code is good.
P.S: First ten days of college is over. There have been huge disappointments, but apart from that I have enjoyed either roaming outside, and working on my SymPy project, and I have done nothing other than that.