Skip to content

strange result of acos

3 messages · Klaus-Peter Pleissner, (Ted Harding)

#
Hi all,

I have to calculate an expression using acos -function.  A strange 
result of acos appears

*1. case with error*

ss <- sin(10.74*pi/180)**2 
+(cos(10.74*pi/180)*cos(10.74*pi/180)*cos(0*pi/180))
 ss
 acos(ss)


[1] NaN
Warning message:
NaNs produced in: acos(ss)

*2. case without  error*

 ss <- sin(10.7*pi/180)**2 
+(cos(10.7*pi/180)*cos(10.7*pi/180)*cos(0*pi/180))
 ss
 acos(ss)



In both cases the variable ss equals 1.   I  think there is a problem 
with precision. If I multiply ss  by 0.999999999  (ss*0.99999999) no 
error occurs.  How  the results can be explained ?

Regards

Klaus-P.
#
On 29-Mar-05 Klaus-Peter Pleissner wrote:
The explanation is:

sin(10.74*pi/180)**2
+(cos(10.74*pi/180)*cos(10.74*pi/180)
*cos(0*pi/180))
-1

[1] 2.220446e-16

I.e. the expression, as internally evaluated, is very
slightly greater than 1. When you multiply ss by
0.999999999, you bring it back down a bit.

Theoretically, of course, it is sin(t)^2 + cos(t)^2,
which should be exactly 1, but you can't count on it
in digital computation. As you suspected, it is indeed
a question of precision.

Best wishes,
Ted.


--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 29-Mar-05                                       Time: 11:59:28
------------------------------ XFMail ------------------------------
#
On 29-Mar-05 Ted Harding wrote:
Just to make more explicit what's happening here:

t<-0.01*(0:200)*pi

sin(t)^2 + cos(t)^2 -1
##[output omitted]

unique(sin(t)^2 + cos(t)^2 -1)
##[1]  0.000000e+00 -1.110223e-16  2.220446e-16

2^(-53)
##[1] 1.110223e-16

so the error is either +2^(-52) or -2^(-53)

Best wishes,
Ted.


--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 29-Mar-05                                       Time: 12:27:11
------------------------------ XFMail ------------------------------