如何从随机2x2 ZYZ旋转矩阵中找到欧拉角?我们知道所有SU(2)矩阵都可以使用ZYZ分解作为基于欧拉角的三个矩阵积分解。在维基百科中关于欧拉角:
“类似的三角分解适用于SU(2),即复杂2D空间中特殊的单位旋转组,差别在于β的范围为0到2π。这些也称为欧拉角。”
我已经尝试在matlab中做一个方程式系统,但它在某些情况下(pauli矩阵)找到了解决方案,而在许多其他情况下没有找到解决方案。它永远不会找到随机的SU(2)矩阵。
有人知道一般方法吗?我已经找到了如何做3x3矩阵,但不是2x2 ZYZ。
祝你好运!
答案 0 :(得分:0)
,由郝海峰撰写(你不是自己找到的):
function orthm = ang2orth(ang)
sa = sin(ang(2)); ca = cos(ang(2));
sb = sin(ang(1)); cb = cos(ang(1));
sc = sin(ang(3)); cc = cos(ang(3));
ra = [ ca, sa, 0; ...
-sa, ca, 0; ...
0, 0, 1];
rb = [ cb, 0, sb; ...
0, 1, 0; ...
-sb, 0, cb];
rc = [ 1, 0, 0; ...
0, cc, sc;...
0, -sc, cc];
orthm = rc*rb*ra;
function ang = orth2ang(orthm)
ang(1) = asin(orthm(1,3)); %Wei du
ang(2) = angle( orthm(1,1:2)*[1 ;i] ); %Jing Du
yz = orthm* ...
[orthm(1,:)',...
[-sin(ang(2)); cos(ang(2)); 0],...
[-sin(ang(1))*cos(ang(2)); -sin(ang(1)*sin(ang(2)));
cos(ang(1))] ];
ang(3) = angle(yz(2,2:3)* [1; i]); % Xuan Du
可以看到here和here There is an isomorphism between SO(3) and SU(2)
: