x値とy値に依存するz値を計算するPythonコードがあります。私は7つのx値と7つのy値と49のz値を持っています。Pythonで多項式面にフィット
ここで、次数2の多項式面をz = f(x、y)の形でフィットさせたいと思います。この目的を達成するMatlabコマンドを見つけました。 (https://www.mathworks.com/help/curvefit/fit.html)
load franke
sf = fit([x, y],z,'poly23')
plot(sf,[x,y],z)
しかし、私は、Pythonと私の2次関数のパラメータを計算したいと思います。私は、次のフィット機能をscipyのダウンロードcurve_fit機能を使用しようとしました:
def func(a, b, c, d ,e ,f ,g ,h ,i ,j, x, y):
return a + b * x**0 * y**0 + c * x**0 * y**1 + d * x**0 * y**2
+ e * x**1 * y**0 + f * x**1 * y**1 + g * x**1 * y**2
+ h * x**2 * y**0 + i * x**2 * y**1 + j * x**2 * y**2
guess = (1,1,1,1,1,1,1,1,1,1)
params, pcov = optimize.curve_fit(func, x, y, guess)
しかし、この時点で私は混乱していますと、これは私のフィット関数のパラメータを取得するための正しいアプローチであれば、私は、わかりません。この問題の別の解決方法がありますか?どうもありがとう!