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

作者:桂。

时间: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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贷款机构如何审核个人征信?

贷款是要查看征信的, 但是大家知道贷款机构是如何审查借款人的征信吗?下面我们一起来看下。1看征信报告打印时间一般贷款机构要求提供的是最新的征信报告,当然每个机构要的具体期限不一样,有的要求是最近一个月的,有的…

COMS技术

COMS技术 n型MOS(NMOS)三极管的结构如图所示,该图不是按照实际比例绘制的。三极管的衬底是被掺杂后成为p型半导体材料的硅晶片。NMOS衬底的厚度远比其他三极管要厚。在每个三极管上有两个区域,被掺入大量的杂质,成为n型半导体区域。这两个区域分别形成了三极管的源极和漏极…

VS2015 + CUDA 8.0 配置GTX1070的OpenCL 开发环境

一、查看计算机对OpenCL异构计算的支持情况 使用 GPU Caps Viewer 查看计算机对OpenCL的支持情况,目前最新的版本是 gpu-caps-viewer-1-32-0, 下载地址:http://www.geeks3d.com/20161107/gpu-caps-viewer-1-32-0-released/ 从上面两个图可以…

征信逾期了,5年后能自动消除吗?

最近有一个朋友去申请贷款,然后被拒了,理由是属于征信黑名单。这个朋友很纳闷,自己最近几年从来没有贷过款,信用卡每个月都是正常在还,没有出现逾期过,为何说征信是黑名单呢?后来一问才知道&…

常用频段及对应名称

作者:桂。 时间:2017-11-12 07:31:46 链接:http://www.cnblogs.com/xingshansi/p/7820971.html 一、主要频段 不同规定:IEEE/国际电信联盟(ITU)/北约(NATO)EU(欧盟) US(美国)&…

布尔代数值

布尔代数值 值 数字系统使用二值代数。其变量可以取由:1)接通/断开;2)真/假;3)1/0表示的两值之一。 操作符 1)NOT(非) 2)AND(与) 3)OR(或) 4)IMPLIES(蕴涵) 5)EQUIVALENCE(同或) 上面表达式中的符号“+”表示“或”;符号“”表示“与”;而横杠,例如“~A”则表示“A的非”…

什么样的人去贷款最受银行欢迎?

去贷款,大家是不是都想着所有的流程都能一次性顺利通过,而且拿到的贷款额度高,利息低?这是理想的一种状态,但是贷款不是你自己说了算的,而是贷款公司说了算,所以做一个让贷款公司喜欢的人将能更…

网贷申请技巧,提高90%通过率

目前网贷很流行,深受大家欢迎,而且网贷简单方便,所以是解决短期缺钱一个很好的渠道。但是网贷也不是那么好撸的,想要提高网贷的通率,你得学会一些技巧。一、申请贷款准备1、联系客服不要盲目的去申请贷款,因…

格雷码与二进制的转换

格雷码与二进制的转换 格雷码转二进制码的基本思路: 格雷码转二进制是从左边第二位起,将每位与左边一位二进制码的值异或,作为该位二进制码后的值(最左边一位依然不变)。 以其中一个为例:格雷码111-&g…

度量、符号、转换关系

作者:桂。 时间:2017-11-19 10:13:49 链接:http://www.cnblogs.com/xingshansi/p/7859240.html Power Ratio:能量比,如果幅度,需要平方转化。s.t. y 10log10(x) 参考:《Electronic Warfare and Radar Sy…

Intel CPU集成显卡被UEFI BIOS禁用想开启的设置

台式机处理器为i7-6700k, 带有HD Graphics 5300, 想用来做OpenCL开发,然后下载了intel_sdk_for_opencl_setup_6.3.0.1904.exe, 做了demo,发现识别不到OpenCL Platform, 在设备管理器中一看,发现集成显卡不见…

常用天线及对应特性

作者:桂。 时间:2017-11-19 11:06:17 链接:http://www.cnblogs.com/xingshansi/p/7859306.html 参考:《Electronic Warfare and Radar Systems Engineering Handbook》2013.

去银行贷款,有中介和没中介的巨大差别

说到贷款中介,很多朋友可能第一想法是没必要,自己去贷款,贷款机构审核的是自己,能不能贷款完全取决于个人条件,所以没必要找中介,更不需要额外多支付中介费。如果这些话是那些优质的客户说出来,…

OpenCL列举平台列表以及平台属性信息

摘自《OpenCL异构并行计算原理、机制与优化实践》 // Platform.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include <CL/cl.h> #include <stdio.h> #include <string.h> #include <malloc.h>int m…

如何自己养卡,快速提升信用卡额度?

信用卡现在已经成为很多商务人士的标配&#xff0c;信用卡以其免费&#xff0c;简便等优势深受大家欢迎&#xff0c;因此大家都希望信用卡的额度越高越好&#xff0c;但不是每个人的信用卡都可以获得高额度审批&#xff0c;更多的是需要自己在下卡之后慢慢的去养卡&#xff0c;…

蚂蚁借呗和京东金条全面对比,哪个更划算?

阿里巴巴和京东作为电商的两大巨头&#xff0c;除了电商之外&#xff0c;在金融领域也是竞争白热化&#xff0c;作为两大电商的金融产品&#xff0c;蚂蚁借呗和京东金条深受广大朋友喜欢&#xff0c;那这两个产品中哪个更合适呢&#xff1f;下面我们就来对比一下这两个产品&…

触 发 器

触 发 器 由正跳变沿触发的D触发器的最简单的SystemVerilog模型如下所示: module dff loutput logic q, input logic d,clk);always_ff @(posedge clk)q<=d; endmodule因为这是时序逻辑,所以必须用非阻塞赋值。同样,负跳变沿触发的触发器可以通过检测逻辑电平从1跳变到0…

年化利息100%,现金贷监管寒冬将至

11月21日晚间&#xff0c;一份标注特急的《关于立即暂停批设网络小额贷款公司的通知》在流传。文件称&#xff0c;近年来&#xff0c;有些地区陆续批设了网络小额贷款公司或允许小额贷款公司开展网络小贷业务&#xff0c;部分机构开展的“现金贷”业务存在较大风险隐患。要求自…

呆账是什么东西?快到手的贷款竟然泡汤了

雷小锋有个朋友&#xff0c;工作收入各方面都不错&#xff0c;信用也良好&#xff0c;抱着很大的希望去申请贷款&#xff0c;结果悲剧了&#xff0c;原因是他有呆账。说到呆账&#xff0c;很多人都可能一脸懵逼&#xff0c;但是呆账是极度恐怖的&#xff0c;业内有一次呆账等于…

认识FPGA触发器的亚稳态

边沿型触发器的输出有两个稳定状态: 高电平或者低电平。为保证可靠操作, 必须要满足触发器的时序要求&#xff0c;也就是我们熟知的建立时间和保持时间。如果输入信号违反了触发器的时序要求, 那么触发器的输出信号就有可能会出现非法状态—亚稳态。亚稳态是一种不稳定状态,在一…