求解cos()和sin()中的变量

时间:2011-04-06 09:15:08

标签: c++ c math

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)的值?

2 个答案:

答案 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

这不仅仅是一个数学问题,而是一个编程问题。