21.5.11 t2
tag:矩阵,特征值,计算几何
设直线为 \(\lambda\vec v,\ |\vec v|=1\),则点 \(x_i\) 在直线上的投影为 \(\vec{x_i}\cdot\vec v\),所以要求的即为
\[\sum |x_i|^2-(\vec{x_i}\cdot\vec v)
\]
也就是求后者的最大值,把后者展开
\[\sum_{i,j}v_iv_jx_{k,i}x_{k,j}
\]
可以写成矩阵形式
\[\begin{bmatrix}v_1&\cdots&v_d\end{bmatrix}
\begin{bmatrix}x_{k,1}x_{k,1}&\cdots&x_{k,1}x_{k,d}\\\vdots&\ddots&\vdots\\x_{k,d}x_{k,1}&\cdots&x_{k,d}x_{k,d}\end{bmatrix}
\begin{bmatrix}v_1\\\vdots\\v_d\end{bmatrix}
\]
简写成 \(ABA^T\)。
由于 \(B\) 是对称矩阵,所以有 \(B=P\Lambda P^T\),\(P\) 为正交矩阵,\(\Lambda\) 为对角矩阵。
则 \(ABA^T=AP\Lambda P^TA^T=Y\Lambda Y^T\),由于 \(|A|=1\) 且 \(P\) 为正交矩阵,所以 \(|Y|=1\)。
\[|Y|=YY^T=APP^TA^T=AA^T=|A|
\]
展开来即为
\[\sum a_i^2b_i\quad(\sum a_i^2=1)
\]
就相当于是求 \(\max b_i\),也就是 \(B\) 的特征值。
随机一个 \(\vec x\),求出 \(\frac{B^{inf+1}x}{B^{inf}x}\) 即可,令 \(inf=10000\) 左右可以满足精度要求