x = var('x')
y = function('y',x) # define y a function of x
DE = x*y*diff(y,x) - 2*y^2 - 4*x^2
print 'DE:';show(DE)

u = function('u',x)
DE = DE.subs({y:x*u,diff(y,x):diff(x*u,x)}) # substituting y/x as u
print 'DE substituted:';show(DE)

soln = desolve(DE,u,ics=[2,4])
soln = soln.subs({u:y/x}) # getting soln back in terms of y and x only
sol = solve(soln,y)
print 'Solution:';show(sol)

SageDays/Kreyszig-1.3-23 (last edited 2010-08-09 14:04:38 by PrashantAgrawal)