fslaborg / fslaborg/FSharp.Stats

[Feature Request] QR Matrix Decomposition using Gram-Schmidt

Open
#317 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
F#
Stars
227
Forks
58
Avg merge
55m
Merged PRs (30d)
1

Description

Introduce an option to utilize the Gram-Schmidt process for QR matrix decomposition alongside the existing Householder transformation method. This would allow users to choose the decomposition method based on their specific requirements, providing flexibility and potentially improving the overall usability of the library.

The Gram-Schmidt process and the Householder transformation are both methods used for QR matrix decomposition, but they differ in their computational approach and resulting matrix dimensions:

1. **Gram-Schmidt Process:**
- Input: An $( m \times n $) matrix, where $m$ is the number of rows and $n$ is the number of columns.
- Output: Two matrices $Q$ and $R$, where $Q$ is an $m \times n$ orthogonal matrix (i.e., $Q^TQ = I$) and $R$ is an $n \times n$ upper triangular matrix.

2. **Householder Transformation:**
- Input: An $m \times n$ matrix, where $m$ is the number of rows and $n$ is the number of columns.
- Output: Two matrices $Q$ and $R$, where $Q$ is an $m \times m$ orthogonal matrix (i.e., $Q^TQ = I$) and $R$ is an $m \times n$ upper triangular matrix.

In summary, the main difference lies in the dimensions of the orthogonal matrix $Q$: Gram-Schmidt produces an $m \times n$ orthogonal matrix, while the Householder transformation yields an $m \times m$ orthogonal matrix.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.