Coder Social home page Coder Social logo

matrix-functions-krylov's Introduction

Note On Matrix Functions

Overview

This repository accompanies my note on matrix functions. It is home for implementations focusing on matrix functions—a critical component of numerical linear algebra with broad applications from solving ordinary and partial differential equations to control theory and machine learning. We extend the notion of scalar functions to act on matrices and tackle both theoretical and computational challenges involved in such extension. This work provides rigorous definitions, algorithmic approaches, and empirical validations for computing matrix functions.

Table of Contents

  1. Introduction
  2. Features
  3. Getting Started
  4. Usage
  5. Documentation
  6. Numerical Experiments
  7. Contributing
  8. Citations

Introduction

This repository is structured around a comprehensive document that aims to:

  1. Establish a formal mathematical foundation for matrix functions.
  2. Explore the underlying spectral decomposition for evaluating differentiable matrix functions.
  3. Address computational challenges, with a focus on the role of Krylov subspaces.
  4. Validate theoretical claims through numerical experiments.

For more details, refer to the document.

Features

  1. Rigorous Definitions: Different approaches such as natural definition, spectrum-based definition, and interpolation-based definition are provided.
  2. Computational Efficiency: Detailed examination of matrix-vector products and their efficient evaluation using Krylov subspaces.
  3. Algorithmic Stance: Dense and sparse matrix algorithms, as well as two versions of Arnoldi Method.
  4. Numerical Experiments: Code to reproduce the empirical validation of algorithmic choices and computational efficiency.

Getting Started

To clone this repository, you can run:

git clone https://github.com/nathan-rousselot/matrix-functions-krylov.git

Usage

After cloning the repository, you can run the numerical experiments by executing the demonstrations file in /src. You can try the functions on your own matrices, and can explore various kind of structure by navigating in Matrix Market.

Documentation

For detailed mathematical proofs, algorithmic explanations, and empirical results, refer to document.

Numerical Experiments

The numerical_experiments/ directory contains Python notebooks and scripts to run experiments which validate the theoretical results. These are critical for examining the practical efficacy of the computational strategies discussed.

Citations

If you use this research or codebase in your work, please cite this repository.

@article{rousselot2023matrix,
  title={Note on Matrix Functions},
  author={Nathan Rousselot},
  year={2023}
}

This repository provides a focused exploration of matrix functions, offering both theoretical explanations and practical implementations. It aims to serve students, researchers, and professionals interested in numerical linear algebra. The code provided in this repository is for educational and research purposes only. It comes with no warranty or guarantee of any kind, either expressed or implied. Users are advised to use the code at their own risk and discretion. I am not responsible for any consequences arising from the use of this software.

matrix-functions-krylov's People

Contributors

nathan-rousselot avatar

Watchers

 avatar

matrix-functions-krylov's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.