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