作者:桂。

时间:2017-10-26  07:11:02

链接:http://www.cnblogs.com/xingshansi/p/7735016.html


前言

主要记录特征值分解的硬件实现思路。

一、实数矩阵转化

在FPGA运算中,对实数运算通常优于对复数运算。假设C为复数矩阵:C= A+iB;且

C = CH

从而A = AT;B = -BT;若C的奇异值所对应的奇异向量为u + iv,且满足:

对应有:

借助矩阵形式表示:

根据A、B的性质,存在:

一个NxN的Hermitian矩阵分解,转化为2Nx2N的实对称矩阵分解。

二、Jacobi算法(Givens旋转)

对于对称矩阵:

其中Givens参数:

该公式可进一步转化:$tan(2theta) = 2a_{ij}/(a_{jj}-a_{ii})$;theta可以借助cordic算法求解。

此处可以借助Cordic求解角度,也可以利用CORDIC求根号的思路进行sin、cos的计算:

aii= 1;
ajj = 3;
aij = 1.2;
tan_2 = (2*aij/(ajj-aii));
theta = 1/2*atan(tan_2);
tao = 1/tan_2;
t = sign(tao)/(abs(tao)+sqrt(1+tao.^2));
cos_1 = 1/sqrt(1+t^2)
cos_1_new = cos(theta)
sin_1 = t/sqrt(1+t^2)
sin_1_new = sin(theta)

使用Givens旋转左乘A,可以得到对角阵,右乘同样可以得出。只使用左乘\右乘的Givens旋转称为单边Givens旋转。与之不同,对nxn对称矩阵A同时采用左乘、右乘的方法,称为双边Givens旋转

具体代码实现,参见:印象笔记-005常用算法-0020Jacobi算法。

借助之前SVD实现矩阵求逆的思路,矩阵求逆的硬件实现,也可以在此基础上直接实现。(此处实对称矩阵,利用:特征向量x特征值取反x特征向量转置,即完成矩阵求逆)

clc;clear all;
x = rand(4,100)*20+1i*rand(4,100)*20;
R =  x*x'/100;
A = real(R);
B = imag(R);
R_cat = [A  -B;B  A];
[D,V]=Jacobi(R_cat);
% V = V';
U_est = V(1:4,1:2:end)+1i*V(5:end,1:2:end);
D0 = diag(D);
D0 = 1./D0(1:2:end);
R_inv = U_est*diag(D0)*U_est'

 三、并行拆解思路

对于nxn的矩阵分解,一种思路是寻找矩阵所有非对角元素中绝对值较大者进行双边Jacobi变换,使得该非对角线元素变为0.接着进行第二次变换,直到收敛至精度要求,O(n2)复杂度。

另一种是固定计算顺序的方法(术语:循环Jacobi,cycle Jacobi),简单粗暴且便于在硬件上实现(行/列):

假设矩阵维度为8,经过一次迭代的计算顺序可表示为:

仿真验证参考:Jacobi并行拆解

对于维度为N的矩阵,每一行的N/2个都可以并行,遍历一次(专业术语:Sweep)需要N-1个周期。对于N维度的矩阵,排序的顺序为:

如N = 10,除去1,2追溯到4,3追溯到2,5追溯到3.......依次类推。

S_0:(1,2)-(3,4)-(5,6)-(7,8)-(9,10)

S_1:(1,4)-(2,6)-(3,8)-(5,10)-(7,9)

......

BLV Array for N=8. Data transmission is represented as solid arrows and rotation parameters transmission with unfilled arrows.

复数矩阵分解的拆解思路(矩阵求逆/特征值分解)相关推荐

  1. 线性代数基础(矩阵、范数、正交、特征值分解、奇异值分解、迹运算)

    目录 基础概念 矩阵转置 对角矩阵 线性相关 范数 正交 特征值分解 奇异值分解 Moore-Penrose 伪逆 迹运算 行列式 如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~ 基 ...

  2. 矩阵特征值分解与奇异值分解含义解析及应用

    本文转载自http://blog.csdn.net/xiahouzuoxin/article/details/41118351,仅用作个人学习. 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉 ...

  3. 矩阵特征值分解与奇异值分解(SVD)含义解析及应用

    原文链接:http://blog.csdn.net/xiahouzuoxin/article/details/41118351 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是" ...

  4. 机器学习知识点(十九)矩阵特征值分解基础知识及Java实现

    1.特征值分解基础知识 矩阵乘法Y=AB的数学意义在于变换,以其中一个向量A为中心,则B的作用主要是使A发生伸缩或旋转变换.一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相 ...

  5. 矩阵的特征值、特征向量、特征值分解、奇异值分解之间的关系

    可逆矩阵 A⋅A−1=A−1⋅A=EA\cdot A^{-1}=A^{-1}\cdot A = EA⋅A−1=A−1⋅A=E 矩阵的几何意义是对一组向量进行变换,包括方向和模长的变化.而逆矩阵表示对其 ...

  6. 矩阵分解之: 特征值分解(EVD)、奇异值分解(SVD)、SVD++

    目录: 1.矩阵分解 1.1 矩阵分解的产生原因 1.2 矩阵分解作用 1.3 矩阵分解的方法 1.4 推荐学习的经典矩阵分解算法 2. 特征值分解(EVD) 3. 奇异值分解(SVD) 4. SVD ...

  7. 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    文章目录 1. 前言 2. LU三角分解 3. Cholesky分解 - LDLT分解 4. Cholesky分解 - LLT分解 5. QR分解 6. 奇异值分解 7. 特征值分解 1. 前言 本博 ...

  8. 视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B.主要参考了<计算机视觉--算法与应用>附录A以及Eigen库的方 ...

  9. 人工智能里的数学修炼 | 矩阵的花样分解:特征值分解(EVD)、相似对角化、QR分解、Schur分解、奇异值分解(SVD)的概念纠缠与详解

    前言 在高等代数里,矩阵分解是一个十分基础与重要的内容,任何一个学校对于理工科的研究生教育都会开设相应的课程,如:矩阵分析.矩阵论.线性系统等.看了不少社区的问答.笔记和博客,在它们的基础上加入一些自 ...

最新文章

  1. numpy笔记 linalg
  2. hive随机查询若干条结果
  3. html自动切换文字,JS实现自动切换文字的导航效果代码
  4. 快递送不上门,谁的锅?
  5. CUDA零拷贝内存(zerocopy memory)
  6. java电影_java电影视频点播网
  7. 二、Spring AOP 切面的定义
  8. linux 域名解析 命令,Linux动态域名解析命令脚本
  9. linux cpan 参数配置,Perl学习笔记之CPAN使用介绍
  10. css单元格固定宽度大小,超过部分使用省略号表示
  11. 新手上路注意事项及驾车技巧
  12. 生命的节日,散文一篇
  13. python excel画图
  14. Oracle ERP财务系统——固定资产
  15. 终于等到你!国内首条支持自动驾驶技术运用的“智慧高速”——杭甬高速复线宁波杭州湾新区段已进入实质性建设阶段!
  16. 阿里巴巴2017实习生招聘研发工程师JAVA考试 最懵逼的逻辑题
  17. 预测2022年CES科技趋势:元宇宙和NFT引关注
  18. EasyExcel使用的正确姿势,工具类封装
  19. sqlserver使用distinct插入数据还出现主键冲突
  20. 基于MPLS ×××城域网设计

热门文章

  1. mysql 必知必会 笔记
  2. 前端session存储实例
  3. java计算两个文本框的值,java 文本框自动获取另外两个文本框的值的乘积
  4. java exe jdk_javac.exe 和java.exe两个可执行程序放在JDK安装目录的( )目录下。_学小易找答案...
  5. potplayer 皮肤_如何美化背部皮肤?
  6. mysql win7 sp1 常见问题_win7旗舰版安装不了mysql问题-------win7系统版本选择问题的一点探索...
  7. python中format和int_python函数之format()
  8. 华三交换机接口配置access_二层交换——交换机的基础和VLAN
  9. mysql my.ini my.cnf_Mysql配置文件my.ini/my.cnf
  10. 2020年第十八届西电程序设计竞赛网络预选赛之Problem D 由比滨结衣的饼干(二分+前缀后缀)