[Scilab-users] Problems arising from truncation of %pi

Federico Miyara fmiyara at fceia.unr.edu.ar
Fri Jan 8 01:03:10 CET 2021


Stéphane,

This would be great if it worked for any x. When x is close to 1e16 
there are few valid numbers per cycle. For instance

x(1) = 1e16
for k=1:5
     x(k+1) = nearfloat("succ",x(k));
end
x

yields (with format(25))

    10000000000000000.
    10000000000000002.
    10000000000000004.
    10000000000000006.
    10000000000000008.
    10000000000000010.

Those few numbers have each a definite exact value and sin(x) has also a 
definite exact value which seemingly is already well approximated, 
unlike what I had previously supposed. For instance

[x sin(x)]

yields

10000000000000000.   0.779688006606978_7_8957
    10000000000000002.  -0.893837828765730_5_909519
    10000000000000004.  -0.035752436952928_5_263036
    10000000000000006.   0.923594355839355_2_299535
    10000000000000008.  -0.732949301917758_3_112977
    10000000000000010.  -0.313565289154332_2_384749

I have underlined the last correct digit compared with Alpha, so it is 
the expected result with 16 digits.

Regards,

Federico Miyara


On 06/01/2021 05:49, Stéphane Mottelet wrote:
> x = (10^[1:16])*%pi
> sx = sin(x-floor(x/2/%pi)*%pi*2)
> plot("ln",x,sin(x),'-o',x,sx,'-o')
> legend("$\Large\sin x$","$\Large\sin 
> \left(x-2\pi\left\lfloor\frac{x}{2\pi}\right\rfloor\right)$",3)



-- 
El software de antivirus Avast ha analizado este correo electrónico en busca de virus.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20210107/6974483c/attachment.htm>


More information about the users mailing list