gpt4 book ai didi

python scipy.optimize 曲线拟合只有两点

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:35 24 4
gpt4 key购买 nike

我只想为两个数据点拟合幂律模型 (x**m * c) 以找出斜率 m。我正在使用 scipy.optimize 中的 curve_fit 函数来解决这个问题。现在,当我运行以下代码时

import numpy as np
from scipy.optimize import curve_fit
func = lambda x, m, c: x**m * c
xdata = np.array([235e6, 610e6])
ydata = np.array([0.077, 0.054])
err = np.array([0.0086, 0.0055])
coeff, var = curve_fit(func, xdata, ydata, sigma=err)
print(coeff, var)

它成功返回 m 的值,即 coeff[0]。但是 var 的值是 [[ inf inf] [ inf inf]]。因为只有两个数据点有什么问题吗?它无法计算最佳拟合参数值的协方差?那么如何计算m中的误差呢?

最佳答案

你有两个自由参数和两个数据点,所以这个问题是欠约束的。您的拟合曲线完美无误地通过了两个数据点,因此优化器无法计算参数的协方差。

关于python scipy.optimize 曲线拟合只有两点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com