文档 | CI | 覆盖范围 | DOI | 下载 |
---|---|---|---|---|
如果您在工作中使用Krylov.jl ,请使用CITATION.cff
中给出的元数据引用它。
@article{montoison-orban-2023, author = {Montoison, Alexis and Orban, Dominique}, title = {{ Krylov.jl : A Julia basket of hand-picked Krylov methods}}, journal = {Journal of Open Source Software}, volume = {8}, number = {89}, pages = {5187}, year = {2023}, doi = {10.21105/joss.05187} }
该包提供了某些最有用的 Krylov 方法的实现,可解决各种问题:
正方形或矩形满秩系统
轴=b
当b位于A的范围空间内时应求解。这种情况发生时
A是平方且非奇异,
A很高并且具有完整的列排名,并且b位于A的范围内。
线性最小二乘问题
最小化 ‖ b - Ax ‖
当b不在A的范围内(不一致系统)时,无论A的形状和秩如何,都应该求解。这种情况主要发生在
A是平方且是奇异的,
A又高又瘦。
欠定系统不太常见,但也有发生。
如果有无限多个这样的x (因为A是列秩不足的),则确定一个具有最小范数的 x
最小化 ‖ x ‖ 且满足x ∈ argmin ‖ b - Ax ‖。
线性最小范数问题
最小化 ‖ x ‖ 且满足Ax = b
当A是列秩不足但b在A的范围内(一致系统)时应该解决,无论A的形状如何。这种情况主要发生在
A是平方且是奇异的,
A又短又宽。
超定系统不太常见,但也有发生。
伴随系统
Ax = b且Aᴴy = c
其中A可以具有任意形状。
鞍点和埃尔米特准定系统
[ M A ] [ x ] = [ b ]
[ Aᴴ -N ] [ y ] [ c ]
其中A可以具有任意形状。
广义鞍点和非埃尔米特分区系统
[ M A ] [ x ] = [ b ]
[ BN ] [ y ] [ c ]
其中A可以具有任何形状,而B具有Aᴴ的形状。 A 、 B 、 b和c必须全部非零。
Krylov 求解器特别适用于必须求解此类问题但无法进行因式分解的情况,原因如下:
A不明确可用,
如果 A 被具体化,它会很密集或者会消耗过多的内存,
因素会消耗过多的内存。
在以下任一情况下,建议使用迭代方法:
问题足够大,分解不可行或者会很慢,
在问题具有不利谱结构的情况下,已知有效的预处理器,
该运算符可以有效地表示为稀疏矩阵,
该运算符速度很快,即,与将其具体化为矩阵相比,可以以更好的复杂性来应用。某些快速算子将具体化为稠密矩阵。
Krylov.jl中的所有求解器都有就地版本,与GPU兼容并可在任何浮点数据类型下工作。
Krylov 可以通过 Julia 包管理器安装和测试:
朱莉娅>] pkg> 添加克雷洛夫 pkg> 测试克雷洛夫
如果您认为发现了错误,请随时提出问题。重点建议和请求也可以作为问题打开。在打开拉取请求之前,请就该主题提出问题或讨论。
如果您想提出不适合错误报告的问题,请随时在此处开始讨论。该论坛用于有关此存储库和 JuliaSmoothOptimizers 组织的一般讨论,因此欢迎对我们的任何软件包提出疑问。