Yathartha Joshi Open Source Enthusiast

GSoC 2018 - Week 3 - Continuing with transolve

I continued my work of week 2 in this week as well. Though I was travelling for 2-3 days, I was able to give most of the hours to the work dedicated for this week. I had to add a detailed descriptive documentation for transolve, for this I read documentation of the ode module as Amit and Harsh suggested, apart from this I read several other documentation of sympy modules. Made a commit regarding this in the PR.

As of now transolve supports solving majority of exponential equations. I have also imported exponential tests of solve and added a few of mine. Some of them needs another look, I have added them to XFAIL as of now. I am working on these tests to pass. Also done minor changes in the function, like removed force=True option from expand_log because using this option is not a healthy choice as the function expands logarithm without considering the assumptions (for exponents the variable should be real) which may sometime get a wrong result.

Idea behind transolve

The idea is simple, we are mainly focusing on making it modular and extensible. So to achieve this different identifying and solving helpers will be implemented that will identify the type of equation and then solve it. For detailed information refer to the PR

Idea behind exponential solver

Exponential equations are solved by using logarithms. Currently the expo_solver reduces the equation to log form which can further be handled by solveset itself. For this purpose expand_log function of sympy is used which reduces the equation using log identities. Take for example a simple exponential equation 3**(2*x) - 2**(x + 3), this equation can be reduced to 2*x*log(3) - (x+3)*log(2), this type of equation is easily solvable by solveset.

Once we approve on the documentation and the working of exponential solver I will proceed to implement logarithmic solver (probably in the coming week).

Hope things go as planned!!

Follow @Yathartha22