double g[2][2];
g[0][0] = cos(M_PI*0.5*(c - w*0.5));
g[0][1] = sin(M_PI*0.5*(c - w*0.5));
g[1][0] = cos(M_PI*0.5*(c + w*0.5));
g[1][1] = sin(M_PI*0.5*(c + w*0.5));
给出矩阵g。如何重写上述内容以找到(c,w)的值?
答案 0 :(得分:1)
使用atan2
确定pi / 2 *(cw / 2)和pi / 2 *(c + w / 2) - 当然两者都存在整数* 2pi的模糊度,你无能为力那样做。所以你知道有a,b这样c-w / 2 = a + 4 * m而c + w / 2 = b + 4 * n其中m,n是未知整数。
现在c =(a + b)/ 2 + 2 *(m + n)和w =(b-a)+ 4 *(n-m)其中,m,n是任意未知整数。
你可能更愿意写,比方说,k = m + n;那么c =(a + b)/ 2 + 2k和w =(b-a)+ 4k - 4m其中k,m是任意未知整数。
答案 1 :(得分:0)
g1 = cos(a - b)
g2 = sin(a - b)
g3 = cos(a + b)
g4 = sin(a + b)
所以
atan2(g1,g2) = A = a - b [+ N*2*PI]
atan2(g3,g4) = B = a + b [+ N*2*PI]
和
a = (A + B) / 2
b = B - a
这不仅仅是一个数学问题,而是一个编程问题。