Can linear systems be solved faster than matrix multiplication? While there has been remarkable progress for the special cases of graph structured linear systems, in the general setting, the bit complexity of solving an $n \times n$ linear system $Ax=b$ is $\tilde{O}(n^\omega)$, where $\omega < 2.372864$ is the matrix multiplication exponent. Improving on this has been an open problem even for sparse linear systems with poly$(n)$ condition number. In this paper, we present an algorithm that solves linear systems in sparse matrices asymptotically faster than matrix multiplication for any $\omega > 2$. This speedup holds for any input matrix $A$ with $o(n^{\omega -1}/\log(\kappa(A)))$ non-zeros, where $\kappa(A)$ is the condition number of $A$. For poly$(n)$-conditioned matrices with $\tilde{O}(n)$ nonzeros, and the current value of $\omega$, the bit complexity of our algorithm to solve to within any $1/\text{poly}(n)$ error is $O(n^{2.331645})$. Our algorithm can be viewed as an efficient, randomized implementation of the block Krylov method via recursive low displacement rank factorizations. It is inspired by the algorithm of [Eberly et al. ISSAC `06 `07] for inverting matrices over finite fields. In our analysis of numerical stability, we develop matrix anti-concentration techniques to bound the smallest eigenvalue and the smallest gap in eigenvalues of semi-random matrices.
翻译:线性系统能否比矩阵倍增速度更快地解决线性系统?虽然图形结构线性系统的特殊案例取得了显著的进展,但在一般情况下,解决美元=时间=时间=线性系统=美元=线性系统=美元=美元=美元=美元=美元=美元=美元=美元=(n ⁇ omega)$(n ⁇ omega)$=美元=美元=美元=美元=(美元==美元==美元==(n ⁇ omega)=(美元===美元==美元==美元=线性系统乘数乘数=(美元=omega)$ < 2.372864美元=(n ⁇ omega)=美元=基数乘数乘数=2.372864美元=(n ⁇ omega)=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=(美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=美元=数值=数值=数=一个值=数值=数值=数值=数值=数值=一个值=数值=一个值=数值=数值=值=数值=数值=一个值=数值=一个值=数值=数值=一个值=一个值=一个值=一个值=值=一个值=数值=数值=数值=数值=一个值=一个值=数值=数值=数值=值=值=一个值=一个值=值=数值=数值=数值=数值=数值=数值=数值=数值=值=数值=数值=数值=数值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=数值=值=值=值=值=值=值=值=值=值=值=值=值=值=值=数值=数值=数值=数值=值=值=值=