SLAM中的李群和李代数(个人理解(1)--旋转矩阵(正交矩阵)求导)



1. 旋转矩阵求导资料

SLAM的理论部分实在是过于晦涩难懂。仅仅做几点个人从多个知乎问答上看到后的理解记录,汇总了一些问答的内容:
1.反对称矩阵[2]
由于旋转矩阵为正交矩阵,其满足以下性质:
R R T = E \boldsymbol{RR}^T=\boldsymbol{E} RRT=E
等式两边对时间t求导,可得:(PS: 数学不好,,感觉比较像复合函数求导,单位矩阵求导变为0矩阵了)
R ˙ R T + R R ˙ T = 0 \boldsymbol{\dot{R}R}^T+\boldsymbol{R\dot{R}}^T=0 R˙RT+RR˙T=0
移项,变换一下,得到:
R ˙ R T = − ( R ˙ R T ) T \boldsymbol{\dot{R}R}^T=-\left( \boldsymbol{\dot{R}R}^T \right) ^T R˙RT=(R˙RT)T
数学没学好的不知道矩阵相乘转置为啥要倒过来,可以看这张图(出处是[3],不知道是不是原始出处…)。
在这里插入图片描述
可以观察到, R ˙ R T \boldsymbol{\dot{R}R}^T R˙RT满足反对称矩阵性质,按照SLAM十四讲中的符号记法,记这个反对称矩阵为:
w 尖 = [ 0 − w z w y w z 0 − w x − w y w x 0 ] \boldsymbol{w}^{尖} =\left[ \begin{matrix} 0& -w_z& w_y\\ w_z& 0& -w_x\\ -w_y& w_x& 0\\ \end{matrix} \right] w=0wzwywz0wxwywx0
R ˙ R T = w 尖 \boldsymbol{\dot{R}R}^T=\boldsymbol{w}^{尖} R˙RT=w,可得旋转矩阵(正交矩阵)的导数为 w 尖 R \boldsymbol{w}^{尖}\boldsymbol{R} wR

2. Matlab验证实验

  1. 首先,在matlab中生成符号矩阵
clear
syms a b c d e f g h i;
Q = [a,b,c;d,e,f;g,h,i];

QR分解得到正交矩阵,但这样生成的正交矩阵好长一串…


Q =
[a/(abs(a)^2 + abs(d)^2 + abs(g)^2)^(1/2),....
[d/(abs(a)^2 + abs(d)^2 + abs(g)^2)^(1/2),....
[g/(abs(a)^2 + abs(d)^2 + abs(g)^2)^(1/2), ....
  1. 换一种思路,因为需要矩阵对时间t求导,不如元素全用t的函数代替
clear
syms a b c t;
A = [a*t,b*t,c*t;a*t^2,b*t^2,c*t^2;a*t^2,b*t^2,c*t^2];
 [Q, R] = qr(A);
Q =
 
[  (a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2), -((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2), -2^(1/2)*((abs(a)^2*abs(t)^4)/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)))]
[(a*t^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2),   -(t*abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)),                                                                     -2^(1/2)*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - 1)]
[(a*t^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2),   -(t*abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)),                                                                         -2^(1/2)*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2))]

然后,对t求导

Diff_R = diff(Q,t)
 
Diff_R =
 
[        a/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2)),                                                                                                                                               ((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) + (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)), 2^(1/2)*((abs(a)^2*abs(t)^4)/(t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (4*abs(a)^2*abs(t)^3*sign(t))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (2*abs(a)^2*abs(t)^3*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - (abs(a)^2*abs(t)*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)))]
[(2*a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2)), (t*abs(a)^2*abs(t)^2*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)) - (2*t*abs(a)^2*abs(t)*sign(t))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) - (abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) + (t*abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -2^(1/2)*((4*abs(a)^2*abs(t)^3*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 + (2*abs(a)^4*abs(t)^5*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (abs(a)^4*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^3 + (2*abs(a)^4*abs(t)^3*sign(t)*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2)]
[(2*a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2)), (t*abs(a)^2*abs(t)^2*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)) - (2*t*abs(a)^2*abs(t)*sign(t))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) - (abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) + (t*abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -2^(1/2)*((4*abs(a)^2*abs(t)^3*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 + (2*abs(a)^4*abs(t)^5*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (abs(a)^4*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^3 + (2*abs(a)^4*abs(t)^3*sign(t)*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2)]

求出来很长一串,,然后验证下是不是反对称矩阵。。

T = Diff_R*Q'
T =
 
[(conj(a)*conj(t)*(a/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) + (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2))))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) - 2*((abs(a)^2*abs(t)^4)/(conj(t)*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*conj(t)*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)))*((abs(a)^2*abs(t)^4)/(t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (4*abs(a)^2*abs(t)^3*sign(t))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (2*abs(a)^2*abs(t)^3*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - (abs(a)^2*abs(t)*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))), (conj(a)*conj(t)^2*(a/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - 2*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - 1)*((abs(a)^2*abs(t)^4)/(t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (4*abs(a)^2*abs(t)^3*sign(t))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (2*abs(a)^2*abs(t)^3*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - (abs(a)^2*abs(t)*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))) - (abs(a)^2*abs(t)^2*conj(t)*(((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) + (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2))))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)), (conj(a)*conj(t)^2*(a/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - 2*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2))*((abs(a)^2*abs(t)^4)/(t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (4*abs(a)^2*abs(t)^3*sign(t))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) - (2*abs(a)^2*abs(t)^3*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t^2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - (abs(a)^2*abs(t)*sign(t)*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(t*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))) - (abs(a)^2*abs(t)^2*conj(t)*(((abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (2*abs(a)^2*abs(t)*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) + (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2))))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2))]
[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  2*((abs(a)^2*abs(t)^4)/(conj(t)*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)) + (abs(a)^2*abs(t)^2*((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*(2*abs(t)^2 + 1))/(2*conj(t)*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)))*((4*abs(a)^2*abs(t)^3*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 + (2*abs(a)^4*abs(t)^5*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (abs(a)^4*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^3 + (2*abs(a)^4*abs(t)^3*sign(t)*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (((abs(a)^2*abs(t)^2)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - 1)*((abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) + (2*t*abs(a)^2*abs(t)*sign(t))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) - (t*abs(a)^2*abs(t)^2*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)) - (t*abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2))))/((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2) + (conj(a)*conj(t)*((2*a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   2*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) - 1)*((4*abs(a)^2*abs(t)^3*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 + (2*abs(a)^4*abs(t)^5*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (abs(a)^4*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^3 + (2*abs(a)^4*abs(t)^3*sign(t)*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (conj(a)*conj(t)^2*((2*a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) + (abs(a)^2*abs(t)^2*conj(t)*((abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) + (2*t*abs(a)^2*abs(t)*sign(t))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) - (t*abs(a)^2*abs(t)^2*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)) - (t*abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2))))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   2*((abs(a)^2*abs(t)^4)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) + (abs(a)^4*abs(t)^4*(2*abs(t)^2 + 1))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2))*((4*abs(a)^2*abs(t)^3*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4) - (abs(a)^2*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 + (2*abs(a)^4*abs(t)^5*sign(t))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2 - (abs(a)^4*abs(t)^4*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t))*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^3 + (2*abs(a)^4*abs(t)^3*sign(t)*(2*abs(t)^2 + 1))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2) + (conj(a)*conj(t)^2*((2*a*t)/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) - (a*t^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(3/2))))/(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^(1/2) + (abs(a)^2*abs(t)^2*conj(t)*((abs(a)^2*abs(t)^2)/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) + (2*t*abs(a)^2*abs(t)*sign(t))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2)) - (t*abs(a)^2*abs(t)^2*((4*abs(t)*sign(t))/(2*abs(t)^2 + 1) - (8*abs(t)^3*sign(t))/(2*abs(t)^2 + 1)^2))/(2*(abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(3/2)) - (t*abs(a)^2*abs(t)^2*(2*abs(a)^2*abs(t)*sign(t) + 8*abs(a)^2*abs(t)^3*sign(t)))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)^2*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2))))/((abs(a)^2*abs(t)^2 + 2*abs(a)^2*abs(t)^4)*((2*abs(t)^2)/(2*abs(t)^2 + 1))^(1/2))]
[      

然后,用个函数验证下T是不是反对称矩阵…

if(T==(-T'))
    fprintf('该矩阵是反对称矩阵\n');
else
    fprintf('该矩阵不是反对称矩阵\n');
end

没找到问题所在,可能是matlab做的是数值计算不精准?

参考文献

[1] https://www.zhihu.com/question/422718770
[2] https://zhuanlan.zhihu.com/p/388778282
[3]https://www.zhihu.com/question/430903721/answer/1586962146

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuGuDa123

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值