基于最小二乘法二阶拟合一维数据
工程实践中,很多量测数据的波形存在丢帧,尖凸,噪声。直接使用该量测数据,就不可避免的带来抖动,震荡甚至是发散。因此对数据滤波就十分必要。此处介绍一种对一维量测数据滤波,徒手计算二阶拟合参数的方法,最小二乘法。方法出处,见附录论文。
幂级数二阶拟合和对应参数变量
二阶拟合公式 yi=α+φ∗xi+ξ∗xi2y{i} = α + φ*x{i} + ξ*x{i}^2yi=α+φ∗xi+ξ∗xi2 其中 i=1、2、3....ni=1、2、3....ni=1、2、3....n 。
中间变量b、c、d、e、f、g、hb、c、d、e、f、g、hb、c、d、e、f、g、h计算如下:
Σxi=b,Σyi=c,Σxi2=d,Σxi⋅yi=e,Σxi3=f,Σxi4=g,Σxi2⋅yi=h
Σ xi=b,
Σ yi=c,
Σxi^2 =d,
Σ xi·yi=e,
Σxi^3=f,
Σxi^4=g,
Σxi^2·yi=h
Σxi=b,Σyi=c,Σxi2=d,Σxi⋅yi=e,Σxi3=f,Σxi4=g,Σxi2⋅yi=h
由上面的中间计算值,进而求出二阶拟合公式的系数α、φ、ξα、φ、ξα、φ、ξ。
其中,n表示xxx的维数。
高阶拟合中关键矩阵
高阶拟合中的推导矩阵如下所示,其中左侧系数矩阵经转化后能够移到右侧。
若将上述矩阵简化(对xixixi有非零要求),可得如下矩阵。
同样的方法,将上述第二个矩阵简化后就会得到系数a0、a1、a2...ana0、a1、a2...ana0、a1、a2...an。进而得到拟合函数y=a0+a1∗x+a2∗x2...an∗xny = a0+a1*x+a2*x^2...an*x^ny=a0+a1∗x+a2∗x2...an∗xn。
二阶拟合温度曲线实例
matlab示例代码
add you code here
C示例代码
add you code here
python示例代码
add you code here
附录:
[01] 最小二乘法曲线拟合及优化算法研究 《工业控制计算机》