数値 x、y、z の 3 タプルのリストを生成する Python コードがあります。scipy curve_fit を使用して z= f(x,y) に適合させたいと思います。ここにいくつかの非動作コードがあります
A = [(19,20,24), (10,40,28), (10,50,31)]
def func(x,y,a, b):
return x*y*a + b
この関数をリスト内のデータに適合させるにはどうすればよいA
ですか?
func
はデータ (x と y の両方) でなければなりません。func
パラメータを表す残りの引数。func
したがって、少し変更する必要があります。
def func(data, a, b):
return data[:,0]*data[:,1]*a + b
curve_fit
は関数です。data
(x
およびy
1 つの配列の形式) です。z
) です。a
and ) の値の推測です。b
たとえば、次のようになります。
params, pcov = optimize.curve_fit(func, A[:,:2], A[:,2], guess)
import scipy.optimize as optimize
import numpy as np
A = np.array([(19,20,24), (10,40,28), (10,50,31)])
def func(data, a, b):
return data[:,0]*data[:,1]*a + b
guess = (1,1)
params, pcov = optimize.curve_fit(func, A[:,:2], A[:,2], guess)
print(params)
# [ 0.04919355 6.67741935]