RuntimeWarning:在 arccos 中遇到无效值
RuntimeWarning: invalid value encountered in arccos
我是 Python 的新手,但相处得很好。我不断收到您在下面看到的错误,并且不确定问题到底是什么,因为我相信这些值是正确的和陈述的。你认为问题到底是什么?我正在尝试绘制从 t = 0 到 t=PM 的图表,您在下面看到的公式是角度 arccos。
无法在线找到解决此 arccos 错误的方法。 运行 Python 3.5.
import numpy as np
import matplotlib
from matplotlib import pyplot
from __future__ import division
rE = 1.50*(10**11)
rM = 3.84*(10**8)
PE = 3.16*(10**7)
PM = 2.36*(10**6)
t = np.linspace(0, PM, 200)
# anaconda/lib/python3.5/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in arccos
y = 0.5*(np.arccos(2*(np.pi)*t*((1/PM)-(1/PE))+90))
如果你简化为
np.arccos(90)
(这是传递给 arccos 的数组中的第一个元素),您将收到相同的警告
这是为什么? arccos()
尝试解决 x cos(x) = 90
。但是,这样的值没有意义,因为它是 outside of the possible domain for arccos [-1,1]
另请注意,至少在最新版本的 numpy 中,此计算 returns nan
>>> import numpy as np
>>> b = np.arccos(90)
__main__:1: RuntimeWarning: invalid value encountered in arccos
>>> b
nan
np.arccos()
函数只能取 -1
和 1
之间的值,包括在内。
参见:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.arccos.html
我是 Python 的新手,但相处得很好。我不断收到您在下面看到的错误,并且不确定问题到底是什么,因为我相信这些值是正确的和陈述的。你认为问题到底是什么?我正在尝试绘制从 t = 0 到 t=PM 的图表,您在下面看到的公式是角度 arccos。
无法在线找到解决此 arccos 错误的方法。 运行 Python 3.5.
import numpy as np
import matplotlib
from matplotlib import pyplot
from __future__ import division
rE = 1.50*(10**11)
rM = 3.84*(10**8)
PE = 3.16*(10**7)
PM = 2.36*(10**6)
t = np.linspace(0, PM, 200)
# anaconda/lib/python3.5/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in arccos
y = 0.5*(np.arccos(2*(np.pi)*t*((1/PM)-(1/PE))+90))
如果你简化为
np.arccos(90)
(这是传递给 arccos 的数组中的第一个元素),您将收到相同的警告
这是为什么? arccos()
尝试解决 x cos(x) = 90
。但是,这样的值没有意义,因为它是 outside of the possible domain for arccos [-1,1]
另请注意,至少在最新版本的 numpy 中,此计算 returns nan
>>> import numpy as np
>>> b = np.arccos(90)
__main__:1: RuntimeWarning: invalid value encountered in arccos
>>> b
nan
np.arccos()
函数只能取 -1
和 1
之间的值,包括在内。
参见:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.arccos.html