Table of Contents
Fetching ...

A Hybrid Algorithm for Computing a Partial Singular Value Decomposition Satisfying a Given Threshold

James Baglama, Jonathan A. Chávez Casillas, Vasilije Perović

TL;DR

The paper introduces a robust hybrid algorithm for computing all singular triplets with singular values above a user-specified threshold, avoiding full SVDs and explicit matrix C constructions. It combines a Golub–Kahan–Lanczos bidiagonalization-based psvd method with an explicit deflation strategy and a block SVD power refinement (blksvdpwr) to preserve one-sided GKLB structure and orthogonality, enabling the retrieval of an unknown number of singular triplets above the threshold. Implementations in MATLAB/Octave and R (svtsvds.m, svtirlba.m, svtirlba.R) wrap standard psvd routines, providing flexible threshold or energy-based stopping criteria and ensuring compatibility for integration into larger numerical workflows, such as matrix completion and image compression. Empirical results show substantial performance gains over existing thresholding approaches, robust handling of multiple interior singular values, and strong reproducibility across diverse problem instances, with public code available on GitHub for broad use.

Abstract

In this paper, we describe a new hybrid algorithm for computing all singular triplets above a given threshold and provide its implementation in MATLAB/Octave and R. The high performance of our codes and ease at which they can be used, either independently or within a larger numerical scheme, are illustrated through several numerical examples with applications to matrix completion and image compression. Well-documented MATLAB and R codes are provided for public use.

A Hybrid Algorithm for Computing a Partial Singular Value Decomposition Satisfying a Given Threshold

TL;DR

The paper introduces a robust hybrid algorithm for computing all singular triplets with singular values above a user-specified threshold, avoiding full SVDs and explicit matrix C constructions. It combines a Golub–Kahan–Lanczos bidiagonalization-based psvd method with an explicit deflation strategy and a block SVD power refinement (blksvdpwr) to preserve one-sided GKLB structure and orthogonality, enabling the retrieval of an unknown number of singular triplets above the threshold. Implementations in MATLAB/Octave and R (svtsvds.m, svtirlba.m, svtirlba.R) wrap standard psvd routines, providing flexible threshold or energy-based stopping criteria and ensuring compatibility for integration into larger numerical workflows, such as matrix completion and image compression. Empirical results show substantial performance gains over existing thresholding approaches, robust handling of multiple interior singular values, and strong reproducibility across diverse problem instances, with public code available on GitHub for broad use.

Abstract

In this paper, we describe a new hybrid algorithm for computing all singular triplets above a given threshold and provide its implementation in MATLAB/Octave and R. The high performance of our codes and ease at which they can be used, either independently or within a larger numerical scheme, are illustrated through several numerical examples with applications to matrix completion and image compression. Well-documented MATLAB and R codes are provided for public use.
Paper Structure (5 sections, 1 theorem, 3 equations, 3 tables, 2 algorithms)

This paper contains 5 sections, 1 theorem, 3 equations, 3 tables, 2 algorithms.

Key Result

Proposition 1

Given $A_k$ with either $\mathcal{E}_{\hbox{$1$}}$ or $\mathcal{E}_{\hbox{$2$}}$ equal to zero eq:psvd, then $\|A - A_{k}\|_F^2 = \|A\|_F^2 - \|A_{k}\|_F^2$.

Theorems & Definitions (7)

  • Proposition 1
  • proof
  • Remark 1
  • Remark 2
  • Example 1
  • Example 2
  • Example 3