%Función que propaga la posición de un planeta(TIERRA o JUPITER) a un instante t desde la %época dados los elementos orbitales en la época function EOt=pplanetaCP(t,EO) global mus %EOt=zeros(1,12); T=2*pi*sqrt(EO(2)^3/(mus)); n=2*pi/T; DeltaT=t; %T0=t/36525; %EO(1:6)=EO(1:6)+EO(7:12)*T0; % EOt(1:12)=EO(1:12); % M=EOt(6)-EOt(5); % EOt(5)=EOt(5)-EOt(4); % % myfun = @(E,M) M-E+EO(1)*sin(E); % X = fzero(@(E) myfun(E,M),0.1); % TAepoch=2*atan(sqrt((1+EO(1))/(1-EO(1)))*tan(X/2)); % % EOt(6)=TAepoch; if floor(DeltaT/T)==0 %Hay q porpagar un tiempo menor al del periodo del planeta E=atan(tan(EO(6)/2)*sqrt((1-EO(1))/(1+EO(1))))*2; M=E-EO(1)*sin(E); TPOS=M/n; if (TPOS+DeltaT)>T incT=(TPOS+DeltaT)-T; M=n*incT; M=2*pi*(M/2/pi-floor(M/2/pi)); myfun = @(E,M) M-E+EO(1)*sin(E); X = fzero(@(E) myfun(E,M),0.1); TAepoch=2*atan(sqrt((1+EO(1))/(1-EO(1)))*tan(X/2)); else incT=(TPOS+DeltaT); M=n*incT; M=2*pi*(M/2/pi-floor(M/2/pi)); myfun = @(E,M) M-E+EO(1)*sin(E); X = fzero(@(E) myfun(E,M),0.1); TAepoch=2*atan(sqrt((1+EO(1))/(1-EO(1)))*tan(X/2)); end else %Hay que propagar mas de una órbita fractT=DeltaT/T-floor(DeltaT/T); DeltaT=fractT*T; E=atan(tan(EO(6)/2)*sqrt((1-EO(1))/(1+EO(1))))*2; M=E-EO(1)*sin(E); TPOS=M/n; if (TPOS+DeltaT)>T incT=(TPOS+DeltaT)-T; M=n*incT; M=2*pi*(M/2/pi-floor(M/2/pi)); myfun = @(E,M) M-E+EO(1)*sin(E); X = fzero(@(E) myfun(E,M),0.05); TAepoch=2*atan(sqrt((1+EO(1))/(1-EO(1)))*tan(X/2)); else incT=(TPOS+DeltaT); M=n*incT; M=2*pi*(M/2/pi-floor(M/2/pi)); myfun = @(E,M) M-E+EO(1)*sin(E); X = fzero(@(E) myfun(E,M),0.05); TAepoch=2*atan(sqrt((1+EO(1))/(1-EO(1)))*tan(X/2)); end end EOt=EO; EOt(6)=TAepoch; end