2.23.8 Problem 8

2.23.8.1 Maple
2.23.8.2 Mathematica
2.23.8.3 Sympy

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

\begin{align*} y y^{\prime }&=\left ({\mathrm e}^{\lambda x} a +b \,{\mathrm e}^{-\lambda x}\right ) y+1 \\ \end{align*}
Unknown ode type.
2.23.8.1 Maple
ode:=y(x)*diff(y(x),x) = (a*exp(lambda*x)+b*exp(-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) = (x*exp(lambda*y(x))*lambda+a 
*exp(lambda*y(x))^2-b)/exp(lambda*y(x))/lambda, 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)-lambda^2*x/b, _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)+(_F1(x)+2*a)/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) = _F1(y)*lambda*(exp( 
lambda*y)*a+exp(-lambda*y)*b)/(exp(lambda*y)*a-exp(-lambda*y)*b), _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)+_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)+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)-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)-lambda^2*K[1]*x, _F2(x 
) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            <- quadrature successful 
         -> Calling odsolve with the ODE, diff(_F2(x),x)+lambda^2*K[1]*x, _F2(x 
) 
            *** Sublevel 3 *** 
            Methods for first order ODEs: 
            --- Trying classification methods --- 
            trying a quadrature 
            <- quadrature 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)-lambda*(_F1(y)*exp( 
lambda*y)*a+_F1(y)*exp(-lambda*y)*b+K[1])/(exp(lambda*y)*a-exp(-lambda*y)*b), 
_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)-_F1(y)*lambda*(exp( 
lambda*y)*a+exp(-lambda*y)*b)/(exp(lambda*y)*a-exp(-lambda*y)*b), _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)*lambda*(a*exp(x*lambda)-b 
*exp(-x*lambda))/(a*exp(x*lambda)+b*exp(-x*lambda)), 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)*lambda*(a*exp(x*lambda 
)-b*exp(-x*lambda))/(a*exp(x*lambda)+b*exp(-x*lambda)), 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)-lambda*K[1], 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)+lambda*K[1], 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)-1/3/b*lambda/x*K[1]/a, y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      <- quadrature successful 
   -> Calling odsolve with the ODE, diff(y(x),x)+1/3/b*lambda/x*K[1]/a, y(x) 
      *** Sublevel 2 *** 
      Methods for first order ODEs: 
      --- Trying classification methods --- 
      trying a quadrature 
      <- quadrature 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 )=\left (a \,{\mathrm e}^{\lambda x}+b \,{\mathrm e}^{-\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 {\left (a \,{\mathrm e}^{\lambda x}+b \,{\mathrm e}^{-\lambda x}\right ) y \left (x \right )+1}{y \left (x \right )} \end {array} \]
2.23.8.2 Mathematica
ode=y[x]*D[y[x],x]==(a*Exp[\[Lambda]*x]+b*Exp[-\[Lambda]*x])*y[x]+1; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 

Not solved

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