2.21.5 Problem 6

2.21.5.1 Maple
2.21.5.2 Mathematica
2.21.5.3 Sympy

Internal problem ID [13494]
Book : Handbook of exact solutions for ordinary differential equations. By Polyanin and Zaitsev. Second edition
Section : Chapter 1, section 1.2. Riccati Equation. subsection 1.2.9. Some Transformations
Problem number : 6
Date solved : Friday, December 19, 2025 at 05:01:30 AM
CAS classification : [_Riccati]

\begin{align*} y^{\prime }&=y^{2} f \left (x \right )+g \left (x \right ) y+h \left (x \right ) \\ \end{align*}
Unknown ode type.
2.21.5.1 Maple
ode:=diff(y(x),x) = f(x)*y(x)^2+g(x)*y(x)+h(x); 
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 
Looking for potential symmetries 
trying Riccati 
trying Riccati sub-methods: 
   trying Riccati_symmetries 
   trying Riccati to 2nd Order 
   -> Calling odsolve with the ODE, diff(diff(y(x),x),x) = (g(x)*f(x)+diff(f(x) 
,x))/f(x)*diff(y(x),x)-f(x)*h(x)*y(x), y(x) 
      *** Sublevel 2 *** 
      Methods for second order ODEs: 
   -> Trying a change of variables to reduce to Bernoulli 
   -> Calling odsolve with the ODE, diff(y(x),x)-(f(x)*y(x)^2+y(x)+g(x)*y(x)*x+ 
x^2*h(x))/x, y(x), explicit 
      *** 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 Riccati 
      trying Riccati sub-methods: 
         trying Riccati_symmetries 
      trying inverse_Riccati 
      trying 1st order ODE linearizable_by_differentiation 
   -> 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 inverse_Riccati 
trying 1st order ODE linearizable_by_differentiation 
--- Trying Lie symmetry methods, 1st order --- 
   -> Computing symmetries using: way = 4 
   -> Computing symmetries using: way = 2 
   -> Computing symmetries using: way = 6
 

Maple step by step

\[ \begin {array}{lll} & {} & \textrm {Let's solve}\hspace {3pt} \\ {} & {} & \frac {d}{d x}y \left (x \right )=f \left (x \right ) y \left (x \right )^{2}+g \left (x \right ) y \left (x \right )+h \left (x \right ) \\ \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 )=f \left (x \right ) y \left (x \right )^{2}+g \left (x \right ) y \left (x \right )+h \left (x \right ) \end {array} \]
2.21.5.2 Mathematica
ode=D[y[x],x]==f[x]*y[x]^2+g[x]*y[x]+h[x]; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 

Not solved

2.21.5.3 Sympy
from sympy import * 
x = symbols("x") 
y = Function("y") 
f = Function("f") 
g = Function("g") 
h = Function("h") 
ode = Eq(-f(x)*y(x)**2 - g(x)*y(x) - h(x) + Derivative(y(x), x),0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
NotImplementedError : The given ODE -f(x)*y(x)**2 - g(x)*y(x) - h(x) + Derivative(y(x), x) cannot be
 
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)) 
 
('1st_power_series', 'lie_group')