用Givens旋轉進行矩陣QR分解

2021-10-07 17:18:43 字數 990 閱讀 4128

不多廢話,直接貼**

function

[a_, t_, t]

= my_qr_givens( a )

%利用givens旋轉進行qr分解

%輸出%a_ 每次變換後的a矩陣

%t_ 對應於a_的變換矩陣

a_ = sym(

);t_ = sym(

);a = sym(a)

; n = size(a,1)

; t = sym(eye(n))

;sum

= 1;

for j = 1:n-1 %從第一列到第n-1列,全部變換到第j列第j個元素上

for i = j+1:n %從第j+1行到第n行

if a(i,j) ~= 0

r =(a(j,j)*a(j,j)

'+ a(i,j)*a(i,j)'

)^(1/2)

; %r = simplify(sym(real(a(j,j))^2 + imag(a(j,j))^2 + real(a(i,j))^2 + imag(a(i,j))^2)^(1/2))

; t_(:,:,sum)

= eye(n)

; t_(j,j,sum)

= a(j,j)/r;

t_(i,i,sum)

= a(j,j)/r;

t_(j,i,sum)

= a(i,j)/r;

t_(i,j,sum)

= -a(i,j)/r;

a_(:,:,sum)

= t_(:,:,sum)*a;

t = simplify(t_(:,:,sum)*t)

; a = a_(:,:,sum)

;sum

=sum + 1;

endend

endend

利用neon技術對矩陣旋轉進行加速(2)

上次介紹的是順時針旋轉90度,最近用到了180度和270度,在這裡記錄一下。1.利用neon技術將矩陣順時針旋轉180度 順時針旋轉180度比順時針旋轉90度容易很多,如下圖 a1 a2 a3 a4 d4 d3 d2 d1 b1 b2 b3 b4 順時針旋轉180度 c4 c3 c2 c1 c1 c...

C 用矩陣實現物體旋轉

c 中,三種變換矩陣分為三種 縮放,平移,以及旋轉。其中旋轉是三種變化矩陣中最複雜的一種 用數學角度分析 這是實現物體繞x軸旋轉一定角度 這是實現物體繞y軸旋轉一定角度 這是實現物體繞z軸旋轉一定角度 言歸正傳,c 中為我們的矩形運算做出了規則,所以我們只需要寫出matrix4x4這個規定的矩形之後...

用 Scilab 計算OpenGL 的旋轉矩陣

scilab http www.scilab.org 是一款免費的,類似於matlab的軟體。進行矩陣運算的時候比較方便。opengl的三維座標系中,分別繞 x,y,z 三座標軸旋轉xangle,yangle,zangle之後的旋轉矩陣,可以用下列公式計算。function glrotatematr...