Satellite Orbit

  • Thread starter SolStis
  • Start date
  • #1
12
0
Hi, i am trying to solve the following differential equations for a satellite travelling from earth to jupiter using a runge kutta algorithm.

The equations are:

dr/dt=+-(h/r)[((r/r0)-1)(1-(r/r1))]^(0.5)

and

dr/d(theta)=+-r[((r/r0)-1)(1-(r/r1))]^(0.5).

where r0 and r1 are the radii of earths and Jupiters orbits respectively.

The problem is when trying to solve with the runge kutta when the initial conditions are set (ie r = r0) the function returns 0 and hence there is nochange in further steps. The equations in polar co ords. and my RK is as follows:

double dr(double r)
{
double h,v0=38534.7, r0=0.1495*(pow(10.0,12)), r1=0.7778*(pow(10.0,12));
h=v0*r0;
return h/pow(r,2);
}

int main()
{
double t=0.0, s=10000,r1,th1,kr1,kr2,kr3,kr4; //Declaration and initiation of vars for use in 4th order runge kutta
int n=0;
while (t<=8000000)
{
t=n*s; //time
cout << t << "\t" << r0 << endl; //output data to terminal and file
outs1 << t << "\t" << r0 << endl;

//Runge Kutta Method
kr1=s*dr(r0);
kr2=s*dr(r0+kr1/2);
kr3=s*dr(r0+kr2/2);
kr4=s*dr(r0+kr3);
r1=r0+(kr1+2*kr2+2*kr3+kr4)/6.0;

r0=r1;
n++;
}
}

I am unsure if i am using the correct equations of motion to solve this and any help would be greatly appreciated

Cheers

Sol
 

Answers and Replies

Related Threads on Satellite Orbit

  • Last Post
Replies
0
Views
3K
  • Last Post
Replies
7
Views
2K
  • Last Post
Replies
6
Views
5K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
5
Views
899
  • Last Post
Replies
1
Views
3K
Replies
1
Views
12K
Replies
5
Views
2K
Replies
1
Views
659
Replies
4
Views
850
Top