我怀疑函数的形式为。我可以访问的几个值。如何以数字方式查找参数?
通过为固定绘制与,我会得到一条线性曲线,这会给我找到的希望。但是现在获得超出了我的范围。
我怀疑函数的形式为。我可以访问的几个值。如何以数字方式查找参数?
通过为固定绘制与,我会得到一条线性曲线,这会给我找到的希望。但是现在获得超出了我的范围。
通常,您可以将其表述为非线性最小二乘问题。如果您的值在点处已知,并且已知值为,那么您可以最小化
Levenberg-Marquardt 方法通常用于解决此类非线性最小二乘问题。您可以在许多软件包中找到实现。
如果可以推荐使用 Python 和 SciPy 的解决方案,您可以使用curve-fitscipy 中的函数来完成这项工作。
import scipy.optimize as op
import numpy as np
def func(xydata,a,b,c,d,e):
x = xydata[:,0]
y = xydata[:,1]
return a*(b*x + c)**(d*y + e)
# Assuming you have your f(x,y) data in a file with
# three columns separated by comma e.g. x1,y1,f1
data = np.loadtxt('data.txt',delimiter=',')
xydata = data[:,0:2] # the first two columns
fdata = data[:,2] # the last column
# Use scipy to calculate the optimum parameter values
p_opt, p_conv = op.curve_fit( func, xydata, fdata )
print(popt)