Question: Difficulty Collecting Coefficients

I'm trying to collect all terms involving the expression diff(G(xi), xi)/G(xi) in a symbolic equation using . While it's straightforward to do this by hand, I want to automate it in code — ideally by extracting the coefficient of this entire expression directly. However, when I use collect, Maple treats diff(G(xi), xi) and G(xi) separately, and I can't seem to group terms properly by the full ratio diff(G(xi), xi)/G(xi).

Is there a clean way or built-in Maple function to automatically collect or isolate the coefficient of diff(G(xi), xi)/G(xi) as a whole, without having to manually substitute or restructure the expression?

restart

with(PDEtools)

with(LinearAlgebra)

NULL

with(SolveTools)

undeclare(prime)

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(1)

L := (-6*f^3*g*a[2]+6*f*g^3*a[2]+6*f*g*a[2]^2)*(diff(G(xi), xi))^4/G(xi)^4+(f*g^3*(10*lambda*a[2]+2*a[1])-f^3*g*(10*lambda*a[2]+2*a[1])+12*f*g*a[1]*a[2])*(diff(G(xi), xi))^3/G(xi)^3+(f*g^3*(2*a[2]*lambda^2+3*lambda*a[1]+10*mu*a[2]+2*a[2]*(lambda^2-mu))-4*f*p*a[2]-6*k*l*a[2]-f^3*g*(2*a[2]*lambda^2+3*lambda*a[1]+10*mu*a[2]+2*a[2]*(lambda^2-mu))+6*f*g*(2*a[0]*a[2]+a[1]^2))*(diff(G(xi), xi))^2/G(xi)^2+(f*g^3*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*lambda*a[2]*mu)-4*f*p*a[1]-6*k*l*a[1]-f^3*g*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*lambda*a[2]*mu)+12*f*g*a[0]*a[1])*(diff(G(xi), xi))/G(xi)+f*g^3*(lambda*mu*a[1]+2*mu^2*a[2])-4*f*p*a[0]-6*k*l*a[0]-f^3*g*(lambda*mu*a[1]+2*mu^2*a[2])+6*f*g*a[0]^2 = 0

(-6*f^3*g*a[2]+6*f*g^3*a[2]+6*f*g*a[2]^2)*(diff(G(xi), xi))^4/G(xi)^4+(f*g^3*(10*lambda*a[2]+2*a[1])-f^3*g*(10*lambda*a[2]+2*a[1])+12*f*g*a[1]*a[2])*(diff(G(xi), xi))^3/G(xi)^3+(f*g^3*(3*lambda*a[1]+2*a[2]*lambda^2+10*mu*a[2]+2*a[2]*(lambda^2-mu))-4*f*p*a[2]-6*k*l*a[2]-f^3*g*(3*lambda*a[1]+2*a[2]*lambda^2+10*mu*a[2]+2*a[2]*(lambda^2-mu))+6*f*g*(2*a[0]*a[2]+a[1]^2))*(diff(G(xi), xi))^2/G(xi)^2+(f*g^3*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*a[2]*lambda*mu)-4*f*p*a[1]-6*k*l*a[1]-f^3*g*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*a[2]*lambda*mu)+12*f*g*a[0]*a[1])*(diff(G(xi), xi))/G(xi)+f*g^3*(lambda*mu*a[1]+2*mu^2*a[2])-4*f*p*a[0]-6*k*l*a[0]-f^3*g*(lambda*mu*a[1]+2*mu^2*a[2])+6*f*g*a[0]^2 = 0

(2)

``

(3)

collect(%, {1/(diff(G(xi), xi)), G(xi)})

(-6*f^3*g*a[2]+6*f*g^3*a[2]+6*f*g*a[2]^2)*(diff(G(xi), xi))^4/G(xi)^4+(f*g^3*(10*lambda*a[2]+2*a[1])-f^3*g*(10*lambda*a[2]+2*a[1])+12*f*g*a[1]*a[2])*(diff(G(xi), xi))^3/G(xi)^3+(f*g^3*(3*lambda*a[1]+2*a[2]*lambda^2+10*mu*a[2]+2*a[2]*(lambda^2-mu))-4*f*p*a[2]-6*k*l*a[2]-f^3*g*(3*lambda*a[1]+2*a[2]*lambda^2+10*mu*a[2]+2*a[2]*(lambda^2-mu))+6*f*g*(2*a[0]*a[2]+a[1]^2))*(diff(G(xi), xi))^2/G(xi)^2+(f*g^3*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*a[2]*lambda*mu)-4*f*p*a[1]-6*k*l*a[1]-f^3*g*(a[1]*(lambda^2-mu)+3*a[1]*mu+6*a[2]*lambda*mu)+12*f*g*a[0]*a[1])*(diff(G(xi), xi))/G(xi)+f*g^3*(lambda*mu*a[1]+2*mu^2*a[2])-4*f*p*a[0]-6*k*l*a[0]-f^3*g*(lambda*mu*a[1]+2*mu^2*a[2])+6*f*g*a[0]^2 = 0

(4)

L1 := %

num := numer(lhs(L)); num := expand(num); num_collected := collect(num, [1/(diff(G(xi), xi)), G(xi)]); eqs := [seq(coeff(num_collected, {1/(diff(G(xi), xi)), G(xi)}, i) = 0, i = 0 .. 8)]

[(-6*f^3*g*a[2]+6*f*g^3*a[2]+6*f*g*a[2]^2)*(diff(G(xi), xi))^4+(-10*f^3*g*lambda*a[2]+10*f*g^3*lambda*a[2]-2*f^3*g*a[1]+2*f*g^3*a[1]+12*f*g*a[1]*a[2])*G(xi)*(diff(G(xi), xi))^3+(-4*f^3*g*lambda^2*a[2]+4*f*g^3*lambda^2*a[2]-3*f^3*g*lambda*a[1]-8*f^3*g*mu*a[2]+3*f*g^3*lambda*a[1]+8*f*g^3*mu*a[2]+12*f*g*a[0]*a[2]+6*f*g*a[1]^2-4*f*p*a[2]-6*k*l*a[2])*G(xi)^2*(diff(G(xi), xi))^2+(-f^3*g*lambda^2*a[1]-6*f^3*g*lambda*mu*a[2]+f*g^3*lambda^2*a[1]+6*f*g^3*lambda*mu*a[2]-2*f^3*g*mu*a[1]+2*f*g^3*mu*a[1]+12*f*g*a[0]*a[1]-4*f*p*a[1]-6*k*l*a[1])*G(xi)^3*(diff(G(xi), xi))+(-f^3*g*lambda*mu*a[1]-2*f^3*g*mu^2*a[2]+f*g^3*lambda*mu*a[1]+2*f*g^3*mu^2*a[2]+6*f*g*a[0]^2-4*f*p*a[0]-6*k*l*a[0])*G(xi)^4 = 0, 0 = 0, 0 = 0, 0 = 0, 0 = 0, 0 = 0, 0 = 0, 0 = 0, 0 = 0]

(5)

Download collect-coe.mw

Please Wait...