2.1.248 Problem 251

Solved as second order ode using Kovacic algorithm
Maple
Mathematica
Sympy

Internal problem ID [9418]
Book : Collection of Kovacic problems
Section : section 1
Problem number : 251
Date solved : Friday, April 25, 2025 at 06:07:50 PM
CAS classification : [[_2nd_order, _with_linear_symmetries]]

Solve

x2y+2x(2+x)y+2(1+x)y=0

Solved as second order ode using Kovacic algorithm

Time used: 0.443 (sec)

Writing the ode as

(1)x2y+(2x2+4x)y+(2x+2)y=0(2)Ay+By+Cy=0

Comparing (1) and (2) shows that

A=x2(3)B=2x2+4xC=2x+2

Applying the Liouville transformation on the dependent variable gives

z(x)=yeB2Adx

Then (2) becomes

(4)z(x)=rz(x)

Where r is given by

(5)r=st=2AB2BA+B24AC4A2

Substituting the values of A,B,C from (3) in the above and simplifying gives

(6)r=2+xx

Comparing the above to (5) shows that

s=2+xt=x

Therefore eq. (4) becomes

(7)z(x)=(2+xx)z(x)

Equation (7) is now solved. After finding z(x) then y is found using the inverse transformation

y=z(x)eB2Adx

The first step is to determine the case of Kovacic algorithm this ode belongs to. There are 3 cases depending on the order of poles of r and the order of r at . The following table summarizes these cases.

Case

Allowed pole order for r

Allowed value for O()

1

{0,1,2,4,6,8,}

{,6,4,2,0,2,3,4,5,6,}

2

Need to have at least one pole that is either order 2 or odd order greater than 2. Any other pole order is allowed as long as the above condition is satisfied. Hence the following set of pole orders are all allowed. {1,2},{1,3},{2},{3},{3,4},{1,2,5}.

no condition

3

{1,2}

{2,3,4,5,6,7,}

Table 2.248: Necessary conditions for each Kovacic case

The order of r at is the degree of t minus the degree of s. Therefore

O()=deg(t)deg(s)=11=0

The poles of r in eq. (7) and the order of each pole are determined by solving for the roots of t=x. There is a pole at x=0 of order 1. Since there is no odd order pole larger than 2 and the order at is 0 then the necessary conditions for case one are met. Therefore

L=[1]

Attempting to find a solution using case n=1.

Looking at poles of order 1. For the pole at x=0 of order 1 then

[r]c=0αc+=1αc=1

Since the order of r at is Or()=0 then

v=Or()2=02=0

[r] is the sum of terms involving xi for 0iv in the Laurent series for r at . Therefore

[r]=i=0vaixi(8)=i=00aixi

Let a be the coefficient of xv=x0 in the above sum. The Laurent series of r at is

(9)r1+1x12x2+12x358x4+78x52116x6+3316x7+

Comparing Eq. (9) with Eq. (8) shows that

a=1

From Eq. (9) the sum up to v=0 gives

[r]=i=00aixi(10)=1

Now we need to find b, where b be the coefficient of xv1=x1=1x in r minus the coefficient of same term but in ([r])2 where [r] was found above in Eq (10). Hence

([r])2=1

This shows that the coefficient of 1x in the above is 0. Now we need to find the coefficient of 1x in r. How this is done depends on if v=0 or not. Since v=0 then starting from r=st and doing long division in the form

r=Q+Rt

Where Q is the quotient and R is the remainder. Then the coefficient of 1x in r will be the coefficient in R of the term in x of degree of t minus one, divided by the leading coefficient in t. Doing long division gives

r=st=2+xx=Q+Rx=(1)+(2x)=1+2x

Since the degree of t is 1, then we see that the coefficient of the term 1 in the remainder R is 2. Dividing this by leading coefficient in t which is 1 gives 2. Now b can be found.

b=(2)(0)=2

Hence

[r]=1α+=12(bav)=12(210)=1α=12(bav)=12(210)=1

The following table summarizes the findings so far for poles and for the order of r at where r is

r=2+xx

pole c location pole order [r]c αc+ αc
0 1 0 0 1

Order of r at [r] α+ α
0 1 1 1

Now that the all [r]c and its associated αc± have been determined for all the poles in the set Γ and [r] and its associated α± have also been found, the next step is to determine possible non negative integer d from these using

d=αs()cΓαcs(c)

Where s(c) is either + or and s() is the sign of α±. This is done by trial over all set of families s=(s(c))cΓ until such d is found to work in finding candidate ω. Trying α+=1 then

d=α+(αc1)=1(1)=0

Since d an integer and d0 then it can be used to find ω using

ω=cΓ(s(c)[r]c+αcs(c)xc)+s()[r]

Substituting the above values in the above results in

ω=(()[r]c1+αc1xc1)+(+)[r]=1x+(1)=1+1x=1+1x

Now that ω is determined, the next step is find a corresponding minimal polynomial p(x) of degree d=0 to solve the ode. The polynomial p(x) needs to satisfy the equation

(1A)p+2ωp+(ω+ω2r)p=0

Let

(2A)p(x)=1

Substituting the above in eq. (1A) gives

(0)+2(1+1x)(0)+((1x2)+(1+1x)2(2+xx))=00=0

The equation is satisfied since both sides are zero. Therefore the first solution to the ode z=rz is

z1(x)=peωdx=e(1+1x)dx=xex

The first solution to the original ode in y is found from

y1=z1e12BAdx=z1e122x2+4xx2dx=z1ex2ln(x)=z1(exx2)

Which simplifies to

y1=1x

The second solution y2 to the original ode is found using reduction of order

y2=y1eBAdxy12dx

Substituting gives

y2=y1e2x2+4xx2dx(y1)2dx=y1e2x4ln(x)(y1)2dx=y1(e2x3x+e2x32xe2x3+4x2Ei1(2x)34Ei1(2x)x32e2xx2+xe2x6xEi1(2x)+2e2x3x)

Therefore the solution is

y=c1y1+c2y2=c1(1x)+c2(1x(e2x3x+e2x32xe2x3+4x2Ei1(2x)34Ei1(2x)x32e2xx2+xe2x6xEi1(2x)+2e2x3x))

Will add steps showing solving for IC soon.

Maple. Time used: 0.004 (sec). Leaf size: 28
ode:=x^2*diff(diff(y(x),x),x)+2*x*(x+2)*diff(y(x),x)+2*(1+x)*y(x) = 0; 
dsolve(ode,y(x), singsol=all);
 
y=2Ei1(2x)c2xe2xc2+c1xx2

Maple trace

Methods for second order ODEs: 
--- Trying classification methods --- 
trying a quadrature 
checking if the LODE has constant coefficients 
checking if the LODE is of Euler type 
trying a symmetry of the form [xi=0, eta=F(x)] 
checking if the LODE is missing y 
-> Trying a Liouvillian solution using Kovacics algorithm 
   A Liouvillian solution exists 
   Reducible group (found an exponential solution) 
   Group is reducible, not completely reducible 
<- Kovacics algorithm successful
 

Mathematica. Time used: 0.239 (sec). Leaf size: 33
ode=x^2*D[y[x],{x,2}]+2*x*(2+x)*D[y[x],x]+2*(1+x)*y[x]==0; 
ic={}; 
DSolve[{ode,ic},y[x],x,IncludeSingularSolutions->True]
 
y(x)c21xe2K[1]K[1]2dK[1]+c1x
Sympy
from sympy import * 
x = symbols("x") 
y = Function("y") 
ode = Eq(x**2*Derivative(y(x), (x, 2)) + 2*x*(x + 2)*Derivative(y(x), x) + (2*x + 2)*y(x),0) 
ics = {} 
dsolve(ode,func=y(x),ics=ics)
 
False