FM后半部分公式化简,时间复杂度从
O(kn2)降到O(kn)
O
(
k
n
2
)
降
到
O
(
k
n
)
∑i=1n−1∑j=i+1n(VTiVj)xixj
∑
i
=
1
n
−
1
∑
j
=
i
+
1
n
(
V
i
T
V
j
)
x
i
x
j
=12(∑i=1n∑j=1n(VTiVj)xixj−∑i=1n(VTiVi)xixi)
=
1
2
(
∑
i
=
1
n
∑
j
=
1
n
(
V
i
T
V
j
)
x
i
x
j
−
∑
i
=
1
n
(
V
i
T
V
i
)
x
i
x
i
)
=12(∑i=1n∑j=1n∑l=1kvilvjlxixj−∑i=1n∑l=1kv2ilx2i)
=
1
2
(
∑
i
=
1
n
∑
j
=
1
n
∑
l
=
1
k
v
i
l
v
j
l
x
i
x
j
−
∑
i
=
1
n
∑
l
=
1
k
v
i
l
2
x
i
2
)
=12∑l=1k(∑i=1n(vilxi)∑j=1n(vjlxj)−∑i=1nv2ilx2i)
=
1
2
∑
l
=
1
k
(
∑
i
=
1
n
(
v
i
l
x
i
)
∑
j
=
1
n
(
v
j
l
x
j
)
−
∑
i
=
1
n
v
i
l
2
x
i
2
)
=12∑l=1k⎛⎝(∑i=1n(vilxi))2−∑i=1nv2ilx2i⎞⎠
=
1
2
∑
l
=
1
k
(
(
∑
i
=
1
n
(
v
i
l
x
i
)
)
2
−
∑
i
=
1
n
v
i
l
2
x
i
2
)
第一行:对称矩阵,减去对角线元素,除以2。得到最终值。
第二行:把大V展开变成小v