1
我使用與SciPy的蟒蛇編寫一些代碼來收斂笛卡爾座標開普勒元素和其他方式輪。蟒蛇scipy.optimize.newton說,它不收斂,但它似乎因爲它會
用於轉換笛卡爾開普勒我用下面的表達式:
E = scopt.newton(self.f, self.M, self.df, args=(), tol=10^(-10), maxiter=10000)
與
self.f = lambda x: x-self.e*scipy.sin(x)-self.M
self.df= lambda x: 1-self.e*scipy.cos(x)
當運行整個代碼中,我得到的錯誤:
RuntimeError: Failed to converge after 10000 iterations, value is 5.25182613825
如果我運行它爲更少的迭代(50),我得到:
RuntimeError: Failed to converge after 50 iterations, value is 5.25182613825
比較這顯然收斂了兩個值。即使我將容差降低到10 ^( - 2),我仍然會得到相同的運行時錯誤。
有誰知道爲什麼這個錯誤發生?
如果你運行了51次迭代,你會得到相同的值嗎?還是它翻轉了兩個值? – WolframH 2012-02-13 13:12:29
RuntimeError:經過51次迭代後收斂失敗,值爲5.25182613825所以它是相同的值... – 2012-02-13 13:21:24
是5.25182613825是一個正確的解決方案嗎? self.e和self.M的價值是什麼? – 2012-02-13 13:29:36