NumericalSVD

Repository for the implementations of the algorithms and numerical tests presented in my thesis.

https://github.com/ltumat/NumericalSVD

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Repository for the implementations of the algorithms and numerical tests presented in my thesis.

Basic Info
  • Host: GitHub
  • Owner: ltumat
  • Language: Python
  • Default Branch: main
  • Size: 29.9 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Citation

README.md

NumericalSVD

My bachelor's thesis is concerned with the numerical computation of the SVD. It goes over the theory of both the SVD and its numerical computation. Besides theoretical results, some applications also get shown. The most important part, however, are the algorithms and their testing.

This repository has all the implementations of the numerical algorithms that get discussed in the thesis, alongside the scripts used to generate the figures and examples in it.

The algorithms and tests can be found in the folder 'Algorithms'.

Algorithms:

  • Householder bidiagonalization: householder_bidiag.py
  • Golub-Reinsch SVD: GolubKahan_SVD.py
  • Divide-And-Conquer SVD: GuEisenstat_SVD.py
  • One-sided Jacobi algorithm: JacobiSVD.py

Tests:

All the tests are found in the file FullSVDTest.py. The two inputs for the function FullSVDTest() are test and reference. - test = 'relmaxerror': error f from the thesis - test = 'maxerror': same as relmaxerror, but relative to the largest singular value - test = 'fullsgnorm': error n from the thesis - test = 'fullsvd': error r from the thesis - test = 'uvectors': error oU from the thesis - test = 'vvectors': error oV from the thesis - test = 'reference': test for the reference singular values - test = 'sensible': same as 'relmaxerror with added test of eigenvalue algorithm - test = 'time': runtime test - test = 'vec_norm': vector accuracy test, error v in thesis - reference = 'GESVD' for LAPACK driver DGESVD and 'GEJSV' for LAPACK driver DGEJSV

The examples and functions used to compute them are in the folder 'Examples'.

All the result graphs, even the ones that are not shown in the thesis, can be found in the folder 'ResultGraphs'.

Owner

  • Name: Jonas Lorenz
  • Login: ltumat
  • Kind: user
  • Location: Stockholm, Sweden

Machine Learning student at KTH

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Lorenz"
  given-names: "Jonas"
title: "NumericalSVD"
version: 1.0.0
doi: 10.5281/zenodo.1234
date-released: 2024-08-23
url: "https://github.com/LithuanianMathemator/NumericalSVD"
preferred-citation:
  type: misc
  authors:
  - family-names: "Lorenz"
    given-names: "Jonas"
  title: "NumericalSVD"
  version: 1.0.0
  doi: 10.5281/zenodo.1234
  date-released: 2024-08-23
  url: "https://github.com/LithuanianMathemator/NumericalSVD"
  note: https://github.com/LithuanianMathemator/NumericalSVD

GitHub Events

Total
Last Year