# How to verify the results of DSolve that contain RootSum?

This question arised from Chini Equations.

In:

DSolve[y'[x] == 5*y[x]^4 + 3*x^(-4/3), y[x], x]


Out: $\text{Solve}\left[-45 \text{RootSum}\left[-45 \text{$\#$1}^4+\sqrt[4]{3} 5^{3/4} \text{$\#$1}-45\&,\frac{\log \left(\sqrt[4]{\frac{5}{3}} \sqrt[4]{x^{4/3}} y(x)-\text{$\#$1}\right)}{\sqrt[4]{3} 5^{3/4}-180 \text{$\#$1}^3}\&\right]=c_1+\frac{3^{3/4} \sqrt[4]{5} x \log (x)}{\left(x^{4/3}\right)^{3/4}},y(x)\right]$

Grateful for help!

We can use implicit differentiation:

res = DSolve[y'[x] == 5*y[x]^4 + 3*x^(-4/3), y[x], x];
eqn = First[res];

Solve[D[eqn, x], y'[x]] // Simplify

{{y'[x] -> 3x^(-4/3) + (-1/(3x) - 1/(3x^(4/3)^(3/4)))y[x] + 5y[x]^4}}


The answer seems to not quite work since -1/(3x) - 1/(3x^(4/3)^(3/4)) is never zero. Looks like a branch cut issue.

eqn = RootSum[9 + #1 + 15#1^4 &,
Log[-#1 + x^(1/3)y[x]]/(1 + 60#1^3) &] == Log[x^(1/3)] + C[1];

Solve[D[eqn, x], y'[x]] // Simplify

{{y'[x] -> 3x^(-4/3) + 5y[x]^4}}

• To be frank, in order to practice using Wolfram Language, I'm writing some code that automatically verify (prefer symbolic to numeric) the solution of DSolve. But now for this question, I can't even see how you got RootSum[9 + #1 + 15#1^4 &, Log[-#1 + x^(1/3)y[x]]/(1 + 60#1^3) &] == Log[x^(1/3)] + C[1], although your answer is very close to what I want. So please show me the code that do the transformation automatically, thanks! – ooo Jan 25 '18 at 8:39
• I just slightly tweaked the output of the step-by-step solution on Wolfram|Alpha: wolframalpha.com/input/?i=y%27%5Bx%5D+%3D%3D+5*y%5Bx%5D%5E4+%2B+3*x%5E(-4%2F3) – Chip Hurst Jan 25 '18 at 17:44
• @ooo You can use the Mathematica WolframAlpha[“y’[x] == 5*y[x]^4 + 3*x^(-4/3)”] to see all the steps. I then evaluated the final integral in its indefinite form and simplified slightly. If you have issues, let me know. – Chip Hurst Jan 26 '18 at 4:33
• @ooo but I will say the method I posted in my answer is a way to verify an implicit solution to an ode. I think in this case the solution provided by Dsolve is slightly wrong. – Chip Hurst Jan 26 '18 at 4:35
• Step-by-step solution gives the answer: $\int_1^{\sqrt[3]{x}y(x)} \frac3{15 u^4+u+9} \, du = \log(x)+c_1$ 1. Why the definite form can't be calculated efficiently whereas the indefinite form can be? 2. Can you write code that automates all of these things (extraction and transformation)? — this is the ultimate goal of the post too. ;) – ooo Jan 26 '18 at 12:05

here is a first stab at looking at this numerically:

sol = DSolve[y'[x] == 5*y[x]^4 + 3*x^(-4/3), y[x], x]


find the C[1] constant for some particular initial condition:

c = Solve[sol[[1]] /. {y[x] -> 0, x -> 1}, C[1]][[1, 1]]


then use findroot to generate solution:

ysol[xarg_] :=
Chop[z /. FindRoot[sol[[1]] /. c /. {y[x] -> z, x -> xarg} , {z, 0}]]


compare with numerical solution to the original equation:

nsol[xarg_] =
NDSolveValue[{y'[x] == 5*y[x]^4 + 3*x^(-4/3), y[1] == 0},
y[x], {x, .8, 1.4}] /. x -> xarg

Plot[{ysol[xx], nsol[xx]}, {xx, .8, 1.4}]


not exactly the same but I expect if you play around with precision they will converge. Note both solutions become unstable outside the range shown.