def ode_separable_reduced(eq, func, order, match):
 x = func.args[0]
 f = func.func
 y = Dummy('y')
 u = match['u'].subs(match['t'], y)
 ycoeff = (1 / (y * (match['power'] - u)))
 m1 = {y: 1, x: ((-1) / x), 'coeff': 1}
 m2 = {y: ycoeff, x: 1, 'coeff': 1}
 r = {'m1': m1, 'm2': m2, 'y': y, 'hint': ((x ** match['power']) * f(x))}
 return ode_separable(eq, func, order, r)

def ode_separable_reduced ( eq , func , order , match ) : x = func . args [ 0 ] f = func . func y = Dummy ( 'y' ) u = match [ 'u' ] . subs ( match [ 't' ] , y ) ycoeff = ( 1 / ( y * ( match [ 'power' ] - u ) ) ) m1 = { y : 1 , x : ( ( - 1 ) / x ) , 'coeff' : 1 } m2 = { y : ycoeff , x : 1 , 'coeff' : 1 } r = { 'm1' : m1 , 'm2' : m2 , 'y' : y , 'hint' : ( ( x ** match [ 'power' ] ) * f ( x ) ) } return ode_separable ( eq , func , order , r )
solves a differential equation that can be reduced to the separable form .