运行时警告:arccos中遇到无效值

2024-09-30 18:13:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用Python,但相处得还不错。我不断得到错误,你看到下面,不确定是什么问题,正如我认为的价值观是正确的和声明。你认为问题到底是什么?我试图从t=0到t=PM作图,下面的公式是角arccos。

联机找不到此arccos错误的疑难解答。运行Python3.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))

Tags: fromimportnumpy声明matplotlibas错误np
2条回答

np.arccos()函数只能接受介于-11之间的值(包括)。

见:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.arccos.html

如果你简化成

np.arccos(90)

(这是数组中传递给arccos的第一个元素),您将得到相同的警告

为什么?arccos()试图解决其中的cos(x) = 90。但是,这样的值没有意义,因为它是outside of the possible domain for arccos[-1,1]

还要注意,至少在最新版本的numpy中,这个计算返回nan

>>> import numpy as np
>>> b = np.arccos(90)
__main__:1: RuntimeWarning: invalid value encountered in arccos
>>> b
nan

相关问题 更多 >