私は、デカルト座標をケプラー要素に収束させるコードを書き込むためのscipyを使っています。私はエラーを取得するpython scipy.optimize.newtonは収束しないと言っていますが、それはそうだと思われます
self.f = lambda x: x-self.e*scipy.sin(x)-self.M
self.df= lambda x: 1-self.e*scipy.cos(x)
全体のコードを実行している
E = scopt.newton(self.f, self.M, self.df, args=(), tol=10^(-10), maxiter=10000)
:
RuntimeError: Failed to converge after 10000 iterations, value is 5.25182613825
私が実行している場合、私は次の式を使用しケプラーにデカルト変換するための
それはより少ない繰り返し(50)のために、私は得る:
RuntimeError: Failed to converge after 50 iterations, value is 5.25182613825
2つの値を比較すると、明らかに収束します。許容値を10 ^(-2)に減らしても、私はまだ同じ実行時エラーが発生します。
誰もこのエラーが発生する理由を知っていますか?
51回繰り返し実行すると、同じ値になりますか?それとも、2つの値を反転していますか? – WolframH
RuntimeError:51回の反復後に収束できませんでした。値は5.25182613825なので、同じ値です... –
5.25182613825は正しい解決法ですか? self.eとself.Mの値は何ですか? –