这是角度θ的kepler方程:
M=2*atan(tan(theta/2)*c)-e*sin(2*atan(tan(theta/2)*c))
其中e=0.2056
和c=sqrt((1-e)/(1+e))
M来自0 to 2pi
。
我的X值是M,我的Y值是theta。我应该使用什么代码来绘制theta(M)?
答案 0 :(得分:1)
调整答案以使M的范围为(0,2 * pi)
你的等式:
M = 2 * ATAN(TAN(希塔/ 2) C)-e SIN(2 * ATAN(TAN(希塔/ 2)* C))
将M定义为theta的函数。可能在实际使用中你会知道M并且需要计算θ,但是为了得到一个图,不需要将θ的解析公式作为M的函数。你只需要一系列x-y值。因此,您可以生成一系列thetas,计算M并绘制它们,如下所示:
e=0.2056
c=sqrt((1-e)/(1+e))
theta = seq(0,2*pi, 0.1)
M=2*atan(tan(theta/2)*c)-e*sin(2*atan(tan(theta/2)*c))
M[M<0] = M[M<0] + 2*pi
plot(M, theta, pch=20)
如果你需要能够从给定的M计算theta的值,你可以像这样逼近反函数。
THETA = approxfun(M, theta)
plot(M, THETA(M), type="l", ylab="theta")