Problem with sign / sgn and .n()
I have an urgent problem with the sign function. I have done a symbolic calculation and want to evaluate the result numerically. The symbolic terms have a sgn() function within, which gives me an error when I try to evaluate the expression numerically. Please find the error below. I do not have the slightest ideas why sage can not evaluate that (simple) expression:
sign(1050*cos(61075634/181449129) + 900).n()
How can i solve that problem?
Thanks a lot in advance,
Best Markus
Error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_60.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + .....
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File "/tmp/tmp4W3s9l/___code___.py", line 4, in <module>
exec compile(u'qwer.n()
File "", line 1, in <module>
File "expression.pyx", line 4053, in sage.symbolic.expression.Expression._numerical_approx (sage/symbolic/expression.cpp:17894)
TypeError: cannot evaluate symbolic expression numerically
edit by kcrisman: Here's a minimal example:
sage: M = sgn(cos(3/2))
sage: M.n()
It doesn't suffice to do sgn(cos(1))
, because that turns out to be 1
.
That looks like a bug to me. I'll see if I can track it down and file a bug report.
Yup. Problem seems to be that in `M.n??` we see that it's looking for `is_a_numeric(x._gobj)` but apparently that fails, as does the constant, so it thinks we are looking at evaluating `sgn(cos(x))` instead of `sgn(cos(3/2))`. Hopefully Burcin will see this and magically know the answer :) But otherwise it's SD 35.5 fodder!
Thanks for the answers. Would you mind explaining me what a SD 35.5. fodder ist?
@Louis Cypher: "SD" stands for Sage Days, workshops at which Sage development is done. Fodder is food for animals, or in this context "something to do at the workshop". See http://wiki.sagemath.org/days35.5
OK, thanks. This : http://ask.sagemath.org/question/1014/pi-and-e-not-evaluated-when-i-use-my-own-classes might be a related problem. There are also some sage constants that are not evaluated at all.