magnetometer calibration
fit circle
一般式
x
2
+
y
2
−
a
x
−
b
y
−
c
=
0
x^2 + y^2 -ax -by -c = 0
x2+y2−ax−by−c=0
矩阵表示为:
[
x
y
1
]
⋅
[
a
b
c
]
=
x
2
+
y
2
\begin{bmatrix} x & y & 1 \end{bmatrix} \cdot \begin{bmatrix} a\\ b \\ c\\\end{bmatrix} = x^2 + y^2
[xy1]⋅
abc
=x2+y2
可以令
X
=
(
a
b
c
)
T
X = (a \ b\ c )^T
X=(a b c)T 通过最小二乘法求解出结果
一般式加上约束
约束条件为
a
2
+
b
2
−
4
c
>
0
a^2+b^2-4c>0
a2+b2−4c>0 由于 c是待求,则可修改为
a
2
+
b
2
−
4
c
=
1
a^2+b^2-4c=1
a2+b2−4c=1
拉格郎日函数为:此条件下一般式最小二乘法最小值。
F
(
x
)
=
(
x
2
+
y
2
−
a
x
−
b
y
−
c
)
2
+
λ
(
a
2
+
b
2
−
4
c
−
1
)
F(x)=(x^2+y^2-ax-by-c)^2 + \lambda (a^2+b^2-4c-1)
F(x)=(x2+y2−ax−by−c)2+λ(a2+b2−4c−1)
则对单条数据要求:
[
F
a
F
b
F
c
F
λ
]
=
[
0
0
0
0
]
\begin{bmatrix} \frac{F}{a} \\ \frac{F}{b} \\ \frac{F}{c} \\ \frac{F}{\lambda} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \end{bmatrix}
aFbFcFλF
=
0000
对于
m
m
m个样本,则有
m
×
4
m \times 4
m×4个等式,可以进行最小二乘法求解(自己想的,知道对不对)
下文使用矩阵求解
定义向量
A
=
[
1
,
a
,
b
,
c
]
T
X
=
[
x
2
+
y
2
,
x
,
y
,
1
]
F
(
X
)
=
X
⋅
A
=
0
A = [1,a,b,c]^T \\ X = [x^2+y^2,x,y,1] \\ F(X)=X \cdot A = 0
A=[1,a,b,c]TX=[x2+y2,x,y,1]F(X)=X⋅A=0
写成矩阵形式,定义样本矩阵
D
D
D
D
=
[
x
1
2
+
y
1
2
x
1
y
1
1
x
2
2
+
y
2
2
x
2
y
2
1
.
.
.
x
N
2
+
y
N
2
x
N
y
N
1
]
D = \begin{bmatrix} x_1^2 +y_1^2 & x_1 &y_1 &1 \\ x_2^2 +y_2^2 & x_2 &y_2 &1 \\ ... \\ x_N^2 +y_N^2 & x_N &y_N &1 \end{bmatrix}
D=
x12+y12x22+y22...xN2+yN2x1x2xNy1y2yN111
最小即是
m
i
n
∥
D
a
∥
2
min \begin{Vmatrix} Da\end{Vmatrix}^2
min
Da
2
定义矩阵表达式表示
a
2
+
b
2
−
4
c
=
1
a^2+b^2-4c=1
a2+b2−4c=1
C
=
[
0
0
0
−
2
0
1
0
0
0
0
1
0
−
2
0
0
0
]
C = \begin{bmatrix} 0 & 0& 0& -2 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -2 & 0 & 0 & 0 \end{bmatrix}
C=
000−201000010−2000
约束为
A
T
C
A
=
1
A^TCA=1
ATCA=1
定义拉格朗日函数
L
(
A
,
λ
)
=
D
A
A
T
D
−
λ
(
A
T
C
A
−
1
)
L(A,\lambda)=DAA^TD-\lambda(A^TCA-1)
L(A,λ)=DAATD−λ(ATCA−1)
对A求导
得到
2
D
T
D
A
−
2
λ
C
A
=
0
2D^TDA-2\lambda CA=0
2DTDA−2λCA=0
令,
D
T
D
=
S
D^TD=S
DTD=S 等式变成
S
A
=
λ
C
A
SA=\lambda CA
SA=λCA由于C比较简单且可逆,则表达式变成
C
−
1
S
A
=
λ
A
C^{-1}SA=\lambda A
C−1SA=λA
得出A为特征向量。
fit ellipse
标准方程:
(
x
−
x
0
)
2
a
2
+
(
y
−
y
0
)
2
b
2
=
1
\frac{(x-x_0)^2}{a^2} + \frac{(y-y_0)^2}{b^2} = 1
a2(x−x0)2+b2(y−y0)2=1
一般方程:
a
x
2
+
b
x
y
+
c
y
2
+
d
x
+
e
y
+
f
=
0
ax^2+bxy+cy^2+dx+ey+f=0
ax2+bxy+cy2+dx+ey+f=0
约束:
b
2
−
4
a
c
<
0
b^2-4ac<0
b2−4ac<0
使用一般方程进行矩阵拟合:
F
(
x
,
y
)
=
a
x
2
+
b
x
y
+
c
y
2
+
d
x
+
e
y
+
f
=
0
A
=
[
a
,
b
,
c
,
d
,
e
,
f
]
T
X
=
[
x
2
,
x
y
,
y
2
,
x
,
y
,
1
]
F
(
X
)
=
X
⋅
A
F(x,y) = ax^2+bxy+cy^2+dx+ey+f=0 \\ A=[a,b,c,d,e,f]^T \\ X=[x^2,xy,y^2,x,y,1] \\ F(X)=X \cdot A
F(x,y)=ax2+bxy+cy2+dx+ey+f=0A=[a,b,c,d,e,f]TX=[x2,xy,y2,x,y,1]F(X)=X⋅A
加约束
4
a
c
−
b
2
=
1
4ac-b^2=1
4ac−b2=1
定义矩阵
C
=
[
0
0
2
0
0
0
0
−
1
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
]
C = \begin{bmatrix} 0 & 0 &2 & 0 & 0 & 0 \\ 0 & -1 &0 & 0 & 0 & 0 \\ 2 & 0 &0 & 0 & 0 & 0 \\ 0 & 0 &0 & 0 & 0 & 0 \\ 0 & 0 &0 & 0 & 0 & 0 \\ 0 & 0 &0 & 0 & 0 & 0 \\ \end{bmatrix}
C=
0020000−10000200000000000000000000000
数据源矩阵
D
=
[
x
1
2
x
1
y
1
y
1
2
x
1
y
1
1
.
.
.
x
i
2
x
i
y
i
y
i
2
x
i
y
i
1
.
.
.
x
n
2
x
n
y
n
y
n
2
x
n
y
n
1
]
D = \begin{bmatrix} x_1^2 & x_1y_1 & y_1^2 & x_1 & y_1 &1 \\ ... \\ x_i^2 & x_iy_i & y_i^2 & x_i & y_i &1 \\ ... \\ x_n^2 & x_ny_n & y_n^2 & x_n & y_n &1 \end{bmatrix}
D=
x12...xi2...xn2x1y1xiyixnyny12yi2yn2x1xixny1yiyn111
拟合问题变成
m
i
n
∥
D
a
∥
2
min \begin{Vmatrix} Da \end{Vmatrix}^2
min
Da
2 当符合条件
A
T
C
A
=
1
A^TCA=1
ATCA=1
定义拉格朗日函数
L
(
A
,
λ
)
=
D
A
A
T
D
−
λ
(
A
T
C
A
−
1
)
L(A,\lambda)=DAA^TD-\lambda(A^TCA-1)
L(A,λ)=DAATD−λ(ATCA−1)
对A求导
得到
2
D
T
D
A
−
2
λ
C
A
=
0
2D^TDA-2\lambda CA=0
2DTDA−2λCA=0
令,
D
T
D
=
S
D^TD=S
DTD=S 等式变成
S
A
=
λ
C
A
SA=\lambda CA
SA=λCA变换为:
S
−
1
C
A
=
1
λ
A
S^{-1}CA=\frac{1}{\lambda} A
S−1CA=λ1A
得出A为特征向量。
拉格朗日乘数法
单约束
假定在
g
(
x
)
=
0
g(x)=0
g(x)=0 条件下求
f
(
x
)
f(x)
f(x)的极值,一般表示如下:
m
i
n
m
a
x
f
s
.
t
.
g
=
0
minmax f \\ s.t.\ \ g=0
minmaxfs.t. g=0
其中s.t. 表示subject to,服从于,表示约束。
由极值点的导数相差常数倍,则可以得到以下方程
{
Δ
f
=
λ
Δ
g
g
=
0
\left\{ \begin{gather} \Delta f = \lambda \Delta g \ \\ g=0 \ \end{gather}\right.
{Δf=λΔg g=0
以上表达式也可以写成
F
=
f
+
λ
g
[
F
δ
x
F
δ
y
F
δ
λ
]
=
[
0
0
0
]
F=f+\lambda g \ \\ \begin{bmatrix} \frac{F}{\delta x} \\ \frac{F}{\delta y} \\ \frac{F}{\delta \lambda} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix}
F=f+λg
δxFδyFδλF
=
000
有与 λ \lambda λ是未知量,也可以将+替换成-。
多约束
假定在
g
(
x
)
=
0
h
(
x
)
=
0
g(x)=0 \ h(x)=0
g(x)=0 h(x)=0 条件下求
f
(
x
)
f(x)
f(x)的极值,一般表示如下:
m
i
n
m
a
x
f
s
.
t
.
g
=
0
h
=
0
minmax f \\ s.t.\ \ g=0 \ h=0
minmaxfs.t. g=0 h=0
其中s.t. 表示subject to,服从于,表示约束。
由极值点的导数相差常数倍,则可以得到以下方程
{
Δ
f
=
λ
Δ
g
+
u
Δ
h
g
=
0
h
=
0
\left\{ \begin{gather} \Delta f = \lambda \Delta g + u \Delta h\ \\ g=0 \ \\ h=0 \ \end{gather}\right.
⎩
⎨
⎧Δf=λΔg+uΔh g=0 h=0
以上表达式也可以写成
F
=
f
+
λ
g
+
u
h
[
F
δ
x
F
δ
y
F
δ
λ
F
δ
u
]
=
[
0
0
0
0
]
F=f+\lambda g + u h \ \\ \begin{bmatrix} \frac{F}{\delta x} \\ \frac{F}{\delta y} \\ \frac{F}{\delta \lambda} \\ \frac{F}{\delta u} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \end{bmatrix}
F=f+λg+uh
δxFδyFδλFδuF
=
0000
有与 λ \lambda λ是未知量,也可以将+替换成-。
参考
问题1,矩阵求导
https://zhuanlan.zhihu.com/p/143017326
其中未理解问题,下图中的求导数过程:
矩阵求导有分子布局和分母布局,本质上是偏微分矩阵。
目标是向量
1 常数求导
δ
c
δ
x
=
0
n
×
1
\frac{\delta c}{\delta x} = 0_{n \times 1}
δxδc=0n×1
2 线性法则
δ
[
c
1
f
(
x
)
+
c
2
g
(
x
)
]
δ
x
=
c
1
δ
f
(
x
)
δ
x
+
c
2
δ
g
(
x
)
δ
x
\frac{\delta[c_1 f(x) + c_2 g(x)]}{\delta x} = c_1 \frac {\delta f(x)}{\delta x} + c_2 \frac {\delta g(x)}{\delta x}
δxδ[c1f(x)+c2g(x)]=c1δxδf(x)+c2δxδg(x)
3 乘法法则,其中
f
(
x
)
g
(
x
)
f(x)\ g(x)
f(x) g(x) 是标量,非矩阵相乘,表示相乘后形成的矩阵
δ
[
f
(
x
)
g
(
x
)
]
δ
x
=
g
(
x
)
δ
f
(
x
)
δ
x
+
f
(
x
)
δ
g
(
x
)
δ
x
\frac{\delta[f(x)g(x)]}{\delta x} = g(x) \frac {\delta f(x)}{\delta x} + f(x) \frac {\delta g(x)}{\delta x}
δxδ[f(x)g(x)]=g(x)δxδf(x)+f(x)δxδg(x)
4 商法则
δ
[
f
(
x
)
g
(
x
)
]
δ
x
=
1
g
2
(
x
)
[
δ
f
(
x
)
δ
x
g
(
x
)
−
f
(
x
)
δ
g
(
x
)
δ
x
]
\frac {\delta [ \frac {f(x)}{g(x)} ] }{\delta x}=\frac {1}{g^2(x)}[ \frac {\delta f(x)}{\delta x}g(x)- f(x)\frac{\delta g(x)}{\delta x}]
δxδ[g(x)f(x)]=g2(x)1[δxδf(x)g(x)−f(x)δxδg(x)]
$$
KaTeX parse error: Can't use function '$' in math mode at position 15: 5 几个公式 5.1 其中$̲a$为常量
\frac{\delta ( x^Ta)}{\delta x} = \frac{\delta ( a^Tx)}{\delta x} = a
5.2
5.2
5.2
\frac {\delta x^Tx}{\delta x} = 2x
$$
5.3
A
n
×
n
A_{n \times n}
An×n 是常数矩阵
δ
(
x
T
A
x
)
δ
x
=
A
x
+
A
T
x
\frac {\delta (x^TAx)}{\delta x} = Ax + A^Tx
δxδ(xTAx)=Ax+ATx
5.4 其中
a
b
a\ b
a b为常数向量
δ
(
a
T
x
x
T
b
)
δ
x
=
a
b
T
x
+
b
a
T
x
\frac {\delta (a^Txx^Tb)}{\delta x} = ab^Tx + ba^Tx
δxδ(aTxxTb)=abTx+baTx
目标是矩阵
1,2,3,4 是一样的
5 几个公式
5.1
a
m
×
1
b
n
×
1
a_{m\times 1} \ b_{n \times 1}
am×1 bn×1 为常数向量
δ
(
a
T
X
b
)
δ
X
=
a
b
T
\frac {\delta (a^TXb)}{\delta X} = ab^T
δXδ(aTXb)=abT
5.2
δ
(
a
T
X
T
b
)
δ
X
=
δ
(
a
T
X
T
b
)
T
δ
X
=
b
a
T
\frac {\delta (a^T X^T b)}{\delta X} = \frac {\delta (a^T X^T b)^T}{\delta X}=ba^T
δXδ(aTXTb)=δXδ(aTXTb)T=baT
5.3
δ
(
a
T
X
X
T
b
)
δ
X
=
a
b
T
X
+
b
a
T
X
\frac {\delta(a^T X X^T b)}{\delta X} = ab^TX + ba^TX
δXδ(aTXXTb)=abTX+baTX
5.4
δ
(
a
T
X
T
X
b
)
δ
X
=
X
a
b
T
+
X
b
a
T
\frac {\delta(a^T X^T X b)}{\delta X} = Xab^T + Xba^T
δXδ(aTXTXb)=XabT+XbaT