我是python的新手,一直無法弄清楚如何解決這個問題。我正在嘗試爲數組中的每個值進行迭代,並返回最終值數組。 e是用戶輸入的單個值,而M是長度可變的數組。我試圖循環針對E的每個值迭代,直到它緊密地解決了開普勒方程式,M =的Ee *罪(E),然後返回各自E的成品數組給M.數組的Python ValueError abs
def eccano(e, M):
E=M
for i in range(0,len(M)):
while abs(E-e*sin(E)-M[i]) > 10**(-4):
E=E-((E-e*sin(E)-M[i])/(1-e*cos(E)))
return E
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ME.py", line 7, in eccano
while abs(E-e*sin(E)-M[i]) > 10**(-4):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
任何意見?謝謝!
你想解決什麼問題?你期望這段代碼能做什麼? (考慮你問一個具體的問題要比徵求建議好得多) –
由於'E = M',你是否嘗試過使用'E [i]'? (E [i] -e * sin(E [i]) - M [i])> 10 **( - 4):...' –
e和M的類型和形狀是什麼? – Benjamin