实对称和hermitian问题的ral特征解
raleigh的Python项目详细描述
raleigh:实对称和hermitian问题的ral特征解算器
raleigh是块jacobi共轭梯度算法的python实现,用于计算大规模实对称和hermitian问题的几个特征对(特征值和相应的特征向量)。
主要功能
- 可应用于实对称或厄米特矩阵a的标准特征值问题和矩阵铅笔a-λb或a b-λi的正定实对称或厄米特b的广义特征值问题。
- 对于大型稀疏问题,可以采用两种已知的收敛性改进技术之一:移位反转和预处理。
- 由于现代多核和gpu体系结构中矩阵乘法的高效性,它还可以计算奇异值和向量,是一种特别有效的稠密数据主成分分析工具。
- 用户可以指定所需特征值的数目
- 在频谱的任何一个边缘(例如左侧5,右侧10)
- 最大震级
- 在给定的实际值的两边
- 最接近给定的实际值
- 如果所需的特征值的数目事先不知道(通常是PCA的情况),则计算将持续到满足用户指定的停止准则(例如,对数据的PCA近似是令人满意的)。
- 核心解算器是以抽象向量的形式编写的,因此,只要对向量执行基本的线性代数操作,核心解算器就可以在任何体系结构上一字不差地工作(在没有使用这些库numpy代数的情况下,目前mkl和cuda的实现都随包提供)。
依赖性
为了获得最佳性能,请安装mkl 10.3或更高版本(或在windows上安装numpy+mkl)。在Linux上,包含libmkl_rt.so的文件夹必须位于ld_library_path中。在Windows上,包含mkl_rt.dll的文件必须在路径中。大稀疏问题只有在mkl可用的情况下才能求解,pca等稠密问题没有它也能求解。
要使用GPU(必须启用CUDA),需要安装NVIDIA GPU计算工具包。在Linux上,包含libcudart.so的文件夹必须位于ld_library_path中。
基本用法
子文件夹drivers包含用户友好的scipy类接口,用于核心解算器处理numpy和scipy数据对象。子文件夹examples包含说明其使用的脚本,以及说明核心解算器基本功能的脚本。
文件
包的基本用法在文件夹drivers中模块的docstrings(了解raleigh用法的最佳起点)和示例脚本中进行了简要描述。高级用户可以在core/solver.py中找到罗利设计的基本原理的描述。
本文介绍了由罗利实现的算法的数学和数值方面。菲斯。227:9477-9497和暹罗数字。肛门。46:2567-2619。
问题
请使用GitHub issue tracker报告错误并请求功能。
许可证
罗利是根据3条BSD许可证释放的。