2

現在、曲線を大量のデータ セットに当てはめようとしています。x と y の 2 つの配列があり、それぞれ 352 個の要素があります。多項式をデータに当てはめましたが、うまくいきます。

import numpy as np
import matplotlib.pyplot as plt
coeff=np.polyfit(x, y, 20)
coeff=np.polyfit(x, y, 20)
poly=np.poly1d(coeff)

しかし、より正確に最適化された曲線が必要なので、scipy で曲線を当てはめようとしています。これが私がこれまでに持っているコードです:

import numpy as np
import scipy
from scipy import scipy.optimize as sp
coeff=np.polyfit(x, y, 20)
coeff=np.polyfit(x, y, 20)
poly=np.poly1d(coeff)
poly_y=poly(x)
def poly_func(x): return poly(x)
param=sp.curve_fit(poly_func, x, y)

しかし、それが返すのはこれだけです:

ValueError: Unable to determine number of fit parameters.

どうすればこれを機能させることができますか? (または、このデータに曲線を当てはめるにはどうすればよいですか?)

4

1 に答える 1

3

フィット関数は意味がありません。フィットするのにパラメーターは必要ありません。

カーブ フィットは非線形オプティマイザーを使用します。これには、フィッティング パラメーターの初期推定が必要です。推測が与えられない場合、イントロスペクションを介してパラメーターの数を決定しようとしますが、これは関数では失敗し、それらを 1 に設定します (ほとんど望んでいないことです)。

于 2011-07-28T06:01:45.350 に答える