2 个不稳定版本
0.2.0 | 2024 年 8 月 9 日 |
---|---|
0.1.0 | 2024 年 7 月 31 日 |
#422 在 数学
每月 244 次下载
14KB
277 代码行
使用 Lanczos 算法对厄米矩阵进行特征分解
概述
使用 Lanczos 算法 估计对称厄米矩阵的极值特征值和特征向量。
通过 [nalgebra_sparse] 支持 dense 和 sparse 矩阵。
对于大型稀疏矩阵表现良好
cargo add lanczos
示例
use nalgebra::DMatrix;
use lanczos::{Hermitian, Order};
// ...
let eigen = matrix.eigsh(50, Order::Smallest);
// Sorted by eigenvalue in ascending order
eprintln!("{}", eigen.eigenvalues);
// Columns sorted according to eigenvalues
eprintln!("{}", eigen.eigenvectors);
// Second smallest eigen value
eprintln!("{}", eigen.eigenvalues[1]);
// Eigen vector corresponding to the second smallest eigen value
eprintln!("{}", eigen.eigenvectors.column(1));
lib.rs
:
使用 Lanczos 算法对厄米矩阵进行特征分解
使用 Lanczos 算法 估计对称厄米矩阵的极值特征值和特征向量。
通过 [nalgebra_sparse] 支持 dense 和 sparse 矩阵。
对于大型稀疏矩阵表现良好
示例
use lanczos::{Hermitian, Order};
let eigen = matrix.eigsh(50, Order::Smallest);
// Sorted by eigenvalue in ascending order
eprintln!("{}", eigen.eigenvalues);
// Columns sorted according to eigenvalues
eprintln!("{}", eigen.eigenvectors);
// Second smallest eigen value
eprintln!("{}", eigen.eigenvalues[1]);
// Eigen vector corresponding to the second smallest eigen value
eprintln!("{}", eigen.eigenvectors.column(1));
依赖项
~6MB
~116K SLoC