2.23.11 Problem 12

2.23.11.1 Maple
2.23.11.2 Mathematica
2.23.11.3 Sympy

Internal problem ID [13564]
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 : 12
Date solved : Friday, December 19, 2025 at 07:00:57 AM
CAS classification : [[_Abel, `2nd type`, `class A`]]

\begin{align*} y y^{\prime }&=a \sin \left (\lambda x \right ) y+1 \\ \end{align*}
Unknown ode type.
2.23.11.1 Maple
ode:=y(x)*diff(y(x),x) = a*sin(lambda*x)*y(x)+1; 
dsolve(ode,y(x), singsol=all);
 
\[ \text {No solution found} \]

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 
Looking for potential symmetries 
Looking for potential symmetries 
   -> Calling odsolve with the ODE, diff(y(x),x) = -1/2*(exp(I*lambda*y(x))^2*a 
-2*x*exp(I*lambda*y(x))*lambda+a)/lambda/exp(I*lambda*y(x)), y(x), implicit 
      *** Sublevel 2 *** 
      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 
      Looking for potential symmetries 
      trying inverse_Riccati 
      trying an equivalence to an Abel ODE 
      differential order: 1; trying a linearization to 2nd order 
      --- trying a change of variables {x -> y(x), y(x) -> x} 
      differential order: 1; trying a linearization to 2nd order 
      trying 1st order ODE linearizable_by_differentiation 
      --- Trying Lie symmetry methods, 1st order --- 
         -> Computing symmetries using: way = 3 
         -> Computing symmetries using: way = 4 
         -> Computing symmetries using: way = 5 
      trying symmetry patterns for 1st order ODEs 
      -> trying a symmetry pattern of the form [F(x)*G(y), 0] 
      -> trying a symmetry pattern of the form [0, F(x)*G(y)] 
      -> trying symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)] 
         -> Computing symmetries using: way = HINT 
         -> Calling odsolve with the ODE, diff(_F1(x),x), _F1(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F1(x),x)-2*I*x*lambda^2/a, _F1( 
x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            <- quadrature successful 
         -> Calling odsolve with the ODE, diff(_F1(x),x)+(-I*a+_F1(x))/x, _F1(x 
) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Computing symmetries using: way = HINT 
         -> Calling odsolve with the ODE, diff(_F1(y),y) = 0, _F1(y) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F1(y),y) = I*_F1(y)*lambda*(exp 
(I*lambda*y)-exp(-I*lambda*y))/(exp(I*lambda*y)+exp(-I*lambda*y)), _F1(y) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x)+I*lambda*K[1], _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x)-I*lambda*K[1], _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x)+_F2(x)/x, _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x), _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x) = 0, _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x) = -_F2(x)/x, _F2(x) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F1(y),y), _F1(y) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F1(y),y)-I*lambda*(_F1(y)*exp(I 
*lambda*y)*a-_F1(y)*exp(-I*lambda*y)*a+2*I*K[1])/a/(exp(I*lambda*y)+exp(-I* 
lambda*y)), _F1(y) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
         -> Calling odsolve with the ODE, diff(_F1(y),y)+I*_F1(y)*lambda*(exp(- 
I*lambda*y)-exp(I*lambda*y))/(exp(I*lambda*y)+exp(-I*lambda*y)), _F1(y) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            trying 1st order linear 
            <- 1st order linear successful 
      -> trying a symmetry pattern of the form [F(x),G(x)] 
      -> trying a symmetry pattern of the form [F(y),G(y)] 
      -> trying a symmetry pattern of the form [F(x)+G(y), 0] 
      -> trying a symmetry pattern of the form [0, F(x)+G(y)] 
      -> trying a symmetry pattern of the form [F(x),G(x)*y+H(x)] 
      -> trying a symmetry pattern of conformal type 
Looking for potential symmetries 
trying inverse_Riccati 
trying an equivalence to an Abel ODE 
differential order: 1; trying a linearization to 2nd order 
--- trying a change of variables {x -> y(x), y(x) -> x} 
differential order: 1; trying a linearization to 2nd order 
trying 1st order ODE linearizable_by_differentiation 
--- Trying Lie symmetry methods, 1st order --- 
   -> Computing symmetries using: way = 3 
   -> Computing symmetries using: way = 4 
   -> Computing symmetries using: way = 2 
trying symmetry patterns for 1st order ODEs 
-> trying a symmetry pattern of the form [F(x)*G(y), 0] 
-> trying a symmetry pattern of the form [0, F(x)*G(y)] 
-> trying symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)] 
   -> Computing symmetries using: way = HINT 
   -> Calling odsolve with the ODE, diff(y(x),x), y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
   -> Calling odsolve with the ODE, diff(y(x),x)+y(x)*cos(lambda*x)*lambda/sin( 
lambda*x), y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
   -> Computing symmetries using: way = HINT 
   -> Calling odsolve with the ODE, diff(y(x),x) = 0, y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
   -> Calling odsolve with the ODE, diff(y(x),x) = -y(x)/x, y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
   -> Calling odsolve with the ODE, diff(y(x),x) = -y(x)*cos(lambda*x)*lambda/ 
sin(lambda*x), y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
   -> Calling odsolve with the ODE, diff(y(x),x)+y(x)/x, y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      trying 1st order linear 
      <- 1st order linear successful 
-> trying a symmetry pattern of the form [F(x),G(x)] 
-> trying a symmetry pattern of the form [F(y),G(y)] 
-> trying a symmetry pattern of the form [F(x)+G(y), 0] 
-> trying a symmetry pattern of the form [0, F(x)+G(y)] 
-> trying a symmetry pattern of the form [F(x),G(x)*y+H(x)] 
-> trying a symmetry pattern of conformal type
 

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 )=a \sin \left (\lambda 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 {a \sin \left (\lambda x \right ) y \left (x \right )+1}{y \left (x \right )} \end {array} \]
2.23.11.2 Mathematica
ode=y[x]*D[y[x],x]==a*Sin[\[Lambda]*x]*y[x]+1; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 

Not solved

2.23.11.3 Sympy
from sympy import * 
x = symbols("x") 
a = symbols("a") 
lambda_ = symbols("lambda_") 
y = Function("y") 
ode = Eq(-a*y(x)*sin(lambda_*x) + y(x)*Derivative(y(x), x) - 1,0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
Timed Out