复数矩阵分解的拆解思路(矩阵求逆/特征值分解)
作者:桂。
時(shí)間:2017-10-26??07:11:02
鏈接:http://www.cnblogs.com/xingshansi/p/7735016.html?
前言
主要記錄特征值分解的硬件實(shí)現(xiàn)思路。
一、實(shí)數(shù)矩陣轉(zhuǎn)化
在FPGA運(yùn)算中,對實(shí)數(shù)運(yùn)算通常優(yōu)于對復(fù)數(shù)運(yùn)算。假設(shè)C為復(fù)數(shù)矩陣:C= A+iB;且
C = CH
從而A = AT;B = -BT;若C的奇異值所對應(yīng)的奇異向量為u + iv,且滿足:
對應(yīng)有:
借助矩陣形式表示:
根據(jù)A、B的性質(zhì),存在:
一個(gè)NxN的Hermitian矩陣分解,轉(zhuǎn)化為2Nx2N的實(shí)對稱矩陣分解。
?
二、Jacobi算法(Givens旋轉(zhuǎn))
?對于對稱矩陣:
其中Givens參數(shù):
該公式可進(jìn)一步轉(zhuǎn)化:$tan(2theta) = 2a_{ij}/(a_{jj}-a_{ii})$;theta可以借助cordic算法求解。
此處可以借助Cordic求解角度,也可以利用CORDIC求根號的思路進(jìn)行sin、cos的計(jì)算:
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旋轉(zhuǎn)左乘A,可以得到對角陣,右乘同樣可以得出。只使用左乘\右乘的Givens旋轉(zhuǎn)稱為單邊Givens旋轉(zhuǎn)。與之不同,對nxn對稱矩陣A同時(shí)采用左乘、右乘的方法,稱為雙邊Givens旋轉(zhuǎn)。
具體代碼實(shí)現(xiàn),參見:印象筆記-005常用算法-0020Jacobi算法。
借助之前SVD實(shí)現(xiàn)矩陣求逆的思路,矩陣求逆的硬件實(shí)現(xiàn),也可以在此基礎(chǔ)上直接實(shí)現(xiàn)。(此處實(shí)對稱矩陣,利用:特征向量x特征值取反x特征向量轉(zhuǎn)置,即完成矩陣求逆)
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的矩陣分解,一種思路是尋找矩陣所有非對角元素中絕對值較大者進(jìn)行雙邊Jacobi變換,使得該非對角線元素變?yōu)?.接著進(jìn)行第二次變換,直到收斂至精度要求,O(n2)復(fù)雜度。
另一種是固定計(jì)算順序的方法(術(shù)語:循環(huán)Jacobi,cycle Jacobi),簡單粗暴且便于在硬件上實(shí)現(xiàn)(行/列):
假設(shè)矩陣維度為8,經(jīng)過一次迭代的計(jì)算順序可表示為:
仿真驗(yàn)證參考:Jacobi并行拆解
對于維度為N的矩陣,每一行的N/2個(gè)都可以并行,遍歷一次(專業(yè)術(shù)語:Sweep)需要N-1個(gè)周期。對于N維度的矩陣,排序的順序?yàn)?#xff1a;
如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.
總結(jié)
以上是生活随笔為你收集整理的复数矩阵分解的拆解思路(矩阵求逆/特征值分解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房贷还完了怎么解除抵押,简单三步轻松解押
- 下一篇: 贷款机构如何审核个人征信?