python多项式拟合_python中的多元(多项式)最佳拟合曲线?

对this question的公认回答

提供了

您只需将x和y点的数组以及所需的拟合度(顺序)传递到multipolyfit。这将返回系数,然后可以使用numpy的polyval绘制。

注意:下面的代码已修改为进行多变量拟合,但绘图图像是早期非多变量答案的一部分。import numpy

import matplotlib.pyplot as plt

import multipolyfit as mpf

data = [[1,1],[4,3],[8,3],[11,4],[10,7],[15,11],[16,12]]

x, y = zip(*data)

plt.plot(x, y, 'kx')

stacked_x = numpy.array([x,x+1,x-1])

coeffs = mpf(stacked_x, y, deg)

x2 = numpy.arange(min(x)-1, max(x)+1, .01) #use more points for a smoother plot

y2 = numpy.polyval(coeffs, x2) #Evaluates the polynomial for each x2 value

plt.plot(x2, y2, label="deg=3")

注意:这是之前答案的一部分,如果没有多元数据,它仍然是相关的。使用coeffs = numpy.polyfit(x,y,3),而不是coeffs = mpf(...

对于非多元数据集,最简单的方法可能是使用numpy的^{}:numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)

Least squares polynomial fit.

Fit a polynomial p(x) = p[0] * x**deg + ... + p[deg] of degree deg to points (x, y). Returns a vector of coefficients p that minimises the squared error.

你可能感兴趣的:(python多项式拟合)