RuntimeWarning: invalid value encountered in den arccos
Ich bin neu in Python benutzen, aber immer zusammen mit es Recht gut. Ich erhalte die Fehlermeldung siehe unten und nicht sicher, was das problem genau ist, wie ich glaube, dass die Werte korrekt sind und angegeben werden. Was denkst du, was das problem genau ist? Ich versuche graph von t = 0 bis t=PM, und die Formel, die Sie unten sehen, ist der Winkel arccos.
Nicht finden konnte, die Problembehandlung dieses arccos Fehler online. Ausführen Von 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 ist nur in dem definierten Bereich
[-1,1]
. Siehe "Domäne" in der numpy-docs. Sie füttern es eine Zahl > 1. - Ich kam hier her, weil manchmal die Eingabe arccos war nur wenig größer als 1 ist. (aufgrund der numerischen Genauigkeit). Ich löste es mit dem np.arccos(np.minimum(1, array))
- Alternative zu @gota, welche Konten für negative Werte zu:
np.arccos(np.around(array,4))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, wenn Sie
(das ist Ihr erstes element), erhalten Sie die gleiche Warnung - Vereinfachung deinem Beispiel deutlich.
Warum ist das so? Die arccos-Funktion ist die x für die cos(x) = 90. Von basic trignometry, man kann sagen, es ist keine solche Wert.
Den
np.arccos()
Funktion kann nur Werte zwischen-1
und1
inklusive.Finden Sie unter: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.arccos.html