计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
randomized_nystrom_factorization【效率与协作】Compute a stable randomized Nyström PSD low-rank eigendecomposition from a dense PSD matrix or matrix-vector product interface.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when you need the paper's Algorithm 2.1 component: a reproducible low-rank PSD approximation A_nys = U diag(lambda_hat) U.T for a symmetric positive-semidefinite matrix. Do not use it as a full linear solver; downstream solver skills own preconditioning and PCG.
A as a dense JSON/NumPy array, or a Python callable that applies A to a matrix.n and sketch rank ell, with 1 <= ell <= n.U: orthonormal basis for the Nyström range.lambda_hat: nonnegative approximate eigenvalues.Y = A @ Omega; this is the only matrix interaction required by the algorithm.nu * Omega before Cholesky.Omega.T @ Y_shift, solve by the Cholesky factor, and take a thin SVD.U and squared singular values minus the stability shift, clipped at zero for roundoff.Run:
python scripts/nystrom.py --self-test
python tests/test_nystrom.py
The tests verify shapes, orthonormality, nonnegative eigenvalues, deterministic seeding, and improved approximation with larger rank.
The routine assumes PSD-compatible input. It is intentionally small and dense-friendly for recovery experiments; large production runs should provide an efficient matvec closure and avoid forming dense matrices.