# numeric approximation??

So I have an equation that solved (symbolically) looks something like this:

r == 1/488486532917088881338043645348028612608*sqrt(1271541785242875384103984923680382406444427305742938801212457) - 80406364132947/169706962694363951398912

and when I do anything to evaluate this numerically I get a TypeError? Right now I am copying and pasting this output into wolfram alpha, but really there has to be a better way?

Furthermore if I try to evaluate the equation with find_root(...) I get this error:

File "expression.pyx", line 984, in sage.symbolic.expression.Expression.__float__ (sage/symbolic/expression.cpp:5596) TypeError: unable to simplify to float approximation

?!

edit retag close merge delete

Sort by » oldest newest most voted My guess is that you're trying to call .n() or float not on the number but on the _equation_. For example:

sage: ans = solve((x-11/sqrt(13))**2,x)
sage: ans
[x == 11/13*sqrt(13)]
sage: ans
x == 11/13*sqrt(13)
sage: ans.n()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
[...]
/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._numerical_approx (sage/symbolic/expression.cpp:17880)()
TypeError: cannot evaluate symbolic expression numerically


You really want to get at the expression on the right:

sage: ans.rhs().n()
3.05085107923876


or maybe

sage: ans = solve((x-11/sqrt(13))**2,x,solution_dict=True)
sage: ans
{x: 11/13*sqrt(13)}
sage: ans[x]
11/13*sqrt(13)
sage: ans[x].n()
3.05085107923876

more

Wow thanks. Worked like a charm. I was thinking that may be my problem, but didn't know how to access that. Thanks again.