4个版本
0.1.3 | 2024年4月15日 |
---|---|
0.1.2 | 2024年4月14日 |
0.1.1 | 2024年4月14日 |
0.1.0 | 2024年4月14日 |
#773 in 数学
91 每月下载量
22KB
382 行
无分数线性代数
有关详细信息,请参阅文档。
此代码根据Hippocratic License Version 3.0许可。有关详细信息,请参阅许可,或单击徽章
lib.rs
:
为[ndarray]提供具有最小trait界限的无分数线性代数。
此库提供线性代数原语,可以在不进行精确除法的情况下工作。有时,这被称为“整数保持”线性代数,因为所有中间结果都保留为整数。技巧是将具有有理项的矩阵A
表示为乘积D^(-1)B
,其中D
是对角线,而D
和B
都只有整数项。目前,
- 满秩、方形或更宽矩阵的LU分解,
- 线性方程组的唯一解,
- 矩阵逆,和
- 行列式
已实现。
放置在矩阵项类型上的trait界限尽可能宽松,因此此库原则上适用于每个整环。然而,各种原始整数类型是激励示例和主要预期用途。特别是,所有函数都需要矩阵项为[Copy]。
这里的所有内容都是基于从Dureisseix的论文《具有核提取的奇异系统的广义无分数LU分解》中提取的算法,该算法计算无分数LU分解。然而,论文中的“奇异”和“核提取”部分尚未实现:目前,这个库只能解决具有唯一解的系统。这足以计算方阵的逆(如果存在),这也是最初的动机。
使用纯Rust编写,依赖性很少,优化也很少,如果您不想使用专用硬件或平台限制,并且矩阵不是非常大,那么这个库适合您。
依赖项
~1.5MB
~26K SLoC