我如何在R中绘制这个超越方程?

我如何在R中绘制这个超越方程?,r,plot,R,Plot,这是开普勒方程,角度θ: M=2*atan(tan(θ/2)*c)-e*sin(2*atan(tan(θ/2)*c)) 其中e=0.2056和c=sqrt((1-e)/(1+e)) M从0变为2pi。 我的X值是M,Y值是θ。我应该使用什么代码来绘制θ(M) 调整答案,使M的范围为(0,2*pi) 你的方程式: M=2*atan(tan(θ/2)c)-esin(2*atan(tan(θ/2)*c)) 将M定义为θ的函数。可能在实际使用中,你会知道M,需要计算θ,但要得到一个图,不需要θ作为M函数

这是开普勒方程,角度θ:
M=2*atan(tan(θ/2)*c)-e*sin(2*atan(tan(θ/2)*c))
其中
e=0.2056
c=sqrt((1-e)/(1+e))

M从
0变为2pi

我的X值是M,Y值是θ。我应该使用什么代码来绘制θ(M)

调整答案,使M的范围为(0,2*pi)

你的方程式:

M=2*atan(tan(θ/2)c)-esin(2*atan(tan(θ/2)*c))

将M定义为θ的函数。可能在实际使用中,你会知道M,需要计算θ,但要得到一个图,不需要θ作为M函数的解析公式。你只需要一系列x-y值。所以,你可以生成一系列θ,计算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)

有什么问题?只要生成θ的范围
theta=seq(0,2*pi,0.1)
并绘制它。我不知道如何从方程中清除θ,它是一个超越方程。我需要θ函数来绘制它,它不是θ的范围,它是M的范围,θ是一个函数,M是序列谢谢你,这就是我需要的,求θ的反函数,在我的例子中,M只有从0到2pi的正值,所以我认为第一条曲线不应该出现
绘图(seq(0.1,pi,0.1),THETA(seq(0.1,pi,0.1)),type=“l”,xlab=“M”,ylab=“THETA”)
谢谢,你知道当M等于pi时曲线停止的原因吗,因为我想让曲线以2*pi而不是pi结束?是的。我只给了它数据,让它从-pi反函数到pi。答案调整了。
THETA = approxfun(M, theta)
plot(M, THETA(M), type="l", ylab="theta")