- #1

- 12

- 0

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