直线方程:
y
=
a
x
+
b
y=ax+b
y=ax+b
实验测试获得一组数据,记为:
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi)
现需要根据测试数据,求直线方程参数a, b使得该直线最符合实验数据结果,即等价于问题:
m
i
n
a
,
b
Σ
[
y
i
−
(
a
x
i
+
b
)
]
2
\underset{a, b}{min} \Sigma[y_i - (ax_i + b)]^2
a,bminΣ[yi−(axi+b)]2
记:
sum=
Σ
[
y
i
−
(
a
x
i
+
b
)
]
2
\Sigma[y_i - (ax_i + b)]^2
Σ[yi−(axi+b)]2
对a, b求导:
d
s
u
m
d
a
=
Σ
{
−
2
x
i
[
y
i
−
(
a
x
i
+
b
)
]
}
=
0
\frac{dsum}{da} = \Sigma\{-2x_i[y_i-(ax_i+b)]\} = 0
dadsum=Σ{−2xi[yi−(axi+b)]}=0
d
s
u
m
d
b
=
Σ
{
−
2
[
y
i
−
(
a
x
i
+
b
)
]
}
=
0
\frac{dsum}{db}=\Sigma\{-2[y_i-(ax_i+b)]\} = 0
dbdsum=Σ{−2[yi−(axi+b)]}=0
从而解得:
a
=
n
Σ
x
i
y
i
−
Σ
x
i
Σ
y
i
n
Σ
x
i
2
−
(
Σ
x
i
)
2
a = \frac{n\Sigma x_iy_i - \Sigma x_i \Sigma y_i}{n\Sigma x_i^2 - (\Sigma x_i)^2}
a=nΣxi2−(Σxi)2nΣxiyi−ΣxiΣyi
b
=
Σ
y
i
−
a
Σ
x
i
n
b = \frac{\Sigma y_i - a\Sigma x_i}{n}
b=nΣyi−aΣxi
其中,n为测试得到的数据总数。
当
n
Σ
x
i
2
−
(
Σ
x
i
)
2
=
0
n\Sigma x_i^2 - (\Sigma x_i)^2=0
nΣxi2−(Σxi)2=0时,直线斜率a为无穷大,不存在,此时,直线方程为:
x
=
(
Σ
x
i
)
/
n
x = (\Sigma x_i) / n
x=(Σxi)/n
参考资料中对于a,b系数的结果弄反,故而重新梳理公式。
参考资料:
https://wenku.baidu.com/view/d4ede28a910ef12d2af9e7e1.html