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()
は、cos(x) = 90
のxを解こうとします。ただし、そのような値は、 arccosの可能なドメイン外 _[-1,1]
_であるため、意味がありません。
また、少なくとも最近のバージョンのnumpyでは、この計算は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