2.23.9 Problem 9

2.23.9.1 Maple
2.23.9.2 Mathematica
2.23.9.3 Sympy

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

\begin{align*} y y^{\prime }&=a y \cosh \left (x \right )+1 \\ \end{align*}
Unknown ode type.
2.23.9.1 Maple
ode:=y(x)*diff(y(x),x) = a*y(x)*cosh(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(y(x))^2*a+2*x*exp(y 
(x))-a)/exp(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*x/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)+(_F1(x)+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)*(exp(-y)+exp 
(y))/(exp(-y)-exp(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)+_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)+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)-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) 
            *** 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)+(_F1(y)*a*exp(-y)+_F1( 
y)*a*exp(y)+2*K[1])/a/(exp(-y)-exp(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)+_F1(y)*(exp(-y)+exp(y) 
)/(exp(-y)-exp(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)*sinh(x)/cosh(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)*sinh(x)/cosh(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 y \left (x \right ) \cosh \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 y \left (x \right ) \cosh \left (x \right )+1}{y \left (x \right )} \end {array} \]
2.23.9.2 Mathematica
ode=y[x]*D[y[x],x]==a*y[x]*Cosh[x]+1; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 

Not solved

2.23.9.3 Sympy
from sympy import * 
x = symbols("x") 
a = symbols("a") 
y = Function("y") 
ode = Eq(-a*y(x)*cosh(x) + y(x)*Derivative(y(x), x) - 1,0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
NotImplementedError : The given ODE -a*cosh(x) + Derivative(y(x), x) - 1/y(x) cannot be solved by th
 
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', '1st_power_series', 'lie_group')