为什么在 scipy 中优化曲线拟合为这个非线性模型创建一条直线?

用户3626437

我正在尝试将一些数据拟合到与 x 的某个幂成反比的模型中。我查看了一些类似的线程,我认为问题可能与扩展我的数据有关,但我已经尝试过,但不幸的是没有成功。

import numpy as np
import scipy.optimize as optimize
import matplotlib.pyplot as plt

x = np.array([367.18,411.42,443.76,565.22,689.31,778.94,867.38,963.98,1085.79,1112.01,1212.47,1299.21,1408.08,1458.8,1528.76])
y = np.array([17.21,13.38,9.41,11.40,6.40,6.62,6.11,5.50,5.03,4.52,2.34,3.62,3.84,5.97,1.97])

def f(a,n,x1):
    return (a*np.power(x1,-n));

popt, pcov = optimize.curve_fit(f,x,y, diag=(1./x.mean(),1./y.mean()))
x1 = np.linspace(0,1700,num =1700)
plt.plot(x1, f(x1, *popt))
plt.plot(x,y,'ro')
plt.show()
print(popt, pcov)

结果是这样的:Plot

格尔格斯

您对函数的参数有f误。根据 的文档curve_fit

模型函数 f(x, …)。它必须将自变量作为第一个参数,并将要拟合的参数作为单独的剩余参数。

因此,您只需要将参数的顺序更改为f,然后将其x1放在首位:

def f(x1, a,n):
    return (a*np.power(x1,-n))

此外,关于绘图的另一个注意事项,为了能够看到拟合,请使用以下内容定义自变量以绘制曲线,使其适合您的数据范围:

x1 = np.linspace(min(x),max(x),num =1700)

然后你会得到这个数字:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

曲线拟合优化scipy python numpy

来自分类Dev

为什么稍微改变函数会导致scipy的指数曲线拟合有如此大的差异?

来自分类Dev

在Scipy中,为什么idct(dct(a))不等于a?

来自分类Dev

使用Scipy实施Logistic回归:为什么Scipy优化会返回全零?

来自分类Dev

SciPy中的指数曲线拟合

来自分类Dev

为什么不使用Scipy的FFT代码结果与Scipy FFT不一样?

来自分类Dev

R:拟合曲线到点:使用什么线性/非线性模型?

来自分类Dev

为什么GPflow的Scipy优化器与用tf.function装饰优化步骤不兼容?

来自分类Dev

如何判断SciPy中的指数曲线拟合程度如何?

来自分类Dev

如何判断SciPy中的指数曲线拟合程度如何?

来自分类Dev

python numpy / scipy曲线拟合

来自分类Dev

SciPy曲线拟合失败幂律

来自分类Dev

Scipy的最佳曲线拟合极限

来自分类Dev

为什么使用method = nearest的一维scipy.interpolate.griddata会产生nans?

来自分类Dev

为什么在Python中的t检验(scipy,statsmodels)给出的结果与R,Stata或Excel不同?

来自分类Dev

为什么scipy中的χ²检验会返回较少的检验统计量?

来自分类Dev

为什么在mlab和scipy.signal中交叉谱不同?

来自分类Dev

Matlab fsolve工作时,Scipy.optimize.root无法在Python中收敛,为什么?

来自分类Dev

为什么“ scipy.signal.stft()”中的采样频率数量与跳数有关?

来自分类Dev

为什么Scipy stdDev返回错误的结果?

来自分类Dev

为什么Scipy的KDTree这么慢?

来自分类Dev

为什么Scipy stdDev返回错误的结果?

来自分类Dev

为什么我在Mathematica中拟合的非线性模型不能提供小的数字?

来自分类Dev

为什么 scipy.optimize.curce 拟合函数不能正确拟合数据点,为什么要给出大的 pfit 值?

来自分类Dev

非线性函数的Scipy约束优化

来自分类Dev

非线性函数的Scipy约束优化

来自分类Dev

在scipy的ConvexHull中,“区域”测量什么?

来自分类Dev

计算一个numpy数组中的唯一项:为什么scipy.stats.itemfreq这么慢?

来自分类Dev

如何在存在线性背景的情况下使用 scipy 执行高斯曲线拟合?

Related 相关文章

  1. 1

    曲线拟合优化scipy python numpy

  2. 2

    为什么稍微改变函数会导致scipy的指数曲线拟合有如此大的差异?

  3. 3

    在Scipy中,为什么idct(dct(a))不等于a?

  4. 4

    使用Scipy实施Logistic回归:为什么Scipy优化会返回全零?

  5. 5

    SciPy中的指数曲线拟合

  6. 6

    为什么不使用Scipy的FFT代码结果与Scipy FFT不一样?

  7. 7

    R:拟合曲线到点:使用什么线性/非线性模型?

  8. 8

    为什么GPflow的Scipy优化器与用tf.function装饰优化步骤不兼容?

  9. 9

    如何判断SciPy中的指数曲线拟合程度如何?

  10. 10

    如何判断SciPy中的指数曲线拟合程度如何?

  11. 11

    python numpy / scipy曲线拟合

  12. 12

    SciPy曲线拟合失败幂律

  13. 13

    Scipy的最佳曲线拟合极限

  14. 14

    为什么使用method = nearest的一维scipy.interpolate.griddata会产生nans?

  15. 15

    为什么在Python中的t检验(scipy,statsmodels)给出的结果与R,Stata或Excel不同?

  16. 16

    为什么scipy中的χ²检验会返回较少的检验统计量?

  17. 17

    为什么在mlab和scipy.signal中交叉谱不同?

  18. 18

    Matlab fsolve工作时,Scipy.optimize.root无法在Python中收敛,为什么?

  19. 19

    为什么“ scipy.signal.stft()”中的采样频率数量与跳数有关?

  20. 20

    为什么Scipy stdDev返回错误的结果?

  21. 21

    为什么Scipy的KDTree这么慢?

  22. 22

    为什么Scipy stdDev返回错误的结果?

  23. 23

    为什么我在Mathematica中拟合的非线性模型不能提供小的数字?

  24. 24

    为什么 scipy.optimize.curce 拟合函数不能正确拟合数据点,为什么要给出大的 pfit 值?

  25. 25

    非线性函数的Scipy约束优化

  26. 26

    非线性函数的Scipy约束优化

  27. 27

    在scipy的ConvexHull中,“区域”测量什么?

  28. 28

    计算一个numpy数组中的唯一项:为什么scipy.stats.itemfreq这么慢?

  29. 29

    如何在存在线性背景的情况下使用 scipy 执行高斯曲线拟合?

热门标签

归档