# numerical-matrix-factorization **Repository Path**: lvhaodeyeye/numerical-matrix-factorization ## Basic Information - **Project Name**: numerical-matrix-factorization - **Description**: 数值分析·矩阵分解资料整理 — 以数值分析问题为主线的 Jupyter Notebook 系列,涵盖线性方程组、最小二乘、特征值、低秩逼近与稀疏系统五大核心问题对应的矩阵分解技术 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数值分析 · 矩阵分解资料整理 > 以**数值分析问题为主线**的 Jupyter Notebook 系列,涵盖线性方程组、最小二乘、特征值、低秩逼近与稀疏系统五大核心问题对应的矩阵分解技术。 ## 内容结构 | 章节 | 文件 | 核心问题 | 分解方法 | |------|------|---------|---------| | 第1章 | `chapter01_linear_systems.ipynb` | 解线性方程组 $A\mathbf{x}=\mathbf{b}$ | LU / LUP / Cholesky | | 第2章 | `chapter02_least_squares.ipynb` | 最小二乘 $\min\|A\mathbf{x}-\mathbf{b}\|_2$ | QR / SVD / 正规方程 | | 第3章 | `chapter03_eigenvalue.ipynb` | 特征值问题 $A\mathbf{v}=\lambda\mathbf{v}$ | Schur / Hessenberg / QR迭代 / Lanczos | | 第4章 | `chapter04_lowrank.ipynb` | 低秩逼近与降维 | SVD / PCA / NMF | | 第5章 | `chapter05_sparse_iterative.ipynb` | 大型稀疏线性系统 | Jacobi / GS / SOR / CG / GMRES / ILU | | 第6章 | `chapter06_guide.ipynb` | 方法选择指南与综合总结 | 全方法决策树与对比实验 | ## 使用说明 本项目使用 [`uv`](https://docs.astral.sh/uv/) 管理 Python 环境与依赖。 ### 1. 安装 uv(若尚未安装) ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` ### 2. 同步环境 项目根目录已配置 `pyproject.toml`,一键安装所有依赖: ```bash uv sync ``` 这会创建 `.venv` 虚拟环境并安装 `numpy`, `scipy`, `matplotlib`, `jupyter`。 ### 3. 启动 Jupyter ```bash uv run jupyter notebook notebooks/ ``` 或先进入 notebooks 目录: ```bash cd notebooks uv run jupyter notebook ``` ### 4. 运行单个 Notebook(非交互式) ```bash uv run jupyter nbconvert --to notebook --execute notebooks/chapter01_linear_systems.ipynb ``` 3. **内容特点**: - Markdown Cell 占绝对主导,包含完整的数学定义、定理、推导与复杂度分析(支持 LaTeX)。 - Code Cell 穿插于关键节点,用于验证算法、生成对比图和测量运行时间。 - 可独立阅读,也可按顺序作为课程讲义使用。 ## 核心特色 - **问题导向**:不以分解方法为章节名,而以"解线性方程组""最小二乘"等实际问题驱动,帮助读者建立"何时用何种分解"的直觉。 - **重基础推导**:每种分解均给出存在性证明、算法推导步骤和 flops 分析。 - **算法与应用并重**:既讲 Householder 反射如何工作,也讲为何 QR 比正规方程更适合病态最小二乘。 - **可执行**:所有代码均可直接在 Notebook 中运行,从手工实现到调用 SciPy 均有覆盖。 ## 参考书籍 | 书籍/论文 | 说明 | 本地文件 | |----------|------|---------| | Golub & Van Loan, *Matrix Computations* (4th ed.) | 数值线性代数百科全书 | 需购买或图书馆借阅 | | Trefethen & Bau, *Numerical Linear Algebra* | 概念清晰,40讲经典教材 | 需购买或图书馆借阅 | | **Saad, *Iterative Methods for Sparse Linear Systems* (2nd ed.)** | 稀疏迭代法权威 | `references/Saad_Iterative_Methods_for_Sparse_Linear_Systems_2ndEd.pdf` ✅ | | Higham, *Accuracy and Stability of Numerical Algorithms* (2nd ed.) | 数值稳定性深度分析 | 需购买或图书馆借阅 | | **Barrett et al., *Templates for the Solution of Linear Systems*** | 迭代法模板,netlib 官方免费 | `references/Barrett_Templates_for_the_Solution_of_Linear_Systems.pdf` ✅ | ### 经典论文(已下载) | 论文 | 年份 | 本地文件 | |------|------|---------| | Eckart & Young, "The approximation of one matrix by another of lower rank" | 1936 | `references/Eckart_Young_1936_Low_Rank_Approximation.pdf` ✅ | | Lee & Seung, "Algorithms for non-negative matrix factorization" (NIPS) | 2001 | `references/Lee_Seung_2001_NMF.pdf` ✅ | | Kolda & Bader, "Tensor decompositions and applications" (SIAM Review) | 2009 | `references/Kolda_Bader_2009_Tensor_Decompositions.pdf` ✅(作者主页) | | Halko, Martinsson & Tropp, "Finding structure with randomness" (SIAM Review) | 2011 | `references/Halko_Martinsson_Tropp_2011_Randomized_SVD.pdf` ✅(arXiv预印本) | > ✅ 标记的文件已存放在 `references/` 目录下,可直接阅读。