2.23.3 Problem 3

2.23.3.1 Maple
2.23.3.2 Mathematica
2.23.3.3 Sympy

Internal problem ID [13556]
Book : Handbook of exact solutions for ordinary differential equations. By Polyanin and Zaitsev. Second edition
Section : Chapter 1, section 1.3. Abel Equations of the Second Kind. subsection 1.3.2.
Problem number : 3
Date solved : Friday, December 19, 2025 at 06:51:59 AM
CAS classification : [_rational, [_Abel, `2nd type`, `class B`]]

\begin{align*} y y^{\prime }&=\left (a -\frac {1}{x a}\right ) y+1 \\ \end{align*}
Unknown ode type.
2.23.3.1 Maple. Time used: 0.001 (sec). Leaf size: 39
ode:=y(x)*diff(y(x),x) = (a-1/a/x)*y(x)+1; 
dsolve(ode,y(x), singsol=all);
 
\[ y = \frac {a^{2} x -\operatorname {RootOf}\left (-{\mathrm e}^{\textit {\_Z}}-\operatorname {Ei}_{1}\left (-\textit {\_Z} \right ) a^{2} x +c_1 \,a^{2} x \right )}{a} \]

Maple trace

Methods for first order ODEs: 
--- Trying classification methods --- 
trying a quadrature 
trying 1st order linear 
trying Bernoulli 
trying separable 
trying inverse linear 
trying homogeneous types: 
trying Chini 
differential order: 1; looking for linear symmetries 
trying exact 
trying Abel 
<- Abel successful
 

Maple step by step

\[ \begin {array}{lll} & {} & \textrm {Let's solve}\hspace {3pt} \\ {} & {} & y \left (x \right ) \left (\frac {d}{d x}y \left (x \right )\right )=\left (a -\frac {1}{a x}\right ) y \left (x \right )+1 \\ \bullet & {} & \textrm {Highest derivative means the order of the ODE is}\hspace {3pt} 1 \\ {} & {} & \frac {d}{d x}y \left (x \right ) \\ \bullet & {} & \textrm {Solve for the highest derivative}\hspace {3pt} \\ {} & {} & \frac {d}{d x}y \left (x \right )=\frac {\left (a -\frac {1}{a x}\right ) y \left (x \right )+1}{y \left (x \right )} \end {array} \]
2.23.3.2 Mathematica. Time used: 0.102 (sec). Leaf size: 37
ode=y[x]*D[y[x],x]==(a-1/(a*x))*y[x]+1; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 
\[ \text {Solve}\left [\operatorname {ExpIntegralEi}(a (a x-y(x)))+c_1=\frac {e^{a (a x-y(x))}}{a^2 x},y(x)\right ] \]
2.23.3.3 Sympy
from sympy import * 
x = symbols("x") 
a = symbols("a") 
y = Function("y") 
ode = Eq((-a + 1/(a*x))*y(x) + y(x)*Derivative(y(x), x) - 1,0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
NotImplementedError : The given ODE -a + Derivative(y(x), x) - 1/y(x) + 1/(a*x) cannot be solved by
 
Python version: 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] 
Sympy version 1.14.0
 
classify_ode(ode,func=y(x)) 
 
('factorable', 'lie_group')