Ask Your Question
0

Problem with sign / sgn and .n()

asked 2011-12-06 15:28:55 +0100

Louis Cypher gravatar image

updated 2023-01-09 23:59:33 +0100

tmonteil gravatar image

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.

edit retag flag offensive close merge delete

Comments

1

That looks like a bug to me. I'll see if I can track it down and file a bug report.

benjaminfjones gravatar imagebenjaminfjones ( 2011-12-06 18:57:17 +0100 )edit
1

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!

kcrisman gravatar imagekcrisman ( 2011-12-06 20:37:42 +0100 )edit

Thanks for the answers. Would you mind explaining me what a SD 35.5. fodder ist?

Louis Cypher gravatar imageLouis Cypher ( 2011-12-22 15:28:55 +0100 )edit

@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

DSM gravatar imageDSM ( 2011-12-22 15:57:54 +0100 )edit

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.

Louis Cypher gravatar imageLouis Cypher ( 2011-12-22 17:37:56 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2014-06-29 18:17:39 +0100

rws gravatar image

I have reported this as http://trac.sagemath.org/ticket/16587

edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 2011-12-06 15:28:55 +0100

Seen: 740 times

Last updated: Jun 29 '14