多项式拟合
numpy.polyfit = polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)
Least squares polynomial fit.
-
- x: 类数组,形状(M,),表示M个采样点的x坐标
- y: 类似array_,形状为(M,)或(M,K), 表示采样点的y坐标。通过传递每列包含一个数据集的2D数组,可以一次拟合多个共享相同x坐标的采样点数据集
- deg: 度:整数, 表示拟合多项式的度
- full: 开关确定返回值的性质。当它为 False 时 ( default) 仅返回系数,当 True 诊断时 还会返回来自奇异值分解的信息。
- w: 应用于采样点的 y 坐标的权重。为 高斯不确定性,使用 1/sigma(而不是 1/sigma**2)。
- cov: 布尔值,可选。返回估算值和估算值的协方差矩阵。如果full为True,则不返回cov
import numpy as np x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) y = np.array([0.0, 0.8, 0.9, 0.1, - 0.8, - 1.0]) z = np.polyfit(x, y, 3) print(z) >>>[ 0.08703704 -0.81349206 1.69312169 -0.03968254]
即: 0.08703704为最高次x^3的系数,-0.81349206为x^2的系数,1.69312169为x的系数,-0.03968254为常数项
曲线拟合
scipy.optimize.curve_fit = curve_fit(f, xdata, ydata, p0=None, sigma=None, absolute_sigma=False, check_finite=True, bounds=(-inf, inf), method=None, jac=None, **kwargs)
f
: function- 用来拟合数据的函数。函数的第一个参数是自变量,后面的参数是拟合的参数。
xdata
: array_like- 用于拟合的自变量数据。
ydata
: array_like- 用于拟合的因变量数据。
p0
: array_like, optional- 用于初始化拟合参数的数组。如果没有提供,则使用默认值。
sigma
: None or array_like, optional- 用于加权拟合的标准偏差。如果为None,则所有权重都设为1。
absolute_sigma
: bool, optional- 如果为True,并且
sigma
被传入,则估计的协方差将乘以均方根残差,对应于传入sigma
估计的加权协方差。如果为False,则只是估计的协方差。
- 如果为True,并且
check_finite
: bool, optional- 如果为True,则检查
f
和jac
的返回值是否包含无穷或NaN。如果包含,则抛出ValueError。
- 如果为True,则检查
bounds
: 2-tuple of array_like, optional- 每个参数的最小和最大允许值。
method
: str or None, optional- 用于最小化的算法名称。如果为None,则使用默认算法。
jac
: {callable, ‘2-point’, ‘3-point’, ‘cs’, None}, optional- 用于计算雅可比矩阵的函数。
**kwargs
- 其他传递给最小化算法的参数。
返回值popt
是拟合得到的参数,pcov
是拟合参数的协方差矩阵。
t = np.array(list(map(int, x_grow_data_dict.keys()))) v = np.array(list(map(float, x_grow_data_dict.values())) def custom_function(x, r): return np.e**(r*x)/(1-(1 / 2400)*(1 - np.e**(r*x))) popt, pcov = curve_fit(custom_function, t, v)
最新评论