Ask Your Question

Some equations fail to solve even with to_poly_solve

asked 2012-09-02 18:02:34 -0600

heatkernel gravatar image

updated 2012-09-02 18:25:27 -0600

In the following, I would expect to obtain [z == 1/y*lambda_w(y)]:

sage: z=var('z')
sage: y=var('y')
sage: solve(log(z)+3*z==0, z, to_poly_solve=True)
[z == 1/3*lambert_w(3)]
sage: solve(log(z)+y*z==0, z, to_poly_solve=True)
[z == -log(z)/y]

But Sage doesn't want to solve the equation for z. Perhaps, in view of the fact that it solves the equation when 3 is in place of z, it doesn't realize that y is supposed to represent a real number. I tried assume(y,'real') but that command did not help.

Does anyone know a workaround?

edit retag flag offensive close merge delete



That's a valid observation. Maybe you (or someone) would be willing to post the issue upstream to the Maxima mailing list?

benjaminfjones gravatar imagebenjaminfjones ( 2012-09-02 18:23:03 -0600 )edit

I couldn't even reproduce the correct answers in Maxima, strangely.

kcrisman gravatar imagekcrisman ( 2012-09-04 08:37:06 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2012-09-02 20:15:54 -0600

achrzesz gravatar image

updated 2012-09-02 20:21:46 -0600

Maybe sympy can be helpful?

sage: from sympy import *            
sage: y,z=symbols('y z')             
sage: from sympy.solvers import solve
sage: solve(log(z)+y*z, z)           
edit flag offensive delete link more


thanks, that works.

heatkernel gravatar imageheatkernel ( 2012-09-04 16:53:27 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-09-02 18:02:34 -0600

Seen: 390 times

Last updated: Sep 02 '12