并行矩阵伪谱的计算

mpseudo的Python项目详细描述


mpseudo进行多核和精确计算 (正方形或长方形)婚姻。它使用伪谱定义和 在复杂平面的规则网格上查找epsilon值。它使用 multiprocessing用于在CPU核心之间共享计算的模块,以及 mpmath模块,以高精度进行计算。

依赖关系

Mpmath模块用于执行高精度计算。

pip install mpmath

如果不需要高精度伪谱计算能力 (超过15位数字,mpseudo可以在没有mpmath的情况下工作。这个 仅要求-NumPy。应该安装它 在您的系统或虚拟环境中。

安装

git clone https://github.com/scidam/mpseudo.git

示例

Gallery(5)Matlab矩阵的伪谱如下所示 用于矩阵预解计算的100位精度:

Pseudospectrum of gallery(5) MatLab matrix

图库伪谱(5)Matlab矩阵

上面的伪谱是通过以下几行代码获得的:

frommatplotlibimportpyplotfrommpseudoimportpseudo# Gallery(5) MatLab matrix (exact eigenvalue is 0 (the only!))A=[[-9,11,-21,63,-252],[70,-69,141,-421,1684],[-575,575,-1149,3451,-13801],[3891,-3891,7782,-23345,93365],[1024,-1024,2048,-6144,24572]]# compute pseudospectrum in the bounding box [-0.05,0.05,-0.05,0.05] with# resolution 100x100 (ncpu = 2 processes) and 50-digits precision.psa,X,Y=pseudo(A,ncpu=2,digits=50,ppd=100,bbox=[-0.05,0.05,-0.05,0.05])# show resultspyplot.conourf(X,Y,psa)pyplot.show()

注意,如果未安装mpmath模块,则 矩阵将以标准(两位数,15位数)精度计算, 这对本案来说是不够的。

很有趣,但是 EigtoolPseudoPy工具(连同 scipy eigvals函数)应用于上例中的矩阵a 导致结果不准确(由于精度不够(双精度):

Pseudospectrum of gallery(5) MatLab matrix plotted via PseudoPy

用伪py绘制gallery(5)matlab矩阵的伪谱

阅读俄文剧本 here

许可证

mpseudo是根据MIT License授权的免费软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ldap连接池超时属性未按预期工作   java Eclipse Google插件不会为web应用程序启动服务器   将工作应用程序从一台pc复制到另一台pc的java安全   安卓如何查找和调试实际代码行中的Java错误:致命异常:Java。lang.IndexOutOfBoundsException:   jms将应用程序Java连接到websphere MQ   java如何遍历对象列表并分配子对象?   java我的代码有什么问题吗?为什么压缩和解压缩速度比其他应用程序慢?   java表达式的类型必须是数组类型,但它被解析为Object   模拟协议socketjava   使用googleappengine的java缓存   java为什么对象引用父类的值而不是它被分配到的类?   删除位置华为工具包安卓 studio时发生java错误   unix执行远程ssh命令“which java”(JSch java)   Dropbox Djinni Java接口与类扩展   java条形码扫描完成后是否有事件?   安卓 GCM Java服务器:发送带有重音字符的消息   java使用PDF框从PDF中读取条形码   私有静态最终更改的java值