Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Misc fixes #704
Oct 31, 2018
pprint(dsolve(eqn)) ⎛ 3/4 ⎞ ⎛ 3/4 ⎞ ⎜2 ⋅x⎟ ⎜2 ⋅x⎟ f(x) = C₁ + C₂⋅sin⎜──────⎟ + C₃⋅cos⎜──────⎟ ⎝ 2 ⎠ ⎝ 2 ⎠
Of course, sometimes the answer can only be RootOf (such as many 5th-order DEs). Maybe there should be a test of an irrational coefficient in
I disagree, at least if this will be done in the way it's currently implemented in SymPy.
Also, I'm not sure about the future of
I'm not sure I realize which test was missing in the diofant. Could you be more explicit? Are you about example from sympy/sympy#15520?
BTW, diofant is able to solve problem from sympy/sympy#15520. Unfortunately, currently it only produces purely symbolic answers (i.e. RootOf's with doman=EX). Answer is not too helpful without further rewriting to something else (e.g. you can't
With diofant#478 branch you can have:
Unfortunately, root isolation for polynomials over algebraic domains currently is very slow (the good news is that it was implemented with algorithms already provided by SymPy, with a tiny generalization). I'm not sure about merging mentioned work to the next release. There is a lot of room for improvements if we adopt semi-numerical approach (e.g. using mpmath's
I'll try below...
Exactly. So if a possible future improvement to Diofant's dsolve meant that the third DE gave a answer without
Thanks for the tip about
I'm not a fan of returning answers without RootOf's by default. This tends to produce rather complex answers, except for trivial cases (quadratic equations and so on). And in fact - this could be extremely slow for anything else then simple cubic/quartics/quintics. As far as I know, other CAS turn off such ability by default and there is no practical algorithms to solve this problem for high enough degree (where "high" is around 10, I think, Kalevi Suominen may know better about the state of art).
In short, there are performance issues, that prohibit enabling such expansions by default (like integrals evaluation, see diofant#281). And also such answers will be too complex in most cases.
As I said, there may be a dedicated method like ToRadicals in the Mathematica. Which even may be used by