New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GSoC] Simplification for the solutions of systems of ODEs #19998
Conversation
✅ Hi, I am the SymPy bot (v161). I'm here to help you write a release notes entry. Please read the guide on how to write release notes. Your release notes are in good order. Here is what the release notes will look like:
This will be added to https://github.com/sympy/sympy/wiki/Release-Notes-for-1.7. Click here to see the pull request description that was parsed.
Update The release notes on the wiki have been updated. |
sympy/solvers/ode/systems.py
Outdated
@@ -1508,6 +1508,8 @@ def _higher_order_ode_solver(match): | |||
is_euler = is_transformed and type == "type1" | |||
is_higher_order_type2 = is_transformed and type == "type2" and 'P' in match | |||
|
|||
print(match.get('rhs', None)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hope this was for debugging(similarly other such statements)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I have removed these lines locally. Forgot to fix up these statements
I have created a set of functions that can be used to print the test case given a system. Along with that, I have also created a basic structure to replace any rationals in a solution with
|
Updated some of the tests in type1
@mijo2 what's the status of this? Did you cancel the tests yourself? |
@oscarbenjamin I cancelled the tests. I want to complete this PR, but due to some commitments, I won't be able to work for atleast the first half of this month. I do intend to complete this PR in this month itself |
Solutions to dsolve for systems of ODEs will be simplified into a canonical form. Integrals will be evaluated automatically when calling dsolve but doit=False can be passed to dsolve_system.
Solutions from dsolve_system are now simplified automatically. This commit updates the test cases that are changed as a result.
Update slow test cases after introducing simplification to the solutions from dsolve_system.
I've pushed a few commits on here to finish off the simplification. This involved changing many of the tests because the output from dsolve changed. Some tests were too slow so I've reorganised some to mark some as slow or perhaps too slow. @mijo2 Can you review this? |
Codecov Report
@@ Coverage Diff @@
## master #19998 +/- ##
==============================================
- Coverage 75.847% 64.478% -11.369%
==============================================
Files 671 671
Lines 173810 173874 +64
Branches 41048 41069 +21
==============================================
- Hits 131830 112112 -19718
- Misses 36222 55335 +19113
- Partials 5758 6427 +669 |
Sure, I will review it soon, at max by tomorrow. Thanks for the commits. |
Looks good to me. Really liked how you implemented the simplification part along with optimizing the integral computations. |
Thanks @mijo2. I think with this in the new systems code is ready for release. It would be great if you could write a new page in the docs to describe the systems that can be solved and the new functions though. At the moment none of this is really visible to users except that |
I would love to write a page showing all the examples that can be solved but I am currently very busy. Can you tell me a tentative date for the release so that I can make proper arrangements and plan accordingly to write the doc page? |
This PR was the main blocker for the release so now it should be fairly soon although I haven't announced anything yet. |
References to other Issues or PRs
Brief description of what is fixed or changed
Other comments
Release Notes