It's plotting via matplotlib, perhaps that's why the precision setting is
ignored (or pehaps something like RDF is hardcoded in Sage plotting code)


On Tue, Dec 6, 2022 at 12:53 PM Emmanuel Charpentier <
emanuel.charpent...@gmail.com> wrote:

> Question already asked on |`ask.sagemath.org`](
> https://ask.sagemath.org/question/64934/plotting-ill-conditionned-function/),
> where it didn't attract a lot of attention...
>
> Let
>
> ```
> sage: f(x)=log(tan(pi/2*tanh(x))).diff(x) ; f
> x |--> -1/2*pi*(tan(1/2*pi*tanh(x))^2 + 1)*(tanh(x)^2 -
> 1)/tan(1/2*pi*tanh(x))
> ```
>
> It can be shown (see Juanjo's answer [here](
> https://ask.sagemath.org/question/64794/inconsistentincorrect-value-of-limit-involving-tan-and-tanh/))
> that this finction's limit at `x=oo` is 2.
>
> A couple CASes are wrong about it :
>
> ```
> sage: f(x).limit(x=oo)
> 0
> sage: f(x).limit(x=oo, algorithm="maxima")
> 0
> ```
>
> A couple get it right :
>
> ```
> sage: f(x).limit(x=oo, algorithm="giac")
> 2
> sage: f(x).limit(x=oo, algorithm="mathematica_free")
> 2
> ```
>
> And Sympy currently never returns.
>
> A "naïve" way to explore this is to assess the situation is to look for
> numerical values :
>
> ```
> plot(f, (1, 30))
> ```
> [image: tmp_bnpx6r7n.png]
>
> This plot hints at ill-conditionong of the epression of the function. And
> it turns out that this ill-conditioning can be overcome by specifying an
> "absurd" precision :
>
> ```
> sage: f(30).n()
> -0.000000000000000
> sage: f(30).n(digits=30)
> 1.99999483984586167962667231030
> ```
>
> But `plot` seems to *ignore* this specification :
>
> ```
> sage: plot(lambda u:f(u).n(digits=30), (1, 30))
> ```
>
> [image: tmp_jeq3c8ko.png]
>
> We can try to "isolate" the precision specification in a Python function,
> which seems to work :
>
> ```
> sage: def foo(x): return RR(f(x).n(digits=30))
> sage: foo(30)
> 1.99999483984586
> ```
>
> but is still defeated byr the inner gears of `plot` :
>
> ```
> sage: plot(foo, (1, 30))
> ```
>
> [image: tmp_dg2gelpc.png]
>
> Why, Ô why ???
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-support/db271244-0ad7-4484-8a46-bdc4b1edd0f0n%40googlegroups.com
> <https://groups.google.com/d/msgid/sage-support/db271244-0ad7-4484-8a46-bdc4b1edd0f0n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CAAWYfq2wmF1jUH85LVFzjO33LxBr%2BxvSg4dYJ9mSSxNwXzz4FA%40mail.gmail.com.

Reply via email to