実現したいこと
Excelの累乗近似機能のように、次のx, yの数値をPython(Numpy, Scipy)を使って「y = bx^a + c」の形に累乗近似したいと考えています。
x = (38602.61004, 41670.86138, 45333.78572, 49376.79694, 53348.51068) y = (158489.3192, 125892.5412, 100000, 79432.82347, 63095.73445)
発生している問題・エラーメッセージ
コードを作成し実行しましたが、次のようなエラーが出てしまいます。
Traceback (most recent call last): File "/Users/202305/0502/0502b.py", line 10, in <module> popt, cov = curve_fit(funk_fit, x, y) File "/Users/opt/anaconda3/lib/python3.9/site-packages/scipy/optimize/minpack.py", line 794, in curve_fit raise RuntimeError("Optimal parameters not found: " + errmsg) RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
エラーの意味が分からず、途方に暮れている状況です。
訳すると「最適なパラメータが見つからない」と書いているので、そもそも大事なところで間違っているということでしょうか。。
該当のソースコード
Python
1import numpy as np 2from scipy.optimize import curve_fit 3 4def funk_fit(x, a, b, c): 5 return b*x**a + c 6 7x = np.array([38602.61004, 41670.86138, 45333.78572, 49376.79694, 53348.51068]) 8y = np.array([158489.3192, 125892.5412, 100000, 79432.82347, 63095.73445]) 9 10popt, cov = curve_fit(funk_fit, x, y) 11popt
どの部分にこのエラーの原因があるのでしょうか。どなたか助けていただけると幸いです。
回答2件
あなたの回答
tips
プレビュー