Thanks! This is very helpful. On Mon, Jul 5, 2021 at 9:12 AM Nils Bruin <nbr...@sfu.ca> wrote:
> A workaround and general principle: if at all possible, avoid using the > "symbolic ring", particularly if you're interested in numerical > approximations anyway. Having all the overhead of SR involved will show > down your computation considerably -- and, as you can see, can lead to > unstable numerical schemes. > > In your case, the symbolic ring gets involved by mentioning "pi". You > could do instead > > RR = RealField(100) #by default this is 53, which is fine too > (-12.0*RR.pii()).exp() #sage has "float literals" which deals with the > precision ambiguity in this notation > > A little more mathematical-looking notation: > > exp(-12.0 * RR.pi() ) > exp(-12.0 * RR(pi)) # this still involves SR, but only minimally > > Evaluating this expression should of course just work with pretty much any > precision: exp is very well approximated. Rewriting it as a difference of > hyperbolic functions is just obviously a bad idea. The reason why the SR > takes such bad decisions may be deeper and more difficult to change. So I > think it's a bug, but it may not be easily fixable. So: stick with the > workaround (which will always be more efficient) > > On Sunday, 4 July 2021 at 23:04:44 UTC-7 Brian Lawrence wrote: > >> >> Hi, >> >> I'm new to Sage, and I'm running across some unexpected behavior >> involving numerical evaluation of exponentials involving pi. >> >> In my version (Sagemath 9.2), the following code >> exp(-12.0*pi).n() >> gives the output below. >> 0.000000000000000 >> >> The true value of the exponential is something like 4e-17: very small, >> but definitely not zero. The problem seems to be that Sage internally >> converts the exponential to a difference (cosh-sinh) of two huge numbers, >> and then precision problems kick in. >> >> This problem has been brought up before... >> https://ask.sagemath.org/question/57182/numerical- >> approximation-error-involving-cosh-and-sinh/ >> ... but the folks over there seem to have concluded (for reasons I don't >> understand) that the behavior is not a bug at all. >> >> Brian Lawrence >> >> 'SageMath version 9.2, Release Date: 2020-10-24' >> >> (P.S. I ran across this trying to do some computations with q-expansions >> of modular forms, where these sorts of exponentials are quite common.) >> >> (P.P.S. Apologies if I'm posting this in the wrong place, I'm new here >> and not familiar with local norms...) >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "sage-devel" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/sage-devel/Ev9dSQNr4ig/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sage-devel+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-devel/aafa3344-60f6-4e0a-bfcd-59074ce15844n%40googlegroups.com > <https://groups.google.com/d/msgid/sage-devel/aafa3344-60f6-4e0a-bfcd-59074ce15844n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAH3mTmahvHTp9Ob%3Dph4bi7tz8hYDOrxONaNWwYx2J7mWNUGyTg%40mail.gmail.com.