【发布时间】:2016-02-10 15:02:55
【问题描述】:
我刚开始使用 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))
【问题讨论】:
-
arccos 仅在
[-1,1]范围内定义。见"domain" in the numpy docs。你喂它一个数字 > 1。 -
我来到这里是因为有时 arccos 的输入仅略大于 1。(由于数值精度)。我用 np.arccos(np.minimum(1, array)) 解决了它
-
@gota 的替代品,它也考虑了负值:
np.arccos(np.around(array,4))
标签: python numpy trigonometry