Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python math domain error using math.acos function [closed]

Tags:

python

I am using math.acos() function :

math.acos(1.0000000000000002)

This throws a math domain error. Can someone tell the reason? I am getting this value calculated before and here this value gives error but if I remove 2 at the end it does not throw error. I did not get the reason to this.

like image 220
shalki Avatar asked Jun 20 '15 14:06

shalki


Video Answer


2 Answers

You are trying to do acos of a number for which the acos does not exist.

Acos - Arccosine , which is the inverse of cosine function.

The value of input for acos range from -1 <= x <= 1 .

Hence , when trying to do - math.acos(1.0000000000000002) you are getting the error.

If you try higher numbers, you will keep getting the same error - math.acos(2) - leads to - ValueError: math domain error

like image 199
Anand S Kumar Avatar answered Oct 18 '22 02:10

Anand S Kumar


Inverse cosine is defined only between -1 and 1, inclusive. The arc-cosine of 1.0000000000000002 has no mathematical or semantic meaning other than "does not exist" or "undefined".

Of course, since inverse cosine of 1 does exist, acos(1) doesn't throw any error.

like image 37
nanofarad Avatar answered Oct 18 '22 00:10

nanofarad