ODE
\[ a y(x) y'(x)+b x+x y'(x)^2=0 \] ODE Classification
[[_homogeneous, `class A`], _dAlembert]
Book solution method
No Missing Variables ODE, Solve for \(y\)
Mathematica ✓
cpu = 0.591939 (sec), leaf count = 223
\[\left \{\text {Solve}\left [\frac {-2 a \tan ^{-1}\left (\frac {a y(x)}{x \sqrt {4 b-\frac {a^2 y(x)^2}{x^2}}}\right )+(a+2) \left (2 \tan ^{-1}\left (\frac {(a+2) y(x)}{x \sqrt {4 b-\frac {a^2 y(x)^2}{x^2}}}\right )-i \log \left (\frac {(a+1) y(x)^2}{x^2}+b\right )\right )}{8 (a+1)}=c_1+\frac {1}{2} i \log (x),y(x)\right ],\text {Solve}\left [\frac {-2 a \tan ^{-1}\left (\frac {a y(x)}{x \sqrt {4 b-\frac {a^2 y(x)^2}{x^2}}}\right )+(a+2) \left (2 \tan ^{-1}\left (\frac {(a+2) y(x)}{x \sqrt {4 b-\frac {a^2 y(x)^2}{x^2}}}\right )+i \log \left (\frac {(a+1) y(x)^2}{x^2}+b\right )\right )}{8 (a+1)}=c_1-\frac {1}{2} i \log (x),y(x)\right ]\right \}\]
Maple ✓
cpu = 0.044 (sec), leaf count = 96
\[ \left \{ [x \left ( {\it \_T} \right ) ={\frac {{\it \_T}\,{\it \_C1}}{ \left ( \left ( 1+a \right ) {{\it \_T}}^{2}+b \right ) ^{ \left ( 1+a \right ) ^{-1}}} \left ( \left ( 1+a \right ) {{\it \_T}}^{2}+b \right ) ^{-{\frac {a}{2+2\,a}}}},y \left ( {\it \_T} \right ) =-{\frac { \left ( {{\it \_T}}^{2}+b \right ) {\it \_C1}}{a \left ( \left ( 1+a \right ) {{\it \_T}}^{2}+b \right ) ^{ \left ( 1+a \right ) ^{-1}}} \left ( \left ( 1+a \right ) {{\it \_T}}^{2}+b \right ) ^{-{\frac {a}{2+2\,a}}}}] \right \} \] Mathematica raw input
DSolve[b*x + a*y[x]*y'[x] + x*y'[x]^2 == 0,y[x],x]
Mathematica raw output
{Solve[(-2*a*ArcTan[(a*y[x])/(x*Sqrt[4*b - (a^2*y[x]^2)/x^2])] + (2 + a)*(2*ArcT
an[((2 + a)*y[x])/(x*Sqrt[4*b - (a^2*y[x]^2)/x^2])] - I*Log[b + ((1 + a)*y[x]^2)
/x^2]))/(8*(1 + a)) == C[1] + (I/2)*Log[x], y[x]], Solve[(-2*a*ArcTan[(a*y[x])/(
x*Sqrt[4*b - (a^2*y[x]^2)/x^2])] + (2 + a)*(2*ArcTan[((2 + a)*y[x])/(x*Sqrt[4*b
- (a^2*y[x]^2)/x^2])] + I*Log[b + ((1 + a)*y[x]^2)/x^2]))/(8*(1 + a)) == C[1] -
(I/2)*Log[x], y[x]]}
Maple raw input
dsolve(x*diff(y(x),x)^2+a*y(x)*diff(y(x),x)+b*x = 0, y(x),'implicit')
Maple raw output
[x(_T) = ((1+a)*_T^2+b)^(-a/(2+2*a))/(((1+a)*_T^2+b)^(1/(1+a)))*_T*_C1, y(_T) =
-(_T^2+b)/a*((1+a)*_T^2+b)^(-a/(2+2*a))/(((1+a)*_T^2+b)^(1/(1+a)))*_C1]