-1

假设我有三个数据集x, y, z

我想拟合一个简单的模型:A*x + B*y + C = z(A、B、C 是常数。)

我怎样才能在 Python 中做到这一点?

我找到了scipy.optimize.curve_fit。但是,它似乎只能采用一个变量:curve_fit(f, xdata, ydata[, p0, sigma]),它适合f(x) = y。我需要的是f(x, y)=z.

在 Mathematica 中,NonLinearModelFit可以完成这项工作。我想知道 Python 中是否有我错过的类似模块。

4

1 回答 1

1

文档建议scipy.optimize.curve_fit确实可以做你需要的。尤其是:

xdata : 长度为 M 的序列或 (k,M) 形数组

对于具有 k 个预测变量的函数。测量数据的自变量。

ydata : M-length 序列

依赖数据——名义上是 f(xdata, ...)

如果您的自变量当前是单独的数组,您可以将它们与np.vstack结合使用:

scipy.optimize.curve_fit(f, np.vstack(x, y), z)
于 2015-03-18T06:32:43.750 回答