拟合函数,听起来好高大上的样子,其实用人类的话来说就是,我们有一堆点,然后我们想根据这些点找出一个曲线,尽可能地把这些点都覆盖到。那要怎么找出这样一个曲线呢?这就是我们今天要讲的拟合函数的方法。
我们来看一个例子,假设我们有一些坐标点,横坐标是x,纵坐标是y。我们想找出一个曲线,使得这个曲线尽可能地经过这些点。为了实现这个目标,我们可以使用一个叫做polyfit的函数。
polyfit函数,就是用来进行曲线拟合的。它的用法很简单,只需要给它传入两个参数,一个是需要拟合的坐标点,另一个是你要拟合的阶数。那什么是阶数呢?就是你希望用几次多项式来拟合这些点。
举个例子,假设我们有一个x和y的关系的表达式。我们知道x是0到2.5,等差为0.1的一组数,y是根据x计算出来的一组值。现在我们想根据这些点找出一个六次多项式,那么我们就可以用polyfit函数来实现。
polyfit函数返回的是一个系数,这个系数是从高次到低次排列的。因此,如果我们得到的系数是[0.0084, -0.0983, 0.4217, -0.7435, 0.1471, 1.1064, 0.0004],那么我们可以得出这样一个表达式:y = 0.0084x^6 - 0.0983x^5 + 0.4217x^4 - 0.7435x^3 + 0.1471x^2 + 1.1064x + 0.0004。
那么为什么要用多项式来拟合呢?其实并不是阶次越高越好,而是要看拟合的效果。有时候,二次多项式(抛物线)可能拟合得更好。所以在选择阶数的时候要根据具体情况来决定。
其实polyfit背后的原理是最小二乘法曲线拟合。所谓最小二乘法,就是寻找一个解析函数,使得在给定的离散点上尽可能地接近给定的值。也就是说,我们通过这个函数,可以找到一个曲线,使得这个曲线上的点与原始数据点的差距最小。
所以,polyfit函数可以说是非常实用的一个工具,特别是在需要根据已知点找出一个趋势函数的时候。通过调整阶数,我们可以根据不同的数据集来找到适合的拟合曲线。这样,我们就可以更好地预测未知的数据点了。