1.2.3 Second special case. (section 3-3 in Murphy book)
-- handle ode form x y' = c x^n + a y - b y^2 -- section 3-3
-- where c,n,a,b are CONSTANTS
riccati_solver_3_3 :=proc(ode)
IF n = 2 a THEN
LET y=x^a u
ode becomes u'=x^(a-1) ( c - b u^2) separable.
SOL:= riccati_special_i(a,b,c,n,y,x)
ELIF (n-2a)/(2n) = k, where k positive integer THEN
-- example x y' = 2 x^4 - 6 y - 5 y^2
-- n=4, a=-6, hence (n-2a)=4+12=16 and 16/(8) = k = 2.
IF odd(k) THEN
SOL:= riccati_special_i(n/2,c,b,n,y,x)
ELSE
SOL:= riccati_special_i(n/2,b,c,n,y,x)
END IF
FOR i from k-1 to 1 by -1 DO
IF odd(i) THEN
SOL:= (a+i n)/c + x^n/SOL
ELSE
SOL:= (a+i n)/b + x^n/SOL
END IF
END DO
SOL:= y = a/b + x^n/SOL
ELIF (n+2 a)= 2 n k, where k is positive integer.
-- example x y' = 3 x^4 + 6 y + 3 y^2
IF odd(k) THEN
SOL:= riccati_special_i(n/2,c,b,n,y,x)
ELSE
SOL:= riccati_special_i(n/2,b,c,n,y,x)
END IF
FOR i from k-1 to 1 by -1 DO
IF odd(i) THEN
SOL:= (i n-a)/c + x^n/SOL
ELSE
SOL:= (i n-a)/b + x^n/SOL
END IF
END DO
SOL:= y = x^n/SOL
END IF
return SOL
END PROC: