0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3点から最小二乗法

Posted at

3点から最小二乗法で直線 y = a*x + b を求める


(1) 与えられた3点

(x1, y1)
(x2, y2)
(x3, y3)


(2) 傾き a の式

a = ( nΣ(xy) - ΣxΣy ) / ( nΣ(x^2) - (Σx)^2 )
n = 3

展開形:
a = [ 3*(x1y1 + x2y2 + x3y3) - (x1 + x2 + x3)(y1 + y2 + y3) ]
/ [ 3*(x1^2 + x2^2 + x3^2) - (x1 + x2 + x3)^2 ]


(3) 切片 b の式

b = ( Σy - aΣx ) / n
b = [ (y1 + y2 + y3) - a
(x1 + x2 + x3) ] / 3


(4) 最小二乗直線の式

y = a*x + b


(5) 行列表現

[ y1 ] [ x1 1 ] [ a ]
[ y2 ] = [ x2 1 ] [ b ]
[ y3 ] [ x3 1 ]

これを一般に
y = X*θ
θ = [a, b]^T
と表す。


(6) 最小二乗法の解(正規方程式)

θ = (X^T * X)^(-1) * X^T * y


(7) 行列の中身

X^T * X =
[ (x1^2 + x2^2 + x3^2) (x1 + x2 + x3) ]
[ (x1 + x2 + x3) 3 ]

X^T * y =
[ (x1y1 + x2y2 + x3*y3) ]
[ (y1 + y2 + y3) ]


(8) よって

[ a ] [ (x1^2 + x2^2 + x3^2) (x1 + x2 + x3) ]^(-1) [ (x1y1 + x2y2 + x3*y3) ]
[ b ] = [ (x1 + x2 + x3) 3 ] [ (y1 + y2 + y3) ]


(9) 結果

上記の a, b を求めることで、3点に対して誤差二乗和が最小となる直線
y = a*x + b
が得られる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?