并行矩阵伪谱的计算

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 NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题