Overview
This Chinese forum post narrates how a data analyst (referred to pseudonymously as "Li Ran") stumbled onto a rank-1 matrix formulation of Gaussian elimination while doing PCA on a customer churn dataset in NumPy. Written in a literary style, it mixes narrative storytelling with linear algebra, Python code commentary, and performance claims.
Key points
- Origin: While debugging PCA projection matrices in Jupyter, the author noticed that outer products of a single column vector and row vector — rank-1 matrices — could be used to eliminate matrix columns, reframing elimination as a "folding" of the whole matrix rather than row-vs-row fighting.
- Critique of classical elimination: Traditional Gaussian elimination is "point-by-point": each row operation touches entire rows, leading to poor cache hit rates, underutilized vector instruction sets (AVX-512), and numerical instability when pivots are near zero.
- The rank-1 elimination method (for an augmented matrix
Ab):
1. Normalize the pivot row: - Claimed performance: The subtraction
Ab = Ab - r1hits BLASdgemmat the hardware level. The author reports ~3x better cache locality and 15–20% speedup over traditional implementations on modern CPUs, and ~40% lower relative error on systems with condition number above 10^6 (tested on a million random matrices). *These figures are the author's own benchmarks, not independently verified.* - Relation to LU decomposition: The method is essentially an unconscious reconstruction of LU factorization — but "bottom-up folding" instead of top-down decomposition. Each rank-1 update builds a column of L while updating the rest of U. Normalizing pivots to 1 implicitly avoids dividing by small numbers, similar in spirit to partial pivoting.
- Parallelization potential: Because the core operation is matrix multiplication, it maps well to GPUs (via CuPy /
cublasGemm). The rank-1 representation (two vectors) also reduces inter-node MPI communication from O(n^2) to O(n). The author speculates ~1.5 Petaflops effective performance on an NVIDIA A100 for n > 5000. - Limitations: The method targets dense matrices only. Rank-1 updates destroy sparsity in sparse matrices (e.g., web link or social network matrices). Open directions include sparse rank-1 approximations (keeping only the k largest outer-product elements), randomized projections, and low-rank/SVD-based solvers for near-singular systems, since any matrix is a sum of rank-1 matrices via SVD:
A = Σ σᵢ uᵢ vᵢᵀ. - Educational angle: The author argues the rank-1 framing lowers cognitive load — treating each rank-1 matrix as a "character" that eliminates a column and exits — citing an (unverified) MIT open-courseware experiment with a 27% improvement in concept-retention tests.
Ab[0:1, 0:4] = 1/Ab[0, 0] * Ab[0:1, 0:4]
2. Extract the pivot row snapshot temp1 = Ab[0:1, 0:4] and the column entries below the pivot temp2 = Ab[1:3, 0:1], zero-padded to match dimensions
3. Form the outer product r1 = np.dot(temp4, temp1) — a rank-1 matrix that zeroes the first column below the pivot when subtracted
4. Recurse on the trailing submatrix via for i in range(n), then back-substitute with x[i-1] = Ab[i-1, n] - np.dot(Ab[i-1, i:n], x[i:n])
References cited in the post
1. Strang, G. (2009). *Introduction to Linear Algebra* (4th ed.). Wellesley-Cambridge Press. 2. Golub, G. H., & Van Loan, C. F. (2013). *Matrix Computations* (4th ed.). Johns Hopkins University Press. 3. Bischof, C. H., & Quintana-Ortí, G. (1998). "Computing rank-revealing QR factorizations of dense matrices." *ACM TOMS*, 24(2), 226-253. 4. Anderson, E., et al. (1999). *LAPACK Users' Guide* (3rd ed.). SIAM. 5. Van Der Walt, S., Colbert, S. C., & Varoquaux, G. (2011). "The NumPy array: a structure for efficient numerical computation." *Computing in Science & Engineering*, 13(2), 22-30.
Editorial note
The post is a narrative essay rather than a peer-reviewed result. Its core idea — elimination as successive rank-1 updates — is mathematically equivalent to classical LU decomposition, as the author acknowledges; the practical claims concern implementation efficiency and pedagogy rather than new algorithmic complexity.