python - 用附加函数拟合多项式
问题描述
假设我有一个名为的数组Y
和另一个名为X
. 我知道如何使用numpy.polyfit()
和作为输出来拟合多项式,我将得到一个带有系数的数组。但是如果我想添加一些函数f(x)
作为多项式的附加回归量,我该如何在 python 中做到这一点?
例如Y = [1,2,3,4,5,6]
,X = [101,102,103,104,105,106]
。我知道如何估计y = a_0+a_1x+a_2x^2+a_3x^3
(3 阶多项式)的系数,我可以使用z = numpy.polyfit(Y, X, 3)
. 现在,我想估计一些功能y = a_0+a_1x+a_2x^2+a_3x^3 + a_4f(x)
在哪里。f(x)
我是 Python 新手,在 Google 上找不到答案
解决方案
scipy.optimize.curve_fit
就是你要找的。它可以采用任意函数,因此您可以在该函数中定义多项式项和额外函数项。
def f(x, a0, a1, a2, a3, a4):
func_term = np.exp(-abs(x)) # can be anything you need
return a0 + a1 * x + a2 * x**2 + a3 * x**3 + a4 * func_term
然后拟合曲线:
popt, _ = curve_fit(f, xdata, ydata)
推荐阅读
- azure - 如何设置自定义 Azure 403 页面
- git - 使用 DoD 通用访问卡 (GIT) 异地访问 Git - Mac
- bash - Bash AWK 变量替换
- java - Java 客户端在通过 F5 BIG-IP 负载平衡器与 IIS 服务器进行 SSL 握手期间接收“连接重置”
- javascript - javascript 'this' 由调用站点确定
- webpack - 94% 资产优化 ERROR Failed to compile with 1 errors
- javascript - RxJS 5.5+ 中带有管道的多播运算符
- django - `django.db.models.Model` 替换了 `django.db.models.base.Model`
- vba - 构造一个输入值,显示值的单元格,但单元格值是别的什么?
- hyperledger-fabric - 我在 CouchDB 中对目录进行卷,第二次运行“composer network start”时出错