sympy/sympy — pull request #1940 by Manoj-Kumar-S (2013-03-27 08:47:26+00:00)
Title: Differential equations with linear coefficients - First implementation

Solves a differential equation with linear-coefficients.

The general form of a differential equation with linear-coefficients is
y' + F((a1*x + b1*y + c1)/(a2*x + b2*y + c2)) = 0,
where a1, b1, c1, a2, b2, c2 are constants and (a1*b2 - a2*b1) != 0

This can be solved by substituting x = x' + ((b2*c1 - b1*c2)/(a2*b1 - a1*b2))
and y = y' + ((a1*c2 - a2*c1)/(a2*b1 - a1*b2)). Making the given
substitution reduces it to a homogeneous differential equation
(see the docstring of ode_1st_homogeneous_coeff_best(), ode_1st_homogeneous_coeff_subs_indep_div_dep()
and 1st_homogeneous_coeff_subs_dep_div_indep())

Examples
========

>>> from sympy import Function, Derivative, pprint
>>> from sympy.solvers.ode import dsolve, classify_ode
>>> from sympy.abc import x
>>> f = Function('f')
>>> df = f(x).diff(x)
>>> eq = (x + f(x) + 1)*df + (f(x) -6*x + 1)
>>> dsolve(eq, hint = 'linear_coefficients')
[f(x) == -x - sqrt(C1 + 7*x**2) - 1, f(x) == -x + sqrt(C1 + 7*x**2) - 1]
>>> pprint(dsolve(eq, hint = 'linear_coefficients'))
___________ ___________
/ 2 / 2
[f(x) = -x - \/ C1 + 7*x - 1, f(x) = -x + \/ C1 + 7*x - 1]

References
==========

- Joel Moses, "Symbolic Integration - The Stormy Decade",
Communications of the ACM, Volume 14, Number 8, August 1971, pp. 558