-
-
Notifications
You must be signed in to change notification settings - Fork 721
Closed
Description
Maxima returns solutions to some exponential equations in terms of the lambert_w function. Sage is missing a conversion for this function:
sage: solve(e^(5*x)+x==0, x, to_poly_solve=True)
[x == -1/5*lambert_w(5)]
sage: S = solve(e^(5*x)+x==0, x, to_poly_solve=True)
sage: z = S[0].rhs()
sage: z
-1/5*lambert_w(5)
sage: N(z)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/Users/jonesbe/sage/sage-4.7.2.alpha2/devel/sage-test/sage/<ipython console> in <module>()
/Users/jonesbe/sage/latest/local/lib/python2.6/site-packages/sage/misc/functional.pyc in numerical_approx(x, prec, digits)
1264 prec = int((digits+1) * 3.32192) + 1
1265 try:
-> 1266 return x._numerical_approx(prec)
1267 except AttributeError:
1268 from sage.rings.complex_double import is_ComplexDoubleElement
/Users/jonesbe/sage/latest/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._numerical_approx (sage/symbolic/expression.cpp:17950)()
TypeError: cannot evaluate symbolic expression numerically
sage: lambert_w(5)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/Users/jonesbe/sage/sage-4.7.2.alpha2/devel/sage-test/sage/<ipython console> in <module>()
NameError: name 'lambert_w' is not defined
sage:
mpmath can evaluate the lambert_w function, so it should be easy to add a new symbolic function to Sage that will fix this issue.
Apply:
- attachment: trac_11888_v8.patch to
$SAGE_ROOT/devel/sage
CC: @kcrisman @sagetrac-ktkohl
Component: symbolics
Keywords: lambert_w symbolics conversion maxima sd35.5 sd40.5
Author: Benjamin Jones
Reviewer: Keshav Kini, Karl-Dieter Crisman, Fredrik Johansson, Burcin Erocal, Douglas McNeil, William Stein
Merged: sage-5.1.beta4
Issue created by migration from https://trac.sagemath.org/ticket/11888