This ODE has the form
Any of the following forms is called an Abel ode of first kind
The case for both \(f_{0}(x)=0,f_{2}(x)=0\) is not allowed, else it becomes Bernoulli ode. Either \(f_{0}=0\) or \(f_{2}=0\) is allowed but not both at same time. The term \(f_{3}(x)\) must be there in all cases.
In addition, at least one of \(f_{i}\) must be a function of \(x\) else it is quadrature. For example \(y^{\prime }=y^{2}+y^{3}\) is not Abel ode but \(y^{\prime }=xy^{2}+y^{3}\) is Abel ode.
The case when \(f_{2}=0\) is important. The Abel invariant is defined only when \(f_{2}=0\) as
In the above, we do not have to worry about \(f_{0}=0\) because this is not possible since in Abel ode both \(f_{2}=0\) and \(f_{0}=0\) is not possible, else it will not be Abel ode in first place.
In the case when \(f_{2}\neq 0\), then \(f_{2}\) is first removed from the original ode using the change of dependent variable
Now the new ode in \(u\left ( x\right ) \) will not have \(f_{2}\) in it. Now we check again if the resulting ode is still Abel ode. If so, we apply transformation to convert it to separable and solve it. If not Abel ode, then it is solved using other algorithms depending on the ode type that it comes out to be.
There are two possibilities when \(f_{2}=0\). Either \(\Delta \) is constant (i.e. does not depend on \(x\)) or not (i.e. function of \(x\)). The constant invariant is the easy case and can always be solved. The non constant case is not fully solved and only few cases can be solved analytically. Currently if \(\Delta \) is not constant, the ode is converted to Abel of second kind to try the algorithms there.
If invariant \(\Delta \) is constant and \(f_{0}\neq 0\) (since we can not have both \(f_{0}=0,f_{2}=0\)) then the substitution
Results in a separable ode in \(u\left ( x\right ) \) which can be easily solved. (See examples below).
There are only few cases where Abel ode is solvable when \(\Delta \) not constant. When \(\Delta \) is not constant, then it is converted Abel second kind to try again using the algorithms for the second kind. This is done using the substitution
See section below for how this is done with examples.