我想把一个算法从MATLAB移植到Python。所述算法的一个步骤涉及到取A^(-1/2),其中A是9x9平方复矩阵。据我所知,矩阵的平方根(及其逆矩阵的推广)不是唯一的。在

我一直在试验scipy.linalg.fractional_matrix_power和使用A^(-1/2) = exp((-1/2)*log(A))和numpy内置的expm和{}函数的近似值。前者非常差,只提供了3个小数位的精度,而后者对于左上角的元素来说是非常正确的,但是当您向下或向右移动时,它会变得越来越差。这可能是,也可能不是表达式的完全有效的数学解,但它不足以满足此应用。在

因此,我希望在Python中直接实现MATLAB的矩阵幂算法,以便每次都能100%地确认相同的结果。有没有人有任何关于这将如何工作的见解或文档?这个算法的并行性越强越好,因为最终的目标是在OpenCL中重写它以实现GPU加速。在

编辑:MCVE按要求:[[(0.591557294607941+4.33680868994202e-19j), (-0.219707725574605-0.35810724986609j), (-0.121305654177909+0.244558388829046j), (0.155552026648172-0.0180264818714123j), (-0.0537690384136066-0.0630740244116577j), (-0.0107526931263697+0.0397896274845627j), (0.0182892503609312-0.00653264433724856j), (-0.00710188853532244-0.0050445035279044j), (-2.20414002823034e-05+0.00373184532662288j)], [(-0.219707725574605+0.35810724986609j), (0.312038814492119+2.16840434497101e-19j), (-0.109433401402399-0.174379997015402j), (-0.0503362231078033+0.108510948023091j), (0.0631826956936223-0.00992931123813742j), (-0.0219902325360141-0.0233215237172002j), (-0.00314837555001163+0.0148621558916679j), (0.00630295247506065-0.00266790359447072j), (-0.00249343102520442-0.00156160619280611j)], [(-0.121305654177909-0.244558388829046j), (-0.109433401402399+0.174379997015402j), (0.136649392858215-1.76182853028894e-19j), (-0.0434623984527311-0.0669251299161109j), (-0.0168737559719828+0.0393768358149159j), (0.0211288536117387-0.00417146769324491j), (-0.00734306979471257-0.00712443264825166j), (-0.000742681625102133+0.00455752452374196j), (0.00179068247786595-0.000862706240042082j)], [(0.155552026648172+0.0180264818714123j), (-0.0503362231078033-0.108510948023091j), (-0.0434623984527311+0.0669251299161109j), (0.0467980890488569+5.14996031930615e-19j), (-0.0140208255975664-0.0209483313237692j), (-0.00472995448413803+0.0117916398375124j), (0.00589653974090387-0.00134198920550751j), (-0.00202109265416585-0.00184021636458858j), (-0.000150793859056431+0.00116822322464066j)], [(-0.0537690384136066+0.0630740244116577j), (0.0631826956936223+0.00992931123813742j), (-0.0168737559719828-0.0393768358149159j), (-0.0140208255975664+0.0209483313237692j), (0.0136137125669776-2.03287907341032e-20j), (-0.00387854073283377-0.0056769786724813j), (-0.0011741038702424+0.00306007798625676j), (0.00144000687517355-0.000355251914809693j), (-0.000481433965262789-0.00042129815655098j)], [(-0.0107526931263697-0.0397896274845627j), (-0.0219902325360141+0.0233215237172002j), (0.0211288536117387+0.00417146769324491j), (-0.00472995448413803-0.0117916398375124j), (-0.00387854073283377+0.0056769786724813j), (0.00347771689075251+8.21621958836671e-20j), (-0.000944046302699304-0.00136521328407881j), (-0.00026318475762475+0.000704212317211994j), (0.00031422288569727-8.10033316327328e-05j)], [(0.0182892503609312+0.00653264433724856j), (-0.00314837555001163-0.0148621558916679j), (-0.00734306979471257+0.00712443264825166j), (0.00589653974090387+0.00134198920550751j), (-0.0011741038702424-0.00306007798625676j), (-0.000944046302699304+0.00136521328407881j), (0.000792908166233942-7.41153828847513e-21j), (-0.00020531962049495-0.000294952695922854j), (-5.36226164765808e-05+0.000145645628243286j)], [(-0.00710188853532244+0.00504450352790439j), (0.00630295247506065+0.00266790359447072j), (-0.000742681625102133-0.00455752452374196j), (-0.00202109265416585+0.00184021636458858j), (0.00144000687517355+0.000355251914809693j), (-0.00026318475762475-0.000704212317211994j), (-0.00020531962049495+0.000294952695922854j), (0.000162971629601464-5.39321759384574e-22j), (-4.03304806590714e-05-5.77159110863666e-05j)], [(-2.20414002823034e-05-0.00373184532662288j), (-0.00249343102520442+0.00156160619280611j), (0.00179068247786595+0.000862706240042082j), (-0.000150793859056431-0.00116822322464066j), (-0.000481433965262789+0.00042129815655098j), (0.00031422288569727+8.10033316327328e-05j), (-5.36226164765808e-05-0.000145645628243286j), (-4.03304806590714e-05+5.77159110863666e-05j), (3.04302590501313e-05-4.10281583826302e-22j)]]

matlab如何计算矩阵的幂,MATLAB矩阵幂算法相关推荐

  1. Matlab学习笔记——矩阵求幂和矩阵指数

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 矩阵求幂和矩阵指数 矩阵求幂和矩阵指数 利用MATLAB对矩阵求幂可以很容易地得到结果,例如: 矩阵求幂 元素对元 ...

  2. matlab矩阵定义、矩阵元素引用、矩阵操作

    矩阵定义 直接输入法 A=[1 2 3;4 5 6;7 8 9] 矩阵用方括号 "[ ]" 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔 矩阵行与行之间用 分号 分开 直接 ...

  3. MATLAB(一)基本操作与矩阵输入

    文章目录 前言 一.Matlab视窗 二.基本操作与矩阵输入 1. 把MATLAB当做计算机 2. 初等数学函数 Exercise练习 2. 嵌入函数 3. 特殊变量和常量 4.MATLAB调用优先 ...

  4. matlab 矩阵角标,MATLAB中的矩阵索引

    MATLAB中的矩阵索引 作者:SteveEddins and Loren Shure   译:王茂春 利用矩阵的索引取出原矩阵的子集元素是一种有效的方式.MATLAB的多种索引类型不仅强大.灵活,而 ...

  5. 数论(二)快速幂 (矩阵快速幂)等比数列求和 最大公因数和最小公倍数

    快速幂 1.快速幂用于快速计算a的b次方,时间复杂度是O(log2b) 2.用于a和b比较大小的情况,常用的快速幂是带模快速幂 3.分析一个例子: 3 15=?  15=(1111)2 3e1 * ...

  6. python【数据结构与算法】快速幂and矩阵快速幂取模(看不懂你来打我)

    文章目录 1 解释快速幂 2 代码(这里就不考虑指数为小于0的情况了) 3 下面是矩阵快速幂,区别只是底数换成了矩阵 1 解释快速幂 传统的幂运算,是对底数进行连乘,时间复杂度为o(n),例如:2^1 ...

  7. 矩阵的乘法和快速幂的一些理解(适用初学者)

    矩阵是线性代数的知识...后悔没好好学了... 第一部分:矩阵的基础知识 1.结合性 (AB)C=A(BC). 2.对加法的分配性 (A+B)C=AC+BC,C(A+B)=CA+CB . 3.对数乘的 ...

  8. 豪斯荷尔德变换 matlab,隐式QR法求实矩阵的全部特征值matlab实现

    隐式QR法求实矩阵的全部特征值matlab实现 隐式QR法求实矩阵的全部特征值matlab实现 要求:用matlab编写通用子程序,利用隐式QR法求实矩阵的全部特征值和特征向量. 思想:隐式QR法实质 ...

  9. 矩阵位移法matlab编程,矩阵位移法_MATLAB_GUI.doc

    Matrix_Displacement_Method--by MATLAB GUI PAGE58 / NUMPAGES64 yanfeng39@zju.edu.cn <结构力学>课程设计之 ...

  10. 快速幂、矩阵快速幂、快速乘法

    快速幂 快速幂是我们经常用到的一种算法,快速幂顾名思义就是快速的幂运算.我们在很多题目中都会遇到幂运算,但是在指数很大的时候,我们如果用for或者是pow就会超时,这时候就用到了快速幂. 快速幂的原理 ...

最新文章

  1. React+dva+webpack+antd-mobile 实战分享(二)
  2. info replication
  3. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 构造函数分析 | makeDexElements 函数分析 )
  4. Windows平板电脑将取代苹果在企业市场地位
  5. C++中关于内部与外部函数
  6. 牛客 -- leetcode -- evaluate-reverse-polish-notation
  7. c语言main函数的参数argc,argv说明
  8. InnoDB关键特性之doublewrite
  9. ubuntu命令和配置文件 修改IP
  10. LeetCode 124. Binary Tree Maximum Path Sum
  11. python的异常处理及异常类定义
  12. JBox - 模态窗口,工具提示和消息 jQuery 插件
  13. 类似于Function.bind的dojo.hitch --dojo Quick Start/dojo入门手册4
  14. gcc -l:手动添加链接库
  15. 会考计算机考试题,初中信息技术会考试题
  16. 网上图书商城项目学习笔记-022易宝支付
  17. Android 9.0 10.0 Launcher3 时钟动态图标的定制化(时钟动态图标)
  18. 2019 Namesilo 购买域名 解析域名 图文教程
  19. KL Divergence ——衡量两个概率分布之间的差异
  20. 区块链游戏- Solcery(Summoner 召唤者)

热门文章

  1. 使用VS Code 配置 LaTeX 编辑器
  2. 长沙公积金和商贷组合贷款
  3. 三十岁了学python还可以吗-三十岁了还可以学编程吗?只要你想,只要你做,什么时候都不晚...
  4. 程序猿爆笑选集(2)
  5. int定义源码 python_【图片】Python 源码:int【西安网星软件吧】_百度贴吧
  6. 看集装箱号码识别技术如何解决港口拥堵
  7. Python爬虫:博客被抄袭了还不知道?快来查查
  8. 判断一个数为奇偶数的三种方法
  9. 谷歌野心有多大?曾有意联合腾讯收购 Epic、计划 5 年成为全球最大游戏平台!
  10. 播放器初始化配置重点