1 Introduction to Kovacic algorithm

The following is a small introduction to Kovacic algorithm used in solving the ode’s listed in this chapter. The algorithm was implemented based on the original paper by Kovacic.1

The algorithm is implemented as a Maple module with 4 submodules. The code took about two months to implement and is about 3,000 lines which includes the generation of the latex for each step. Without the need to generate the latex showing all the steps, the code would have been much shorter. Case one of the algorithm was the hardest to implement.

Given an ode of the form \(y''+ay' + by = 0\), it is first converted to \(z''=rz\) by transformation to remove the first derivative which is \(y=z e^{\frac {1}{2}\int a \,dx}\). This results in the ode \begin {align*} z'' &= r z \\ &= \left ( \frac {1}{4} a^2 +\frac {1}{2} a' - b\right ) z \tag {1} \end {align*}

It is eq. (1) which is solved by Kovacic algorithm. Then the first solution \(y_1\) to the original ode is found by inverse transformation using the solution \(z_1\) to (1).

The second solution \(y_2\) is found by reduction of order.

Kovacic algorithms finds a Liouvillian solution to (1) if one exists. There are 4 cases. From now on eq. (1) will be called the DE.

  1. DE has solution \(z=e^{\int \omega \,dx}\) where \(\omega \in \mathbb {C}(x)\)
  2. DE has solution \(z=e^{\int \omega \,dx}\) where \(\omega \) is polynomial over \(\mathbb {C}(x)\) of degree and case (1) does not hold.
  3. Solutions of DE are algebraic over \(\mathbb {C}(x)\) and case 1,2 do not hold.
  4. DE has no Liouvillian solution.

Before showing the algorithm itself and describing how it works, there are necessary (but not sufficient) conditions that should be checked to determine which of the above cases the DE satisfies.

The following are the necessary conditions for each case. To check each case, let \(r=\frac {s}{t}\) where \(\gcd \left (s,t\right ) =1\). This means there is no common factor between \(s,t\). The order of \(r\) at \(\infty \) is defined as \(\deg \left (t\right ) -\deg \left ( s\right ) \).

For example, if \(r=\frac {1}{x^{2}}\) then \(O\left ( \infty \right ) =2-0=2\). And if \(r=\frac {1+x}{3x^{2}}\) then \(O\left (\infty \right ) =2-1=1\). The poles of \(r\) and the order of each pole needs to be determined.

The poles of \(r\) are the zeros of \(t\). For example if \(t=x (1-x)^2\) then there is one pole is at \(x=1\) of order \(2\) and one pole at \(x=0\) of order \(1\).

Knowing these two pieces of information all what is needed to determine the necessary conditions for each case and these are the following

  1. Every pole of \(r\) must have even order or its order is \(1\). And \(O(\infty )\) is even or greater than \(2\). No poles are allowed in this case. For example, \(r=(x^2+3)\) has a pole of order zero. Since zero is even number, then this \(r\) qualifies as case 1 because it has \(O(\infty )=0-2=-2\) which is even.
  2. \(r\) have at least one pole of order \(2\) or the order is odd and greater than \(2\). There are no conditions related to \(O(\infty )\) for this case.
  3. \(r\) have only poles of order \(1\) or \(2\). And \(O(\infty )\) must be at least \(2\).

If the conditions are not satisfied then there is no need to try that specific case as there will be no solution. However if the conditions are satisfied, this does not necessarily mean a solution exists for that case. This is what necessary but not sufficient conditions means.

The following table summarizes the above conditions and the possible \(L\) list for each case.

case allowed pole order for \(r=\frac {s}{t}\) allowed \(O\left (\infty \right ) \) order \(L\)
1 \(\left \{ 0,1,2,4,6,8,\cdots \right \} \) \(\left \{ \cdots ,-8,-6,-4,-2,0,2,3,4,5,6,7,\cdots \right \} \) \(\left [ 1\right ] \)
2 \(\left \{ 2,3,5,7,9,\cdots \right \} \) no condition \(\left [ 2\right ]\)
3 \(\left \{ 1,2\right \} \) \(\left \{ 2,3,4,5,6,7,\cdots \right \} \) \(\left [ 4,6,12\right ] \)

Some observations: In case one, no odd order pole is allowed except for pole of order 1. For case 3, only poles of order 1,2 are allowed. If \(O(\infty )=0\), which means \(s\) and \(t\) have same degree, then only possibility is case 1 or case 2. Case 3 is not possible.

For case 1, if \(O(\infty )\) is negative, then it has to be even. For example if \(r=\frac {x^6}{(x-1)^2}\) then now \(O(\infty )=2-6=-4\). But if \(r=\frac {x^5}{(x-1)^2}\) then \(O(\infty )=2-5=-3\) and hence this can not be case 1.

If a pole is of order 2 and \(O(\infty )\) is say 2, then all three cases are met. In this case \(L=\left [ 1,2,4,6,12\right ]\). If case 1 and 2 are met only then \(L=[1,2]\).

The algorithm is described in details in another document here.

The following diagrams give summary of the algorithm for each case. In the implementation, it was found that majority of ode’s used in this chapter fell into case one.

1An Algorithm for Solving Second Order Linear Homogeneous Differential Equations (1985 version). By JERALD J. KOVACIC