python 多项式拟合和导数
python polynomial fitting and derivatives
我正在尝试重新实现我在论文中读到的方法,但不确定如何执行它的某些方面。它基于最小二乘多项式拟合及其导数。
我的输入数据是这样的:
x = [ 421.25571634 426.25279224 431.24986815 436.24694405 441.24401995
446.24109586 451.23817176 .............. 621.13875245 626.13582836
631.13290426 636.12998016 641.12705606 646.12413197]
y = [ 0.02931459 0.03093554 0.03563261 0.03440331 0.03535223 0.03594375
0.03639583 .......... 0.0525954 0.05118096 0.05143359 0.05036936
0.04952418 0.04774826]
我可以使用以下方法拟合 5 阶最小二乘多项式:
coeffs = numpy.polyfit(x, y, 5)
ffit = numpy.poly1d(coeffs)
并且可以使用 matplotlib 绘制它。
适合 returns 我:
5 4 3 2
6.267e-12 x - 1.642e-08 x + 1.709e-05 x - 0.008833 x + 2.266 x - 231.1
但是,我想找到它的一阶导数并绘制这条线。有没有 pythonic 方法可以做到这一点?我有很多数据,因此需要尽可能自动化。我了解差异化,但不确定如何在 python.
中做到这一点
您可以使用 fderiv = ffit.deriv()
。这将 return 类型 poly1d
的导数。
我正在尝试重新实现我在论文中读到的方法,但不确定如何执行它的某些方面。它基于最小二乘多项式拟合及其导数。
我的输入数据是这样的:
x = [ 421.25571634 426.25279224 431.24986815 436.24694405 441.24401995
446.24109586 451.23817176 .............. 621.13875245 626.13582836
631.13290426 636.12998016 641.12705606 646.12413197]
y = [ 0.02931459 0.03093554 0.03563261 0.03440331 0.03535223 0.03594375
0.03639583 .......... 0.0525954 0.05118096 0.05143359 0.05036936
0.04952418 0.04774826]
我可以使用以下方法拟合 5 阶最小二乘多项式:
coeffs = numpy.polyfit(x, y, 5)
ffit = numpy.poly1d(coeffs)
并且可以使用 matplotlib 绘制它。
适合 returns 我:
5 4 3 2
6.267e-12 x - 1.642e-08 x + 1.709e-05 x - 0.008833 x + 2.266 x - 231.1
但是,我想找到它的一阶导数并绘制这条线。有没有 pythonic 方法可以做到这一点?我有很多数据,因此需要尽可能自动化。我了解差异化,但不确定如何在 python.
中做到这一点您可以使用 fderiv = ffit.deriv()
。这将 return 类型 poly1d
的导数。