【发布时间】:2017-09-13 15:17:30
【问题描述】:
我正在尝试对一些数据进行线性拟合,但我无法在 Python 中使用 curve_fit 来给我任何东西,但斜率和 y 截距为 1。这是我的代码示例:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, a, b):
return a*x + b
# This is merely a sample of some of my actual data
x = [290., 300., 310.]
y = [1.87e+21, 2.07e+21, 2.29e+21]
popt, pcov = curve_fit(func, x, y)
print popt
我也尝试过给 curve_fit 一个“猜测”,但是当我这样做时,它会给我一个溢出错误,我猜这是因为数字太大。
【问题讨论】:
-
当我将你的 y 值除以 1e21 时,我得到的拟合值不是 1。也许你可以拟合更小的 y 值,然后缩放结果
-
curve_fit() 的默认初始参数均为 1.0,因此当无法进行拟合时,只有初始参数估计可用 - 在本例中为所有 1.0。
-
ams,即使我将 1e21 分开,我的斜率仍然为 1。我可以看看你的代码吗?
-
@ams,即使我将 1e21 分开,我的斜率仍然为 1。我可以看看你的代码吗?
-
一定要用
curve_fit吗?
标签: python matplotlib curve-fitting