0
、私は、いくつかの2次元データXDATA(floatの配列の配列を)持っている100,9 セカンド形状私はいくつかの2次元のYDATAを持っています。Shape 100,3 私の関数は、9つのエントリと3つのunknowパラメータの配列から3つのエントリの配列を作成します。 だから線形最小二乗を経由して、これらのパラメータを推定しようとしているイム:最小二乗リニアスカラー:scipy.optimize.curve_fit()throws "関数呼び出しの結果が浮動小数点数の適切な配列ではありません。"私は行列式</p> <p>まずための最小二乗誤差を計算している、今のpythonコードを実装しようとしています
#linear regression
#Messured Data
xdata = np.array(data[0:9])
xdata = xdata.astype(np.float)
xdata = np.transpose(xdata)
#True y
ydata = np.array(data[9:12])
ydata = ydata.astype(np.float)
ydata = np.transpose(ydata)
#Timestamps
size = np.size(xdata)/np.size(xdata[0])
def func(xdata,m1,m2,g):
y_est = []
for x in xdata:
u_est = []
u_est.append((m1+m2)*(x[6]+g))
u_est.append(m2*(2*x[5]*x[4]*x[2]+(x[2]**2)*x[7]))
u_est.append(m2*(x[8]-x[2]*(x[4]**2)))
y_est.append(u_est)
y_est = np.array(y_est)
return y_est
print (curve_fit(func,xdata,ydata))
しかし、それは私が(まだ)修正することはできませんよ、エラーがスローされます。 Error
あなたのYデータは多次元であるように見えます。 'curve_fit'は、出力配列が1次元であることを要求します。 [この質問](http://stackoverflow.com/questions/40829791/fitting-a-vector-function-with-curve-fit-in-scipy)または[こちら](http: /stackoverflow.com/questions/21566379/fitting-a-2d-gaussian-function-using-scipy-optimize-curve-fit-valueerror-and-m)。 – BrenBarn
典型的な入力に対して 'func'が生成するものを教えてください。 – hpaulj
funcは、3つのエントリ[x] [3]を持つ配列の配列を生成します。[x] [9] 完全な実行xdataは、xdataの配列エントリごとに計算されたydataを返します。私は与えられていないパラメータ(m1、m2、g)を推定する必要があります。 curve_fitとlstsqは同じエラーを投げます(上記参照) –