長さ 100 のデータセットと不確実性の両方の単一配列があります。長さ 100 の「モデル」配列もあります。目標: このモデル配列の 1 つのパラメーター (振幅のスケーリング) のみを最適化して、不確実性を考慮してデータをより適切に適合させます。
これまで私は試しました:
def residual(params, x, data, eps_data):
amp = params['amp'].value
model = amp * x
return (data - model)/eps_data
params = Parameters()
params.add('amp',value=100)
out = minimize(residual,params,args=(mod_array,data_array,unc_array))
次に、最適な値の振幅を元のモデル配列で乗算します。
fit = params['amp'].value*mod_array
次に、元のデータセットに適合をプロットすると、まったくひどいものに見えます。モデルがデータの近くにあることさえわかりません。コード/アルゴリズムの何が問題になっていますか?