1231 lines
68 KiB
Mathematica
1231 lines
68 KiB
Mathematica
|
function [dz,dLambda,du,da_oa] = ForcedElements1(P,Lambda,mu,z,u,OrdersAll,MaxPower)
|
||
|
% ForcedElements1: calculate the forced eccentricities and mean longitudes
|
||
|
% by a disturbing function expansion.
|
||
|
|
||
|
%Difference from ForcedElements:
|
||
|
% rather than writing down a series of terms, use a general expression for
|
||
|
% the disturbing function terms contributions and sum them up.
|
||
|
|
||
|
%Inputs: P - orbital periods, Lambda - mean longitudes, mu - planets/star
|
||
|
%mass ratio, z - free eccentricities (if they are not given, zero values
|
||
|
%are assumed), u - free inclinations (=I*exp(i*Omega) (if they are not given, zero values
|
||
|
%are assumed). Labmda, z and u can be given as columns of multiple values.
|
||
|
%OrdersAll: the number of j values taken in the expansion. If given an
|
||
|
%empty value [], the code will decide by itself what is the required
|
||
|
%number. MaxPower: the maximal (joint) power of eccentricities and
|
||
|
%inclinations taken in the expansion. Default is 4.
|
||
|
|
||
|
% Yair Judkovsky, 6.12.2020. Coded with lots of blood, swear and ink :)
|
||
|
|
||
|
if ~exist('z','var')
|
||
|
z = zeros(size(P));
|
||
|
end
|
||
|
|
||
|
if ~exist('u','var')
|
||
|
u = zeros(size(P));
|
||
|
end
|
||
|
|
||
|
if ~exist('OrdersAll','var')
|
||
|
OrdersAll = [];
|
||
|
end
|
||
|
|
||
|
if ~exist('MaxPower','var')
|
||
|
MaxPower = 4;
|
||
|
end
|
||
|
|
||
|
%mean motions
|
||
|
n = 2*pi./P;
|
||
|
|
||
|
%absolute values and angles of eccentricities
|
||
|
e = abs(z);
|
||
|
pom = angle(z);
|
||
|
|
||
|
%absolute values and angles of inclinations
|
||
|
I = abs(u);
|
||
|
Om = angle(u);
|
||
|
|
||
|
%allocate space for 3d matrices that will hold the values of dLambda and dz
|
||
|
%according to these dimensios: orders, data points, number of planets
|
||
|
dLambdaMatrix = zeros(size(z,1),length(P));
|
||
|
dzMatrix = zeros(size(z,1),length(P));
|
||
|
duMatrix = zeros(size(z,1),length(P));
|
||
|
da_oaMatrix = zeros(size(z,1),length(P));
|
||
|
|
||
|
%for each pair of planets, calculate the 2nd order forced
|
||
|
%eccentricity. secular terms are ignored.
|
||
|
for j1 = 1:length(P)
|
||
|
for j2 = (j1+1):length(P)
|
||
|
|
||
|
%ratio of semi-major axes
|
||
|
alph = (n(j2)/n(j1))^(2/3)*((1+mu(j1))/(1+mu(j2)))^(1/3);
|
||
|
|
||
|
%write the orbital elements for this specific pair
|
||
|
Lambda1 = Lambda(:,j1);
|
||
|
Lambda2 = Lambda(:,j2);
|
||
|
|
||
|
%write the complex eccentricities, magnitude and angle of the
|
||
|
%currently analyzed pair
|
||
|
e1 = e(:,j1);
|
||
|
e2 = e(:,j2);
|
||
|
pom1 = pom(:,j1);
|
||
|
pom2 = pom(:,j2);
|
||
|
|
||
|
%write the complex inclinations, magnitude and angle of the
|
||
|
%currently analyzed pair
|
||
|
I1 = I(:,j1);
|
||
|
I2 = I(:,j2);
|
||
|
Om1 = Om(:,j1);
|
||
|
Om2 = Om(:,j2);
|
||
|
|
||
|
%translate from I to s - as defined in the disturbing function
|
||
|
%expansion (Solar System Dynamics)
|
||
|
s1 = sin(I1/2);
|
||
|
s2 = sin(I2/2);
|
||
|
|
||
|
%write the relative masses and the mean motions of the currently analyzed pair
|
||
|
mu1 = mu(j1);
|
||
|
mu2 = mu(j2);
|
||
|
n1 = n(j1);
|
||
|
n2 = n(j2);
|
||
|
|
||
|
%set number of orders, if not given, by the proximity to closest
|
||
|
%MMRs
|
||
|
if isempty(OrdersAll)
|
||
|
J = round((1:MaxPower)*P(j2)/(P(j2)-P(j1)));
|
||
|
Orders = max([J 6])+1;
|
||
|
else
|
||
|
Orders = OrdersAll;
|
||
|
end
|
||
|
|
||
|
%prepare the structure Terms, which will include the table elements
|
||
|
Terms = [];
|
||
|
clear AllTerms
|
||
|
|
||
|
%here, instead of the loop on j, make a loop on the different
|
||
|
%terms, to be continued
|
||
|
for j = -Orders:Orders
|
||
|
|
||
|
|
||
|
%% CalculateSMAFunctions;
|
||
|
|
||
|
%Calculate Laplace coefficients and their semi-major axis functions - Solar
|
||
|
%System Dynamics (Murray & Dermott 1999), Appendix B
|
||
|
|
||
|
for DummyIdx = 1:1
|
||
|
|
||
|
|
||
|
|
||
|
% Aj = LaplaceCoeffs(alph,0.5,j,0);
|
||
|
% DAj = LaplaceCoeffs(alph,0.5,j,1);
|
||
|
% D2Aj = LaplaceCoeffs(alph,0.5,j,2);
|
||
|
% D3Aj = LaplaceCoeffs(alph,0.5,j,3);
|
||
|
% D4Aj = LaplaceCoeffs(alph,0.5,j,4);
|
||
|
% D5Aj = LaplaceCoeffs(alph,0.5,j,5);
|
||
|
%
|
||
|
% Ajp1 = LaplaceCoeffs(alph,0.5,j+1,0);
|
||
|
% DAjp1 = LaplaceCoeffs(alph,0.5,j+1,1);
|
||
|
% D2Ajp1 = LaplaceCoeffs(alph,0.5,j+1,2);
|
||
|
% D3Ajp1 = LaplaceCoeffs(alph,0.5,j+1,3);
|
||
|
% D4Ajp1 = LaplaceCoeffs(alph,0.5,j+1,4);
|
||
|
% D5Ajp1 = LaplaceCoeffs(alph,0.5,j+1,5);
|
||
|
%
|
||
|
% Ajp2 = LaplaceCoeffs(alph,0.5,j+2,0);
|
||
|
% DAjp2 = LaplaceCoeffs(alph,0.5,j+2,1);
|
||
|
% D2Ajp2 = LaplaceCoeffs(alph,0.5,j+2,2);
|
||
|
% D3Ajp2 = LaplaceCoeffs(alph,0.5,j+2,3);
|
||
|
% D4Ajp2 = LaplaceCoeffs(alph,0.5,j+2,4);
|
||
|
% D5Ajp2 = LaplaceCoeffs(alph,0.5,j+2,5);
|
||
|
%
|
||
|
% Ajm1 = LaplaceCoeffs(alph,0.5,j-1,0);
|
||
|
% DAjm1 = LaplaceCoeffs(alph,0.5,j-1,1);
|
||
|
% D2Ajm1 = LaplaceCoeffs(alph,0.5,j-1,2);
|
||
|
% D3Ajm1 = LaplaceCoeffs(alph,0.5,j-1,3);
|
||
|
% D4Ajm1 = LaplaceCoeffs(alph,0.5,j-1,4);
|
||
|
% D5Ajm1 = LaplaceCoeffs(alph,0.5,j-1,5);
|
||
|
%
|
||
|
% Ajm2 = LaplaceCoeffs(alph,0.5,j-2,0);
|
||
|
% DAjm2 = LaplaceCoeffs(alph,0.5,j-2,1);
|
||
|
% D2Ajm2 = LaplaceCoeffs(alph,0.5,j-2,2);
|
||
|
% D3Ajm2 = LaplaceCoeffs(alph,0.5,j-2,3);
|
||
|
% D4Ajm2 = LaplaceCoeffs(alph,0.5,j-2,4);
|
||
|
% D5Ajm2 = LaplaceCoeffs(alph,0.5,j-2,5);
|
||
|
%
|
||
|
% Ajm3 = LaplaceCoeffs(alph,0.5,j-3,0);
|
||
|
% DAjm3 = LaplaceCoeffs(alph,0.5,j-3,1);
|
||
|
% D2Ajm3 = LaplaceCoeffs(alph,0.5,j-3,2);
|
||
|
% D3Ajm3 = LaplaceCoeffs(alph,0.5,j-3,3);
|
||
|
% D4Ajm3 = LaplaceCoeffs(alph,0.5,j-3,4);
|
||
|
% D5Ajm3 = LaplaceCoeffs(alph,0.5,j-3,5);
|
||
|
%
|
||
|
% Ajm4 = LaplaceCoeffs(alph,0.5,j-4,0);
|
||
|
% DAjm4 = LaplaceCoeffs(alph,0.5,j-4,1);
|
||
|
% D2Ajm4 = LaplaceCoeffs(alph,0.5,j-4,2);
|
||
|
% D3Ajm4 = LaplaceCoeffs(alph,0.5,j-4,3);
|
||
|
% D4Ajm4 = LaplaceCoeffs(alph,0.5,j-4,4);
|
||
|
% D5Ajm4 = LaplaceCoeffs(alph,0.5,j-4,5);
|
||
|
%
|
||
|
%
|
||
|
% Bj = LaplaceCoeffs(alph,1.5,j,0);
|
||
|
% DBj = LaplaceCoeffs(alph,1.5,j,1);
|
||
|
% D2Bj = LaplaceCoeffs(alph,1.5,j,2);
|
||
|
% D3Bj = LaplaceCoeffs(alph,1.5,j,3);
|
||
|
%
|
||
|
% Bjm1 = LaplaceCoeffs(alph,1.5,j-1,0);
|
||
|
% DBjm1 = LaplaceCoeffs(alph,1.5,j-1,1);
|
||
|
% D2Bjm1 = LaplaceCoeffs(alph,1.5,j-1,2);
|
||
|
% D3Bjm1 = LaplaceCoeffs(alph,1.5,j-1,3);
|
||
|
%
|
||
|
% Bjm2 = LaplaceCoeffs(alph,1.5,j-2,0);
|
||
|
% DBjm2 = LaplaceCoeffs(alph,1.5,j-2,1);
|
||
|
% D2Bjm2 = LaplaceCoeffs(alph,1.5,j-2,2);
|
||
|
% D3Bjm2 = LaplaceCoeffs(alph,1.5,j-2,3);
|
||
|
%
|
||
|
% Bjm3 = LaplaceCoeffs(alph,1.5,j-3,0);
|
||
|
% DBjm3 = LaplaceCoeffs(alph,1.5,j-3,1);
|
||
|
% D2Bjm3 = LaplaceCoeffs(alph,1.5,j-3,2);
|
||
|
% D3Bjm3 = LaplaceCoeffs(alph,1.5,j-3,3);
|
||
|
%
|
||
|
%
|
||
|
%
|
||
|
% Bjp1 = LaplaceCoeffs(alph,1.5,j+1,0);
|
||
|
% DBjp1 = LaplaceCoeffs(alph,1.5,j+1,1);
|
||
|
% D2Bjp1 = LaplaceCoeffs(alph,1.5,j+1,2);
|
||
|
% D3Bjp1 = LaplaceCoeffs(alph,1.5,j+1,3);
|
||
|
%
|
||
|
% Bjp2 = LaplaceCoeffs(alph,1.5,j+2,0);
|
||
|
% DBjp2 = LaplaceCoeffs(alph,1.5,j+2,1);
|
||
|
% D2Bjp2 = LaplaceCoeffs(alph,1.5,j+2,2);
|
||
|
% D3Bjp2 = LaplaceCoeffs(alph,1.5,j+2,3);
|
||
|
%
|
||
|
% Cj = LaplaceCoeffs(alph,2.5,j,0);
|
||
|
% DCj = LaplaceCoeffs(alph,2.5,j,1);
|
||
|
%
|
||
|
% Cjm2 = LaplaceCoeffs(alph,2.5,j-2,0);
|
||
|
% DCjm2 = LaplaceCoeffs(alph,2.5,j-2,1);
|
||
|
%
|
||
|
% Cjp2 = LaplaceCoeffs(alph,2.5,j+2,0);
|
||
|
% DCjp2 = LaplaceCoeffs(alph,2.5,j+2,1);
|
||
|
|
||
|
|
||
|
|
||
|
sVec = [0.5*ones(1,42) 1.5*ones(1,24) 2.5*ones(1,6)];
|
||
|
jVec = [j*ones(1,6) (j+1)*ones(1,6) (j+2)*ones(1,6) (j-1)*ones(1,6) (j-2)*ones(1,6) (j-3)*ones(1,6) (j-4)*ones(1,6) (j)*ones(1,4) (j-1)*ones(1,4) (j-2)*ones(1,4) (j-3)*ones(1,4) (j+1)*ones(1,4) (j+2)*ones(1,4) j j j-2 j-2 j+2 j+2];
|
||
|
DVec = [0:5 0:5 0:5 0:5 0:5 0:5 0:5 0:3 0:3 0:3 0:3 0:3 0:3 0:1 0:1 0:1];
|
||
|
CoeffsVec = LaplaceCoeffs(alph,sVec,jVec,DVec);
|
||
|
Aj = CoeffsVec(1);
|
||
|
DAj = CoeffsVec(2);
|
||
|
D2Aj = CoeffsVec(3);
|
||
|
D3Aj = CoeffsVec(4);
|
||
|
D4Aj = CoeffsVec(5);
|
||
|
D5Aj = CoeffsVec(6);
|
||
|
|
||
|
Ajp1 = CoeffsVec(7);
|
||
|
DAjp1 = CoeffsVec(8);
|
||
|
D2Ajp1 = CoeffsVec(9);
|
||
|
D3Ajp1 = CoeffsVec(10);
|
||
|
D4Ajp1 = CoeffsVec(11);
|
||
|
D5Ajp1 = CoeffsVec(12);
|
||
|
|
||
|
Ajp2 = CoeffsVec(13);
|
||
|
DAjp2 = CoeffsVec(14);
|
||
|
D2Ajp2 = CoeffsVec(15);
|
||
|
D3Ajp2 = CoeffsVec(16);
|
||
|
D4Ajp2 = CoeffsVec(17);
|
||
|
D5Ajp2 = CoeffsVec(18);
|
||
|
|
||
|
Ajm1 = CoeffsVec(19);
|
||
|
DAjm1 = CoeffsVec(20);
|
||
|
D2Ajm1 = CoeffsVec(21);
|
||
|
D3Ajm1 = CoeffsVec(22);
|
||
|
D4Ajm1 = CoeffsVec(23);
|
||
|
D5Ajm1 = CoeffsVec(24);
|
||
|
|
||
|
Ajm2 = CoeffsVec(25);
|
||
|
DAjm2 = CoeffsVec(26);
|
||
|
D2Ajm2 = CoeffsVec(27);
|
||
|
D3Ajm2 = CoeffsVec(28);
|
||
|
D4Ajm2 = CoeffsVec(29);
|
||
|
D5Ajm2 = CoeffsVec(30);
|
||
|
|
||
|
Ajm3 = CoeffsVec(31);
|
||
|
DAjm3 = CoeffsVec(32);
|
||
|
D2Ajm3 = CoeffsVec(33);
|
||
|
D3Ajm3 = CoeffsVec(34);
|
||
|
D4Ajm3 = CoeffsVec(35);
|
||
|
D5Ajm3 = CoeffsVec(36);
|
||
|
|
||
|
Ajm4 = CoeffsVec(37);
|
||
|
DAjm4 = CoeffsVec(38);
|
||
|
D2Ajm4 = CoeffsVec(39);
|
||
|
D3Ajm4 = CoeffsVec(40);
|
||
|
D4Ajm4 = CoeffsVec(41);
|
||
|
D5Ajm4 = CoeffsVec(42);
|
||
|
|
||
|
|
||
|
Bj = CoeffsVec(43);
|
||
|
DBj = CoeffsVec(44);
|
||
|
D2Bj = CoeffsVec(45);
|
||
|
D3Bj = CoeffsVec(46);
|
||
|
|
||
|
Bjm1 = CoeffsVec(47);
|
||
|
DBjm1 = CoeffsVec(48);
|
||
|
D2Bjm1 = CoeffsVec(49);
|
||
|
D3Bjm1 = CoeffsVec(50);
|
||
|
|
||
|
Bjm2 = CoeffsVec(51);
|
||
|
DBjm2 = CoeffsVec(52);
|
||
|
D2Bjm2 = CoeffsVec(53);
|
||
|
D3Bjm2 = CoeffsVec(54);
|
||
|
|
||
|
Bjm3 = CoeffsVec(55);
|
||
|
DBjm3 = CoeffsVec(56);
|
||
|
D2Bjm3 = CoeffsVec(57);
|
||
|
D3Bjm3 = CoeffsVec(58);
|
||
|
|
||
|
|
||
|
|
||
|
Bjp1 = CoeffsVec(59);
|
||
|
DBjp1 = CoeffsVec(60);
|
||
|
D2Bjp1 = CoeffsVec(61);
|
||
|
D3Bjp1 = CoeffsVec(62);
|
||
|
|
||
|
Bjp2 = CoeffsVec(63);
|
||
|
DBjp2 = CoeffsVec(64);
|
||
|
D2Bjp2 = CoeffsVec(65);
|
||
|
D3Bjp2 = CoeffsVec(66);
|
||
|
|
||
|
Cj = CoeffsVec(67);
|
||
|
DCj = CoeffsVec(68);
|
||
|
|
||
|
Cjm2 = CoeffsVec(69);
|
||
|
DCjm2 = CoeffsVec(70);
|
||
|
|
||
|
Cjp2 = CoeffsVec(71);
|
||
|
DCjp2 = CoeffsVec(72);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
%0th order semi-major axis functions
|
||
|
f1 = 0.5*Aj;
|
||
|
Df1 = 0.5*DAj;
|
||
|
|
||
|
f2 = 1/8*(-4*j^2*Aj +2*alph*DAj +alph^2*D2Aj);
|
||
|
Df2 = 1/8*(-4*j^2*DAj+2*DAj+2*alph*D2Aj+2*alph*D2Aj+alph^2*D3Aj);
|
||
|
|
||
|
f3 = -0.25*alph*Bjm1 -0.25*alph*Bjp1;
|
||
|
Df3 = -0.25*Bjm1-0.25*alph*DBjm1-0.25*Bjp1-0.25*alph*DBjp1;
|
||
|
|
||
|
f4 = 1/128*((-9*j^2+16*j^4)*Aj +(-8*j^2)*alph*DAj +(-8*j^2)*alph^2*D2Aj +4*alph^3*D3Aj +alph^4*D4Aj);
|
||
|
Df4 = 1/128*((-9*j^2+16*j^4)*DAj+(-8*j^2)*(DAj+alph*D2Aj)+(-8*j^2)*(2*alph*D2Aj+alph^2*D3Aj)+4*(3*alph^2*D3Aj+alph^3*D4Aj)+(4*alph^3*D4Aj+alph^4+D5Aj));
|
||
|
|
||
|
f5 = 1/32*((16*j^4)*Aj +(4-16*j^2)*alph*DAj +(14-8*j^2)*alph^2*D2Aj +(8)*alph^3*D3Aj +(1)*alph^4*D4Aj);
|
||
|
Df5 = 1/32*((16*j^4)*DAj +(4-16*j^2)*(DAj+alph*D2Aj) +(14-8*j^2)*(2*alph*D2Aj+alph^2*D3Aj) +(8)*(3*alph^2*D3Aj+alph^3*D4Aj) +(1)*(4*alph^3*D4Aj+alph^4*D5Aj));
|
||
|
|
||
|
f6 = 1/128*((-17*j^2+16*j^4)*Aj +(24-24*j^2)*alph*DAj +(36-8*j^2)*alph^2*D2Aj +(12)*alph^3*D3Aj +(1)*alph^4*D4Aj);
|
||
|
Df6 = 1/128*((-17*j^2+16*j^4)*DAj+(24-24*j^2)*(DAj+alph*D2Aj)+(36-8*j^2)*(2*alph*D2Aj+alph^2*D3Aj)+(12)*(3*alph^2*D3Aj+alph^3*D4Aj)+(1)*(4*alph^3*D4Aj+alph^4*D5Aj));
|
||
|
|
||
|
f7 = 1/16*((-2+4*j^2)*alph*Bjm1 +(-4)*alph^2*DBjm1 +(-1)*alph^3*D2Bjm1)...
|
||
|
+1/16*((-2+4*j^2)*alph*Bjp1 +(-4)*alph^2*DBjp1 +(-1)*alph^3*D2Bjp1);
|
||
|
Df7 = 1/16*((-2+4*j^2)*(Bjm1+alph*DBjm1)+(-4)*(2*alph*DBjm1+alph^2*D2Bjm1)+(-1)*(3*alph^2*D2Bjm1+alph^3*D3Bjm1))...
|
||
|
+1/16*((-2+4*j^2)*(Bjp1+alph*DBjp1) +(-4)*(2*alph*DBjp1+alph^2*D2Bjp1) +(-1)*(3*alph^2*D2Bjp1+alph^3*D3Bjp1));
|
||
|
|
||
|
f8 = alph^2*(3/16*Cjm2+0.75*Cj+3/16*Cjp2);
|
||
|
Df8 = 2*alph*(3/16*Cjm2+0.75*Cj+3/16*Cjp2)+alph^2*(3/16*DCjm2+0.75*DCj+3/16*DCjp2);
|
||
|
|
||
|
f9 = 0.25*alph*(Bjm1+Bjp1) +3/8*alph^2*Cjm2 +15/4*alph^2*Cj +3/8*alph^2*Cjp2;
|
||
|
Df9 = 0.25*((Bjm1+Bjp1)+alph*(DBjm1+DBjp1))+3/8*(2*alph*Cjm2+alph^2*DCjm2)+15/4*(2*alph*Cj+alph^2*DCj)+3/8*(2*alph*Cjp2+alph^2*DCjp2);
|
||
|
|
||
|
f10 = 0.25*((2+6*j+4*j^2)*Ajp1 -2*alph*DAjp1 -alph^2*D2Ajp1);
|
||
|
Df10 = 0.25*((2+6*j+4*j^2)*DAjp1-2*(DAjp1+alph*D2Ajp1)-(2*alph*D2Ajp1+alph^2*D3Ajp1));
|
||
|
|
||
|
f11 = 1/32*((-6*j-26*j^2-36*j^3-16*j^4)*Ajp1 +(6*j+12*j^2)*alph*DAjp1 +(-4+7*j)*alph^2*D2Ajp1 -6*alph^3*D3Ajp1 -alph^4*D4Ajp1);
|
||
|
Df11 = 1/32*((-6*j-26*j^2-36*j^3-16*j^4)*DAjp1+(6*j+12*j^2)*(DAjp1+alph*D2Ajp1)+(-4+7*j)*(2*alph*D2Ajp1+alph^2*D3Ajp1)-6*(3*alph^2*D3Ajp1+alph^3*D4Ajp1)-(4*alph^3*D4Ajp1+alph^4*D5Ajp1));
|
||
|
|
||
|
f12 = 1/32*((4+2*j-22*j^2-36*j^3-16*j^4)*Ajp1 +(-4+22*j+20*j^2)*alph*DAjp1 +(-22+7*j+8*j^2)*alph^2*D2Ajp1 -10*alph^3*D3Ajp1 -alph^4*D4Ajp1);
|
||
|
Df12 = 1/32*((4+2*j-22*j^2-36*j^3-16*j^4)*DAjp1+(-4+22*j+20*j^2)*(DAjp1+alph*D2Ajp1)+(-22+7*j+8*j^2)*(2*alph*D2Ajp1+alph^2*D3Ajp1)-10*(3*alph^2*D3Ajp1+alph^3*D4Ajp1)-(4*alph^3*D4Ajp1+alph^4*D5Ajp1));
|
||
|
|
||
|
f13 = 1/8*((-6*j-4*j^2)*alph*(Bj+Bjp2) +4*alph^2*(DBj+DBjp2) +alph^3*(D2Bj+D2Bjp2));
|
||
|
Df13 = 1/8*((-6*j-4*j^2)*((Bj+Bjp2)+alph*(DBj+DBjp2))+4*(2*alph*(DBj+DBjp2)+alph^2*(D2Bj+D2Bjp2))+(3*alph^2*(D2Bj+D2Bjp2)+alph^3*(D3Bj+D3Bjp2)));
|
||
|
|
||
|
f14 = alph*Bjp1;
|
||
|
Df14 = Bjp1+alph*DBjp1;
|
||
|
|
||
|
f15 = 0.25*((2-4*j^2)*alph*Bjp1 +4*alph^2*DBjp1 +alph^3*D2Bjp1);
|
||
|
Df15 = 0.25*((2-4*j^2)*(Bjp1+alph*DBjp1)+4*(2*alph*DBjp1+alph^2*D2Bjp1)+(3*alph^2*D2Bjp1+alph^3*D3Bjp1));
|
||
|
|
||
|
f16 = 0.5*(-alph)*Bjp1 +3*(-alph^2)*Cj +1.5*(-alph^2)*Cjp2;
|
||
|
Df16 = 0.5*((-1)*Bjp1+(-alph)*DBjp1)+3*((-2*alph)*Cj+(-alph^2)*DCj)+1.5*((-2*alph)*Cjp2+(-alph^2)*DCjp2);
|
||
|
|
||
|
f17 = 1/64*((12+64*j+109*j^2+72*j^3+16*j^4)*Ajp2 +(-12-28*j-16*j^2)*alph*DAjp2 +(6-14*j-8*j^2)*alph^2*D2Ajp2 +8*alph^3*D3Ajp2 +alph^4*D4Ajp2);
|
||
|
Df17 = 1/64*((12+64*j+109*j^2+72*j^3+16*j^4)*DAjp2+(-12-28*j-16*j^2)*(DAjp2+alph*D2Ajp2)+(6-14*j-8*j^2)*(2*alph*D2Ajp2+alph^2*D3Ajp2)+8*(3*alph^2*D3Ajp2+alph^3*D4Ajp2)+(4*alph^3*D4Ajp2+alph^4*D5Ajp2));
|
||
|
|
||
|
f18 = 1/16*((12-15*j+4*j^2)*alph*Bjm1 +(8-4*j)*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df18 = 1/16*((12-15*j+4*j^2)*(Bjm1+alph*DBjm1)+(8-4*j)*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f19 = 1/8*((6*j-4*j^2)*alph*Bj +(-4+4*j)*alph^2*DBj -alph^3*D2Bj);
|
||
|
Df19 = 1/8*((6*j-4*j^2)*(Bj+alph*DBj)+(-4+4*j)*(2*alph*DBj+alph^2*D2Bj)-(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f20 = 1/16*((3*j+4*j^2)*alph*Bjp1 -4*j*alph^2*DBjp1 +alph^3*D2Bjp1);
|
||
|
Df20 = 1/16*((3*j+4*j^2)*(Bjp1+alph*DBjp1)-4*j*(2*alph*DBjp1+alph^2*D2Bjp1)+(3*alph^2*D2Bjp1+alph^3*D3Bjp1));
|
||
|
|
||
|
f21 = 1/8*((-12+15*j-4*j^2)*alph*Bjm1 +(-8+4*j)*alph^2*DBjm1 -alph^3*D2Bjm1);
|
||
|
Df21 = 1/8*((-12+15*j-4*j^2)*(Bjm1+alph*DBjm1)+(-8+4*j)*(2*alph*DBjm1+alph^2*D2Bjm1)-(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f22 = 0.25*((6*j+4*j^2)*alph*Bj -4*alph^2*DBj -alph^3*D2Bj);
|
||
|
Df22 = 0.25*((6*j+4*j^2)*(Bj+alph*DBj)-4*(2*alph*DBj+alph^2*D2Bj)-(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f23 = 0.25*((6*j+4*j^2)*alph*Bjp2 -4*alph^2*DBjp2 -alph^3*D2Bjp2);
|
||
|
Df23 = 0.25*((6*j+4*j^2)*(Bjp2+alph*DBjp2)-4*(2*alph*DBjp2+alph^2*D2Bjp2)-(3*alph^2*D2Bjp2+alph^3*D3Bjp2));
|
||
|
|
||
|
f24 = 0.25*((-6*j+4*j^2)*alph*Bj +(4-4*j)*alph^2*DBj +alph^3*D2Bj);
|
||
|
Df24 = 0.25*((-6*j+4*j^2)*(Bj+alph*DBj)+(4-4*j)*(2*alph*DBj+alph^2*D2Bj)+(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f25 = 1/8*((-3*j-4*j^2)*alph*Bjp1 +4*j*alph^2*DBjp1 -alph^3*D2Bjp1);
|
||
|
Df25 = 1/8*((-3*j-4*j^2)*(Bjp1+alph*DBjp1)+4*j*(2*alph*DBjp1+alph^2*D2Bjp1)-(3*alph^2*D2Bjp1+alph^3*D3Bjp1));
|
||
|
|
||
|
f26 = 0.5*alph*Bjp1 +0.75*alph^2*Cj +1.5*alph^2*Cjp2;
|
||
|
Df26 = 0.5*(Bjp1+alph*DBjp1)+0.75*(2*alph*Cj+alph^2*DCj)+1.5*(2*alph*Cjp2+alph^2*DCjp2);
|
||
|
|
||
|
|
||
|
%1st order semi-major axis functions
|
||
|
f27 = 0.5*(-2*j*Aj-alph*DAj);
|
||
|
Df27 = 0.5*(-2*j*DAj-DAj-alph*D2Aj);
|
||
|
|
||
|
f28 = 1/16*((2*j-10*j^2+8*j^3)*Aj +(3-7*j+4*j^2)*alph*DAj +(-2-2*j)*alph^2*D2Aj -alph^3*D3Aj);
|
||
|
Df28 = 1/16*((2*j-10*j^2+8*j^3)*DAj+(3-7*j+4*j^2)*(DAj+alph*D2Aj)+(-2-2*j)*(2*alph*D2Aj+alph^2*D3Aj)-(3*alph^2*D3Aj+alph^3*D4Aj));
|
||
|
|
||
|
f29 = 1/8*((8*j^3)*Aj +(-2-4*j+4*j^2)*alph*DAj +(-4-2*j)*alph^2*D2Aj -alph^3*D3Aj);
|
||
|
Df29 = 1/8*((8*j^3)*DAj+(-2-4*j+4*j^2)*(DAj+alph*D2Aj)+(-4-2*j)*(2*alph*D2Aj+alph^2*D3Aj)-(3*alph^2*D3Aj+alph^3*D4Aj));
|
||
|
|
||
|
f30 = 0.25*((1+2*j)*alph*(Bjm1+Bjp1) +alph^2*(DBjm1+DBjp1));
|
||
|
Df30 = 0.25*((1+2*j)*((Bjm1+Bjp1)+alph*(DBjm1+DBjp1))+(2*alph*(DBjm1+DBjp1)+alph^2*(D2Bjm1+D2Bjp1)));
|
||
|
|
||
|
f31 = 0.5*((-1+2*j)*Ajm1+alph*DAjm1);
|
||
|
Df31 = 0.5*((-1+2*j)*DAjm1+DAjm1+alph*D2Ajm1);
|
||
|
|
||
|
f32 = 1/8*((4-16*j+20*j^2-8*j^3)*Ajm1 +(-4+12*j-4*j^2)*alph*DAjm1 +(3+2*j)*alph^2*D2Ajm1 +alph^3*D3Ajm1);
|
||
|
Df32 = 1/8*((4-16*j+20*j^2-8*j^3)*DAjm1+(-4+12*j-4*j^2)*(DAjm1+alph*D2Ajm1)+(3+2*j)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(3*alph^2*D3Ajm1+alph^3*D4Ajm1));
|
||
|
|
||
|
f33 = 1/16*((-2-j+10*j^2-8*j^3)*Ajm1 +(2+9*j-4*j^2)*alph*DAjm1 +(5+2*j)*alph^2*D2Ajm1 +alph^3*D3Ajm1);
|
||
|
Df33 = 1/16*((-2-j+10*j^2-8*j^3)*DAjm1+(2+9*j-4*j^2)*(DAjm1+alph*D2Ajm1)+(5+2*j)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(3*alph^2*D3Ajm1+alph^3*D4Ajm1));
|
||
|
|
||
|
f34 = 0.25*(-2*j*alph*(Bjm2+Bj) -alph^2*(DBjm2+DBj));
|
||
|
Df34 = 0.25*(-2*j*((Bjm2+Bj)+alph*(DBjm2+DBj))-(2*alph*(DBjm2+DBj)+alph^2*(D2Bjm2+D2Bj)));
|
||
|
|
||
|
f35 = 1/16*((1-j-10*j^2-8*j^3)*Ajp1 +(-1-j-4*j^2)*alph*DAjp1 +(3+2*j)*alph^2*D2Ajp1 +alph^3*D3Ajp1);
|
||
|
Df35 = 1/16*((1-j-10*j^2-8*j^3)*DAjp1+(-1-j-4*j^2)*(DAjp1+alph*D2Ajp1)+(3+2*j)*(2*alph*D2Ajp1+alph^2*D3Ajp1)+(3*alph^2*D3Ajp1+alph^3*D4Ajp1));
|
||
|
|
||
|
f36 = 1/16*((-8+32*j-30*j^2+8*j^3)*Ajm2 +(8-17*j+4*j^2)*alph*DAjm2 +(-4-2*j)*alph^2*D2Ajm2 -alph^3*D3Ajm2);
|
||
|
Df36 = 1/16*((-8+32*j-30*j^2+8*j^3)*DAjm2+(8-17*j+4*j^2)*(DAjm2+alph*D2Ajm2)+(-4-2*j)*(2*alph*D2Ajm2+alph^2*D3Ajm2)-(3*alph^2*D3Ajm2+alph^3*D4Ajm2));
|
||
|
|
||
|
f37 = 0.25*((-5+2*j)*alph*Bjm1 -alph^2*DBjm1);
|
||
|
Df37 = 0.25*((-5+2*j)*(Bjm1+alph*DBjm1)-(2*alph*DBjm1+alph^2*D2Bjm1));
|
||
|
|
||
|
f38 = 0.25*(-2*j*alph*Bj +alph^2*DBj);
|
||
|
Df38 = 0.25*(-2*j*(Bj+alph*DBj)+(2*alph*DBj+alph^2*D2Bj));
|
||
|
|
||
|
f39 = 0.5*((-1-2*j)*alph*Bjm1 -alph^2*DBjm1);
|
||
|
Df39 = 0.5*((-1-2*j)*(Bjm1+alph*DBjm1)-(2*alph*DBjm1+alph^2*D2Bjm1));
|
||
|
|
||
|
f40 = 0.5*((-1-2*j)*alph*Bjp1 -alph^2*DBjp1);
|
||
|
Df40 = 0.5*((-1-2*j)*(Bjp1+alph*DBjp1)-(2*alph*DBjp1+alph^2*D2Bjp1));
|
||
|
|
||
|
f41 = 0.5*((5-2*j)*alph*Bjm1 +alph^2*DBjm1);
|
||
|
Df41 = 0.5*((5-2*j)*(Bjm1+alph*DBjm1)+(2*alph*DBjm1+alph^2*D2Bjm1));
|
||
|
|
||
|
f42 = 0.5*(2*j*alph*Bjm2 +alph^2*DBjm2);
|
||
|
Df42 = 0.5*(2*j*(Bjm2+alph*DBjm2)+(2*alph*DBjm2+alph^2*D2Bjm2));
|
||
|
|
||
|
f43 = 0.5*(2*j*alph*Bj +alph^2*DBj);
|
||
|
Df43 = 0.5*(2*j*(Bj+alph*DBj)+(2*alph*DBj+alph^2*D2Bj));
|
||
|
|
||
|
f44 = 0.5*(2*j*alph*Bj -alph^2*DBj);
|
||
|
Df44 = 0.5*(2*j*(Bj+alph*DBj)-(2*alph*DBj+alph^2*D2Bj));
|
||
|
|
||
|
%2nd order semi-major axis functions
|
||
|
f45 = 1/8*((-5*j+4*j^2)*Aj +(-2+4*j)*alph*DAj +alph^2*D2Aj);
|
||
|
Df45 = 1/8*((-5*j+4*j^2)*DAj+(-2+4*j)*(DAj+alph*D2Aj)+(2*alph*D2Aj+alph^2*D3Aj));
|
||
|
|
||
|
f46 = 1/96*((22*j-64*j^2+60*j^3-16*j^4)*Aj +(16-46*j+48*j^2-16*j^3)*alph*DAj +(-12+9*j)*alph^2*D2Aj +4*j*alph^3*D3Aj +alph^4*D4Aj);
|
||
|
Df46 = 1/96*((22*j-64*j^2+60*j^3-16*j^4)*DAj+(16-46*j+48*j^2-16*j^3)*(DAj+alph*D2Aj)+(-12+9*j)*(2*alph*D2Aj+alph^2*D3Aj)+4*j*(3*alph^2*D3Aj+alph^3*D4Aj)+(4*alph^3*D4Aj+alph^4*D5Aj));
|
||
|
|
||
|
f47 = 1/32*((20*j^3-16*j^4)*Aj +(-4-2*j+16*j^2-16*j^3)*alph*DAj +(-2+11*j)*alph^2*D2Aj +(4+4*j)*alph^3*D3Aj +alph^4*D4Aj);
|
||
|
Df47 = 1/32*((20*j^3-16*j^4)*DAj+(-4-2*j+16*j^2-16*j^3)*(DAj+alph*D2Aj)+(-2+11*j)*(2*alph*D2Aj+alph^2*D3Aj)+(4+4*j)*(3*alph^2*D3Aj+alph^3*D4Aj)+(4*alph^3*D4Aj+alph^4*D5Aj));
|
||
|
|
||
|
f48 = 1/16*((2+j-4*j^2)*alph*(Bjm1+Bjp1) -4*j*alph^2*(DBjm1+DBjp1) -alph^3*(D2Bjm1+D2Bjp1));
|
||
|
Df48 = 1/16*((2+j-4*j^2)*((Bjm1+Bjp1)+alph*(DBjm1+DBjp1))-4*j*(2*alph*(DBjm1+DBjp1)+alph^2*(D2Bjm1+D2Bjp1))-(3*alph^2*(D2Bjm1+D2Bjp1)+alph^3*(D3Bjm1+D3Bjp1)));
|
||
|
|
||
|
f49 = 0.25*((-2+6*j-4*j^2)*Ajm1 +(2-4*j)*alph*DAjm1 -alph^2*D2Ajm1);
|
||
|
Df49 = 0.25*((-2+6*j-4*j^2)*DAjm1+(2-4*j)*(DAjm1+alph*D2Ajm1)-(2*alph*D2Ajm1+alph^2*D3Ajm1));
|
||
|
|
||
|
f50 = 1/32*((20-86*j+126*j^2-76*j^3+16*j^4)*Ajm1 +(-20+74*j-64*j^2+16*j^3)*alph*DAjm1 +(14-17*j)*alph^2*D2Ajm1 +(-2-4*j)*alph^3*D3Ajm1 -alph^4*D4Ajm1); %in this term there appears Aj- instead of Aj-1; this is explained in the erratum http://ssdbook.maths.qmul.ac.uk/errors.pdf
|
||
|
Df50 = 1/32*((20-86*j+126*j^2-76*j^3+16*j^4)*DAjm1+(-20+74*j-64*j^2+16*j^3)*(DAjm1+alph*D2Ajm1)+(14-17*j)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(-2-4*j)*(3*alph^2*D3Ajm1+alph^3*D4Ajm1)-(4*alph^3*D4Ajm1+alph^4*D5Ajm1));
|
||
|
|
||
|
f51 = 1/32*((-4+2*j+22*j^2-36*j^3+16*j^4)*Ajm1 +(4+6*j-32*j^2+16*j^3)*alph*DAjm1 +(-2-19*j)*alph^2*D2Ajm1 +(-6-4*j)*alph^3*D3Ajm1 -alph^4*D4Ajm1);
|
||
|
Df51 = 1/32*((-4+2*j+22*j^2-36*j^3+16*j^4)*DAjm1+(4+6*j-32*j^2+16*j^3)*(DAjm1+alph*D2Ajm1)+(-2-19*j)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(-6-4*j)*(3*alph^2*D3Ajm1+alph^3*D4Ajm1)-(4*alph^3*D4Ajm1+alph^4*D5Ajm1));
|
||
|
|
||
|
f52 = 1/8*((-2*j+4*j^2)*alph*(Bjm2+Bj) +4*j*alph^2*(DBjm2+DBj) +alph^3*(D2Bjm2+D2Bj));
|
||
|
Df52 = 1/8*((-2*j+4*j^2)*((Bjm2+Bj)+alph*(DBjm2+DBj))+4*j*(2*alph*(DBjm2+DBj)+alph^2*(D2Bjm2+D2Bj))+(3*alph^2*(D2Bjm2+D2Bj)+alph^3*(D3Bjm2+D3Bj)));
|
||
|
|
||
|
f53 = 1/8*((2-7*j+4*j^2)*Ajm2 +(-2+4*j)*alph*DAjm2 +alph^2*D2Ajm2);
|
||
|
Df53 = 1/8*((2-7*j+4*j^2)*DAjm2+(-2+4*j)*(DAjm2+alph*D2Ajm2)+(2*alph*D2Ajm2+alph^2*D3Ajm2));
|
||
|
|
||
|
f54 = 1/32*((-32+144*j-184*j^2+92*j^3-16*j^4)*Ajm2 +(32-102*j+80*j^2-16*j^3)*alph*DAjm2 +(-16+25*j)*alph^2*D2Ajm2 +(4+4*j)*alph^3*D3Ajm2 +alph^4*D4Ajm2);
|
||
|
Df54 = 1/32*((-32+144*j-184*j^2+92*j^3-16*j^4)*DAjm2+(32-102*j+80*j^2-16*j^3)*(DAjm2+alph*D2Ajm2)+(-16+25*j)*(2*alph*D2Ajm2+alph^2*D3Ajm2)+(4+4*j)*(3*alph^2*D3Ajm2+alph^3*D4Ajm2)+(4*alph^3*D4Ajm2+alph^4*D5Ajm2));
|
||
|
|
||
|
f55 = 1/96*((12-14*j-40*j^2+52*j^3-16*j^4)*Ajm2 +(-12-10*j+48*j^2-16*j^3)*alph*DAjm2 +(6+27*j)*alph^2*D2Ajm2 +(8+4*j)*alph^3*D3Ajm2 +alph^4*D4Ajm2);
|
||
|
Df55 = 1/96*((12-14*j-40*j^2+52*j^3-16*j^4)*DAjm2+(-12-10*j+48*j^2-16*j^3)*(DAjm2+alph*D2Ajm2)+(6+27*j)*(2*alph*D2Ajm2+alph^2*D3Ajm2)+(8+4*j)*(3*alph^2*D3Ajm2+alph^3*D4Ajm2)+(4*alph^3*D4Ajm2+alph^4*D5Ajm2));
|
||
|
|
||
|
f56 = 1/16*((3*j-4*j^2)*alph*(Bjm3+Bjm1) -4*j*alph^2*(DBjm3+DBjm1) -alph^3*(D2Bjm3+D2Bjm1));
|
||
|
Df56 = 1/16*((3*j-4*j^2)*((Bjm3+Bjm1)+alph*(DBjm3+DBjm1))-4*j*(2*alph*(DBjm3+DBjm1)+alph^2*(D2Bjm3+D2Bjm1))-(3*alph^2*(D2Bjm3+D2Bjm1)+alph^3*(D3Bjm3+D3Bjm1)));
|
||
|
|
||
|
f57 = 0.5*alph*Bjm1;
|
||
|
Df57 = 0.5*(Bjm1+alph*DBjm1);
|
||
|
|
||
|
f58 = 1/8*((-14+16*j-4*j^2)*alph*Bjm1 +4*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df58 = 1/8*((-14+16*j-4*j^2)*(Bjm1+alph*DBjm1)+4*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f59 = 1/8*((2-4*j^2)*alph*Bjm1 +4*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df59 = 1/8*((2-4*j^2)*(Bjm1+alph*DBjm1)+4*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f60 = 0.75*(-alph^2)*(Cjm2+Cj);
|
||
|
Df60 = 0.75*((-2*alph)*(Cjm2+Cj)+(-alph^2)*(DCjm2+DCj));
|
||
|
|
||
|
f61 = 0.5*(-alph)*Bjm1 +0.75*(-alph^2)*Cjm2 +15/4*(-alph^2)*Cj;
|
||
|
Df61 = 0.5*((-1)*Bjm1+(-alph)*DBjm1)+0.75*((-2*alph)*Cjm2+(-alph^2)*DCjm2)+15/4*((-2*alph)*Cj+(-alph^2)*DCj);
|
||
|
|
||
|
f62 = -alph*Bjm1;
|
||
|
Df62 = -Bjm1-alph*DBjm1;
|
||
|
|
||
|
f63 = 0.25*((14-16*j+4*j^2)*alph*Bjm1 -4*alph^2*DBjm1 -alph^3*D2Bjm1);
|
||
|
Df63 = 0.25*((14-16*j+4*j^2)*(Bjm1+alph*DBjm1)-4*(2*alph*DBjm1+alph^2*D2Bjm1)-(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f64 = 0.25*((-2+4*j^2)*alph*Bjm1 -4*alph^2*DBjm1 -alph^3*D2Bjm1);
|
||
|
Df64 = 0.25*((-2+4*j^2)*(Bjm1+alph*DBjm1)-4*(2*alph*DBjm1+alph^2*D2Bjm1)-(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f65 = 0.5*alph*Bjm1 +3*alph^2*Cjm2 +1.5*alph^2*Cj;
|
||
|
Df65 = 0.5*(Bjm1+alph*DBjm1)+3*(2*alph*Cjm2+alph^2*DCjm2)+1.5*(2*alph*Cj+alph^2*DCj);
|
||
|
|
||
|
f66 = 0.5*alph*Bjm1 +1.5*alph^2*Cjm2 +3*alph^2*Cj;
|
||
|
Df66 = 0.5*(Bjm1+alph*DBjm1)+1.5*(2*alph*Cjm2+alph^2*DCjm2)+3*(2*alph*Cj+alph^2*DCj);
|
||
|
|
||
|
f67 = 0.5*(-alph)*Bjm1 +15/4*(-alph^2)*Cjm2 +0.75*(-alph^2)*Cj;
|
||
|
Df67 = 0.5*((-1)*Bjm1+(-alph)*DBjm1)+15/4*((-2*alph)*Cjm2+(-alph^2)*DCjm2)+0.75*((-2*alph)*Cj+(-alph^2)*DCj);
|
||
|
|
||
|
f68 = 1/96*((4-2*j-26*j^2-4*j^3+16*j^4)*Ajp1 +(-4-2*j+16*j^3)*alph*DAjp1 +(6-3*j)*alph^2*D2Ajp1 +(-2-4*j)*alph^3*D3Ajp1 -alph^4*D4Ajp1);
|
||
|
Df68 = 1/96*((4-2*j-26*j^2-4*j^3+16*j^4)*DAjp1+(-4-2*j+16*j^3)*(DAjp1+alph*D2Ajp1)+(6-3*j)*(2*alph*D2Ajp1+alph^2*D3Ajp1)+(-2-4*j)*(3*alph^2*D3Ajp1+alph^3*D4Ajp1)-(4*alph^3*D4Ajp1+alph^4*D5Ajp1));
|
||
|
|
||
|
f69 = 1/96*((36-186*j+238*j^2-108*j^3+16*j^4)*Ajm3 +(-36+130*j-96*j^2+16*j^3)*alph*DAjm3 +(18-33*j)*alph^2*D2Ajm3 +(-6-4*j)*alph^3*D3Ajm3 -alph^4*D4Ajm3);
|
||
|
Df69 = 1/96*((36-186*j+238*j^2-108*j^3+16*j^4)*DAjm3+(-36+130*j-96*j^2+16*j^3)*(DAjm3+alph*D2Ajm3)+(18-33*j)*(2*alph*D2Ajm3+alph^2*D3Ajm3)+(-6-4*j)*(3*alph^2*D3Ajm3+alph^3*D4Ajm3)-(4*alph^3*D4Ajm3+alph^4*D5Ajm3));
|
||
|
|
||
|
f70 = 1/8*((-14*j+4*j^2)*alph*Bjm2 -8*alph^2*DBjm2 -alph^3*D2Bjm2);
|
||
|
Df70 = 1/8*((-14*j+4*j^2)*(Bjm2+alph*DBjm2)-8*(2*alph*DBjm2+alph^2*D2Bjm2)-(3*alph^2*D2Bjm2+alph^3*D3Bjm2));
|
||
|
|
||
|
f71 = 1/8*((-2*j+4*j^2)*alph*Bj -alph^3*D2Bj);
|
||
|
Df71 = 1/8*((-2*j+4*j^2)*(Bj+alph*DBj)-(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f72 = 1/8*((-2-j+4*j^2)*alph*Bjm1 +4*j*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df72 = 1/8*((-2-j+4*j^2)*(Bjm1+alph*DBjm1)+4*j*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f73 = 1/8*((-2-j+4*j^2)*alph*Bjp1 +4*j*alph^2*DBjp1 +alph^3*D2Bjp1);
|
||
|
Df73 = 1/8*((-2-j+4*j^2)*(Bjp1+alph*DBjp1)+4*j*(2*alph*DBjp1+alph^2*D2Bjp1)+(3*alph^2*D2Bjp1+alph^3*D3Bjp1));
|
||
|
|
||
|
f74 = 0.25*((2*j-4*j^2)*alph*Bjm2 -4*j*alph^2*DBjm2 -alph^3*D2Bjm2);
|
||
|
Df74 = 0.25*((2*j-4*j^2)*(Bjm2+alph*DBjm2)-4*j*(2*alph*DBjm2+alph^2*D2Bjm2)-(3*alph^2*D2Bjm2+alph^3*D3Bjm2));
|
||
|
|
||
|
f75 = 0.25*((2*j-4*j^2)*alph*Bj -4*j*alph^2*DBj -alph^3*D2Bj);
|
||
|
Df75 = 0.25*((2*j-4*j^2)*(Bj+alph*DBj)-4*j*(2*alph*DBj+alph^2*D2Bj)-(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f76 = 0.25*((14*j-4*j^2)*alph*Bjm2 +8*alph^2*DBjm2 +alph^3*D2Bjm2);
|
||
|
Df76 = 0.25*((14*j-4*j^2)*(Bjm2+alph*DBjm2)+8*(2*alph*DBjm2+alph^2*D2Bjm2)+(3*alph^2*D2Bjm2+alph^3*D3Bjm2));
|
||
|
|
||
|
f77 = 0.25*((2*j-4*j^2)*alph*Bj +alph^3*D2Bj);
|
||
|
Df77 = 0.25*((2*j-4*j^2)*(Bj+alph*DBj)+(3*alph^2*D2Bj+alph^3*D3Bj));
|
||
|
|
||
|
f78 = 1/8*((-3*j+4*j^2)*alph*Bjm3 +4*j*alph^2*DBjm3 +alph^3*D2Bjm3);
|
||
|
Df78 = 1/8*((-3*j+4*j^2)*(Bjm3+alph*DBjm3)+4*j*(2*alph*DBjm3+alph^2*D2Bjm3)+(3*alph^2*D2Bjm3+alph^3*D3Bjm3));
|
||
|
|
||
|
f79 = 1/8*((-3*j+4*j^2)*alph*Bjm1 +4*j*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df79 = 1/8*((-3*j+4*j^2)*(Bjm1+alph*DBjm1)+4*j*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f80 = 1.5*alph^2*Cj;
|
||
|
Df80 = 1.5*(2*alph*Cj+alph^2*DCj);
|
||
|
|
||
|
f81 = 1.5*alph^2*Cjm2;
|
||
|
Df81 = 1.5*(2*alph*Cjm2+alph^2*DCjm2);
|
||
|
|
||
|
%3rd order semi-major axis functions
|
||
|
f82 = 1/48*((-26*j+30*j^2-8*j^3)*Aj +(-9+27*j-12*j^2)*alph*DAj +(6-6*j)*alph^2*D2Aj -alph^3*D3Aj);
|
||
|
Df82 = 1/48*((-26*j+30*j^2-8*j^3)*DAj+(-9+27*j-12*j^2)*(DAj+alph*D2Aj)+(6-6*j)*(2*alph*D2Aj+alph^2*D3Aj)-(3*alph^2*D3Aj+alph^3*D4Aj));
|
||
|
|
||
|
f83 = 1/16*((-9+31*j-30*j^2+8*j^3)*Ajm1 +(9-25*j+12*j^2)*alph*DAjm1 +(-5+6*j)*alph^2*D2Ajm1 +alph^3*D3Ajm1);
|
||
|
Df83 = 1/16*((-9+31*j-30*j^2+8*j^3)*DAjm1+(9-25*j+12*j^2)*(DAjm1+alph*D2Ajm1)+(-5+6*j)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(3*alph^2*D3Ajm1+alph^3*D4Ajm1));
|
||
|
|
||
|
f84 = 1/16*((8-32*j+30*j^2-8*j^3)*Ajm2 +(-8+23*j-12*j^2)*alph*DAjm2 +(4-6*j)*alph^2*D2Ajm2 -alph^3*D3Ajm2);
|
||
|
Df84 = 1/16*((8-32*j+30*j^2-8*j^3)*DAjm2+(-8+23*j-12*j^2)*(DAjm2+alph*D2Ajm2)+(4-6*j)*(2*alph*D2Ajm2+alph^2*D3Ajm2)-(3*alph^2*D3Ajm2+alph^3*D4Ajm2));
|
||
|
|
||
|
f85 = 1/48*((-6+29*j-30*j^2+8*j^3)*Ajm3 +(6-21*j+12*j^2)*alph*DAjm3 +(-3+6*j)*alph^2*D2Ajm3 +alph^3*D3Ajm3);
|
||
|
Df85 = 1/48*((-6+29*j-30*j^2+8*j^3)*DAjm3+(6-21*j+12*j^2)*(DAjm3+alph*D2Ajm3)+(-3+6*j)*(2*alph*D2Ajm3+alph^2*D3Ajm3)+(3*alph^2*D3Ajm3+alph^3*D4Ajm3));
|
||
|
|
||
|
f86 = 0.25*((3-2*j)*alph*Bjm1 -alph^2*DBjm1);
|
||
|
Df86 = 0.25*((3-2*j)*(Bjm1+alph*DBjm1)-(2*alph*DBjm1+alph^2*D2Bjm1));
|
||
|
|
||
|
f87 = 0.25*(2*j*alph*Bjm2 +alph^2*DBjm2);
|
||
|
Df87 = 0.25*(2*j*(Bjm2+alph*DBjm2)+(2*alph*DBjm2+alph^2*D2Bjm2));
|
||
|
|
||
|
f88 = 0.5*((-3+2*j)*alph*Bjm1 +alph^2*DBjm1);
|
||
|
Df88 = 0.5*((-3+2*j)*(Bjm1+alph*DBjm1)+(2*alph*DBjm1+alph^2*D2Bjm1));
|
||
|
|
||
|
f89 = 0.5*(-2*j*alph*Bjm2 -alph^2*DBjm2);
|
||
|
Df89 = 0.5*(-2*j*(Bjm2+alph*DBjm2)-(2*alph*DBjm2+alph^2*D2Bjm2));
|
||
|
|
||
|
%4th order semi-major axis functions
|
||
|
f90 = 1/384*((-206*j+283*j^2-120*j^3+16*j^4)*Aj +(-64+236*j-168*j^2+32*j^3)*alph*DAj +(48-78*j+24*j^2)*alph^2*D2Aj +(-12+8*j)*alph^3*D3Aj +alph^4*D4Aj);
|
||
|
Df90 = 1/384*((-206*j+283*j^2-120*j^3+16*j^4)*DAj+(-64+236*j-168*j^2+32*j^3)*(DAj+alph*D2Aj)+(48-78*j+24*j^2)*(2*alph*D2Aj+alph^2*D3Aj)+(-12+8*j)*(3*alph^2*D3Aj+alph^3*D4Aj)+(4*alph^3*D4Aj+alph^4*D5Aj));
|
||
|
|
||
|
f91 = 1/96*((-64+238*j-274*j^2+116*j^3-16*j^4)*Ajm1 +(64-206*j+156*j^2-32*j^3)*alph*DAjm1 +(-36+69*j-24*j^2)*alph^2*D2Ajm1 +(10-8*j)*alph^3*D3Ajm1 -alph^4*D4Ajm1);
|
||
|
Df91 = 1/96*((-64+238*j-274*j^2+116*j^3-16*j^4)*DAjm1+(64-206*j+156*j^2-32*j^3)*(DAjm1+alph*D2Ajm1)+(-36+69*j-24*j^2)*(2*alph*D2Ajm1+alph^2*D3Ajm1)+(10-8*j)*(3*alph^2*D3Ajm1+alph^3*D4Ajm1)-(4*alph^3*D4Ajm1+alph^4*D5Ajm1));
|
||
|
|
||
|
f92 = 1/64*((52-224*j+259*j^2-112*j^3+16*j^4)*Ajm2 +(-52+176*j-144*j^2+32*j^3)*alph*DAjm2 +(26-60*j+24*j^2)*alph^2*D2Ajm2 +(-8+8*j)*alph^3*D3Ajm2 +alph^4*D4Ajm2);
|
||
|
Df92 = 1/64*((52-224*j+259*j^2-112*j^3+16*j^4)*DAjm2+(-52+176*j-144*j^2+32*j^3)*(DAjm2+alph*D2Ajm2)+(26-60*j+24*j^2)*(2*alph*D2Ajm2+alph^2*D3Ajm2)+(-8+8*j)*(3*alph^2*D3Ajm2+alph^3*D4Ajm2)+(4*alph^3*D4Ajm2+alph^4*D5Ajm2));
|
||
|
|
||
|
f93 = 1/96*((-36+186*j-238*j^2+108*j^3-16*j^4)*Ajm3 +(36-146*j+132*j^2-32*j^3)*alph*DAjm3 +(-18+51*j-24*j^2)*alph^2*D2Ajm3 +(6-8*j)*alph^3*D3Ajm3 -alph^4*D4Ajm3);
|
||
|
Df93 = 1/96*((-36+186*j-238*j^2+108*j^3-16*j^4)*DAjm3+(36-146*j+132*j^2-32*j^3)*(DAjm3+alph*D2Ajm3)+(-18+51*j-24*j^2)*(2*alph*D2Ajm3+alph^2*D3Ajm3)+(6-8*j)*(3*alph^2*D3Ajm3+alph^3*D4Ajm3)-(4*alph^3*D4Ajm3+alph^4*D5Ajm3));
|
||
|
|
||
|
f94 = 1/384*((24-146*j+211*j^2-104*j^3+16*j^4)*Ajm4 +(-24+116*j-120*j^2+32*j^3)*alph*DAjm4 +(12-42*j+24*j^2)*alph^2*D2Ajm4 +(-4+8*j)*alph^3*D3Ajm4 +alph^4*D4Ajm4);
|
||
|
Df94 = 1/384*((24-146*j+211*j^2-104*j^3+16*j^4)*DAjm4+(-24+116*j-120*j^2+32*j^3)*(DAjm4+alph*D2Ajm4)+(12-42*j+24*j^2)*(2*alph*D2Ajm4+alph^2*D3Ajm4)+(-4+8*j)*(3*alph^2*D3Ajm4+alph^3*D4Ajm4)+(4*alph^3*D4Ajm4+alph^4*D5Ajm4));
|
||
|
|
||
|
f95 = 1/16*((16-17*j+4*j^2)*alph*Bjm1 +(-8+4*j)*alph^2*DBjm1 +alph^3*D2Bjm1);
|
||
|
Df95 = 1/16*((16-17*j+4*j^2)*(Bjm1+alph*DBjm1)+(-8+4*j)*(2*alph*DBjm1+alph^2*D2Bjm1)+(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f96 = 1/8*((10*j-4*j^2)*alph*Bjm2 +(4-4*j)*alph^2*DBjm2 -alph^3*D2Bjm2);
|
||
|
Df96 = 1/8*((10*j-4*j^2)*(Bjm2+alph*DBjm2)+(4-4*j)*(2*alph*DBjm2+alph^2*D2Bjm2)-(3*alph^2*D2Bjm2+alph^3*D3Bjm2));
|
||
|
|
||
|
f97 = 1/16*((-3*j+4*j^2)*alph*Bjm3 +4*j*alph^2*DBjm3 +alph^3*D2Bjm3);
|
||
|
Df97 = 1/16*((-3*j+4*j^2)*(Bjm3+alph*DBjm3)+4*j*(2*alph*DBjm3+alph^2*D2Bjm3)+(3*alph^2*D2Bjm3+alph^3*D3Bjm3));
|
||
|
|
||
|
f98 = 3/8*alph^2*Cjm2;
|
||
|
Df98 = 3/8*(2*alph*Cjm2+alph^2*DCjm2);
|
||
|
|
||
|
f99 = 1/8*((-16+17*j-4*j^2)*alph*Bjm1 +(8-4*j)*alph^2*DBjm1 -alph^3*D2Bjm1);
|
||
|
Df99 = 1/8*((-16+17*j-4*j^2)*(Bjm1+alph*DBjm1)+(8-4*j)*(2*alph*DBjm1+alph^2*D2Bjm1)-(3*alph^2*D2Bjm1+alph^3*D3Bjm1));
|
||
|
|
||
|
f100 = 0.25*((-10*j+4*j^2)*alph*Bjm2 +(-4+4*j)*alph^2*DBjm2 +alph^3*D2Bjm2);
|
||
|
Df100 = 0.25*((-10*j+4*j^2)*(Bjm2+alph*DBjm2)+(-4+4*j)*(2*alph*DBjm2+alph^2*D2Bjm2)+(3*alph^2*D2Bjm2+alph^3*D3Bjm2));
|
||
|
|
||
|
f101 = 1/8*((3*j-4*j^2)*alph*Bjm3 -4*j*alph^2*DBjm3 -alph^3*D2Bjm3);
|
||
|
Df101 = 1/8*((3*j-4*j^2)*(Bjm3+alph*DBjm3)-4*j*(2*alph*DBjm3+alph^2*D2Bjm3)-(3*alph^2*D2Bjm3+alph^3*D3Bjm3));
|
||
|
|
||
|
f102 = 1.5*(-alph^2)*Cjm2;
|
||
|
Df102 = 1.5*((-2*alph)*Cjm2+(-alph^2)*DCjm2);
|
||
|
|
||
|
f103 = 9/4*(alph^2*Cjm2);
|
||
|
Df103 = 9/4*(2*alph*Cjm2+alph^2*DCjm2);
|
||
|
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
%% PrepareExpansionTerms;
|
||
|
|
||
|
%Write down the disturbing function terms powers and resonant orders - Solar
|
||
|
%System Dynamics (Murray & Dermott 1999), Appendix B
|
||
|
|
||
|
for DummyIdx = 1:1
|
||
|
|
||
|
if ~isfield(Terms,'k') %constant fields, not depending on the value of alpha or j, should be written once and for all
|
||
|
% if isempty(Terms) %constant fields, not depending on the value of alpha or j, should be written once and for all
|
||
|
|
||
|
Terms.k = [zeros(1,38) ... %0th order
|
||
|
ones(1,22) ... %1st order
|
||
|
2*ones(1,46) ... %2nd order
|
||
|
3*ones(1,10) ... %3rd order
|
||
|
4*ones(1,19)]; %4th order
|
||
|
|
||
|
Terms.A = [0 2 0 0 0 4 2 0 2 0 2 0 0 0 0 ...
|
||
|
1 3 1 1 1 0 2 0 0 0 2 2 1 0 2 1 1 1 0 2 1 0 0 ... %0th order
|
||
|
1 3 1 1 1 0 2 0 0 0 2 1 1 0 1 1 1 0 0 0 1 0 ... %1st order
|
||
|
2 4 2 2 2 1 3 1 1 1 0 2 0 0 0 0 2 0 0 0 ...
|
||
|
0 2 0 0 0 0 2 0 0 0 3 1 1 1 2 2 1 1 1 1 0 0 0 1 1 0 ... %2nd order
|
||
|
3 2 1 0 1 0 1 0 1 0 ... %3rd order
|
||
|
4 3 2 1 0 2 1 0 0 2 1 0 0 2 1 0 0 0 0 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.Ap = [0 0 2 0 0 0 2 4 0 2 0 2 0 0 0 ...
|
||
|
1 1 3 1 1 0 0 2 0 0 2 0 1 2 0 1 1 1 2 0 1 2 0 ... %0th order
|
||
|
0 0 2 0 0 1 1 3 1 1 1 2 0 1 0 0 0 1 1 1 0 1 ... %1st order
|
||
|
0 0 2 0 0 1 1 3 1 1 2 2 4 2 2 0 0 2 0 0 ...
|
||
|
0 0 2 0 0 0 0 2 0 0 1 3 1 1 0 0 1 1 1 1 2 2 0 1 1 0 ... %2nd order
|
||
|
0 1 2 3 0 1 0 1 0 1 ... %3rd order
|
||
|
0 1 2 3 4 0 1 2 0 0 1 2 0 0 1 2 0 0 0 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.B = [0 0 0 2 0 0 0 0 2 2 0 0 4 0 2 ...
|
||
|
0 0 0 2 0 1 1 1 3 1 0 2 2 2 1 1 1 1 1 0 0 0 2 ... %0th order
|
||
|
0 0 0 2 0 0 0 0 2 0 0 0 2 2 1 1 1 1 1 1 0 0 ... %1st order
|
||
|
0 0 0 2 0 0 0 0 2 0 0 0 0 2 0 2 2 2 4 2 ...
|
||
|
1 1 1 3 1 0 0 0 2 0 0 0 2 2 1 1 1 1 1 1 1 1 3 0 0 1 ... %2nd order
|
||
|
0 0 0 0 2 2 1 1 0 0 ... %3rd order
|
||
|
0 0 0 0 0 2 2 2 4 1 1 1 3 0 0 0 2 1 0 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.Bp = [0 0 0 0 2 0 0 0 0 0 2 2 0 4 2 ...
|
||
|
0 0 0 0 2 1 1 1 1 3 0 0 0 0 1 1 1 1 1 2 2 2 2 ... %0th order
|
||
|
0 0 0 0 2 0 0 0 0 2 0 0 0 0 1 1 1 1 1 1 2 2 ... %1st order
|
||
|
0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 ...
|
||
|
1 1 1 1 3 2 2 2 2 4 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 3 ... %2nd order
|
||
|
0 0 0 0 0 0 1 1 2 2 ... %3rd order
|
||
|
0 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 3 4 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.C = [zeros(1,15) ...
|
||
|
ones(1,5) zeros(1,5) 2 -2 -1 0 -2 1 1 -1 0 -2 -1 0 0 ... %0th order
|
||
|
1 1 1 1 1 0 0 0 0 0 2 -1 -1 0 1 1 -1 0 0 0 -1 0 ... %1st order
|
||
|
2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ...
|
||
|
0 0 0 0 0 0 0 0 0 0 3 -1 -1 1 2 2 1 1 -1 1 0 0 0 -1 1 0 ... %2nd order
|
||
|
3 2 1 0 1 0 1 0 1 0 ... %3rd order
|
||
|
4 3 2 1 0 2 1 0 0 2 1 0 0 2 1 0 0 0 0 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.Cp = [zeros(1,15) ...
|
||
|
-ones(1,5) zeros(1,5) -2 0 -1 -2 0 -1 -1 -1 -2 0 -1 -2 0 ... %0th order
|
||
|
0 0 0 0 0 1 1 1 1 1 -1 2 0 -1 0 0 0 1 1 -1 0 -1 ... %1st order
|
||
|
0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 ...
|
||
|
0 0 0 0 0 0 0 0 0 0 -1 3 1 -1 0 0 1 1 1 -1 2 2 0 1 -1 0 ... %2nd order
|
||
|
0 1 2 3 0 1 0 1 0 1 ... %3rd order
|
||
|
0 1 2 3 4 0 1 2 0 0 1 2 0 0 1 2 0 0 0 .... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.D = [zeros(1,15) ...
|
||
|
zeros(1,5) ones(1,5) 0 2 2 2 1 -1 1 1 1 0 0 0 2 ... %0th order
|
||
|
zeros(1,10) 0 0 2 2 -1 1 1 -1 1 1 0 0 ... %1st order
|
||
|
zeros(1,15) 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 ...
|
||
|
0 0 2 2 -1 1 -1 1 1 1 -1 1 3 0 0 -1 ... %2nd order
|
||
|
0 0 0 0 2 2 1 1 0 0 ... %3rd order
|
||
|
0 0 0 0 0 2 2 2 4 1 1 1 3 0 0 0 2 1 0 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.Dp = [zeros(1,15) ...
|
||
|
zeros(1,5) -ones(1,5) 0 0 0 0 1 1 -1 1 1 2 2 2 -2 ... %0th order
|
||
|
zeros(1,10) 0 0 0 0 1 -1 1 1 -1 1 2 2 ... %1st order
|
||
|
zeros(1,20) 1 1 1 1 1 2 2 2 2 2 ...
|
||
|
0 0 0 0 1 -1 1 -1 1 1 1 -1 -1 2 2 3 ... %2nd order
|
||
|
0 0 0 0 0 0 1 1 2 2 ... %3rd order
|
||
|
0 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 3 4 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.N = length(Terms.A);
|
||
|
end
|
||
|
|
||
|
Terms.f = [f1 f2 f2 f3 f3 f4 f5 f6 f7 f7 f7 f7 f8 f8 f9 ...
|
||
|
f10 f11 f12 f13 f13 f14 f15 f15 f16 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25 f18 f19 f20 f26 ... %0th order
|
||
|
f27 f28 f29 f30 f30 f31 f32 f33 f34 f34 f35 f36 f37 f38 f39 f40 f41 f42 f43 f44 f37 f38 ... %1st order
|
||
|
f45 f46 f47 f48 f48 f49 f50 f51 f52 f52 f53 f54 f55 f56 f56 f57 f58 f59 f60 f61 f62 f63 f64 f65 f66 f57 f58 f59 f67 f60 ...
|
||
|
f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f70 f71 f81 ... %2nd order
|
||
|
f82 f83 f84 f85 f86 f87 f88 f89 f86 f87 ... %3rd order
|
||
|
f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f95 f96 f97 f103 f102 f98 ... %4th order
|
||
|
|
||
|
];
|
||
|
|
||
|
%indirect terms due to an external perturber. The prefactor of alph
|
||
|
%comes from the definition of the disturbing function (Solar System
|
||
|
%Dynamics equation 6.44).
|
||
|
|
||
|
Terms.fE = alph*[(j==1)*[-1 0.5 0.5 1 1 1/64 -0.25 1/64 -0.5 -0.5 -0.5 -0.5 0 0 -1] ...
|
||
|
(j==-2)*[-1 0.75 0.75 1 1] (j==-1)*[-2 1 1 1 1] (j==-1)*(-1/64)+(j==-3)*(-81/64) ...
|
||
|
(j==1)*(-1/8) 0 (j==-1)*(-1/8) (j==1)*0.25 0 (j==-2)*(-2) 0 (j==-1)*0.25 ...
|
||
|
(j==1)*(-1/8) 0 (j==-1)*(-1/8) (j==-1)*(-1) ... %up to here - 0th order indirect
|
||
|
(j==-1)*[-0.5 3/8 0.25 0.5 0.5]+(j==1)*[1.5 0 -0.75 -1.5 -1.5] ...
|
||
|
(j==2)*[-2 1 1.5 2 2] (j==-2)*(-0.75) (j==1)*3/16+(j==3)*(-27/16)...
|
||
|
(j==1)*1.5 0 (j==1)*3 (j==-1)*(-1) (j==1)*(-3) (j==2)*(-4) 0 0 (j==1)*1.5 0 ... %up to here - 1st order indirect
|
||
|
(j==-1)*[-3/8 3/8 3/16 3/8 3/8]+(j==1)*[-1/8 -1/24 1/16 1/8 1/8] (j==2)*[3 0 -9/4 -3 -3] ...
|
||
|
(j==1)*[-1/8 1/16 -1/24 1/8 1/8]+(j==3)*[-27/8 27/16 27/8 27/8 27/8]...
|
||
|
(j==1)*[-1 0.5 0.5 0 1] (j==1)*[2 -1 -1 -1 -1] (j==1)*[-1 0.5 0.5 1 0]...
|
||
|
(j==-2)*(-2/3) (j==2)*(0.25)+(j==4)*(-8/3) (j==2)*3 0 ...
|
||
|
(j==1)*(-0.25) (j==-1)*(-0.75) (j==2)*6 0 (j==2)*(-6) 0 ...
|
||
|
(j==3)*(-27/4) (j==1)*(-0.25) 0 (j==2)*3 0 0 ... %up to here - 2nd order indirect
|
||
|
(j==-1)*(-1/3)+(j==1)*(-1/24) (j==2)*(-0.25) (j==1)*(-1/16)+(j==3)*(81/16) ...
|
||
|
(j==2)*(-1/6)+(j==4)*(-16/3) (j==1)*(-0.5) (j==2)*(-2) (j==1)*1 (j==2)*4 (j==1)*(-0.5) (j==2)*(-2) ... %up to here - 3rd order indirect
|
||
|
(j==-1)*(-125/384)+(j==1)*(-3/128) (j==2)*(-1/12) (j==1)*(-3/64)+(j==3)*(-27/64) ...
|
||
|
(j==2)*(-1/12)+(j==4)*(8) (j==3)*(-27/128)+(j==5)*(-3125/384) (j==1)*(-3/8) (j==2)*(-1) (j==3)*(-27/8) 0 ...
|
||
|
(j==1)*(0.75) (j==2)*(2) (j==3)*(27/4) 0 (j==1)*(-3/8) (j==2)*(-1) (j==3)*(-27/8) 0 0 0 ... %up to here - 4th order indirect
|
||
|
];
|
||
|
|
||
|
%Indirect terms due to an internal perturber. The prefactor of 1/alph^2
|
||
|
%comes from the definition of the disturbing function (Solar System
|
||
|
%Dynamics equation 6.45).
|
||
|
|
||
|
|
||
|
Terms.fI = 1/alph^2*[(j==1)*[-1 0.5 0.5 1 1 1/64 -0.25 1/64 -0.5 -0.5 -0.5 -0.5 0 0 -1] ...
|
||
|
+(j==-2)*[-1 0.75 0.75 1 1] (j==-1)*[-2 1 1 1 1] (j==-1)*(-1/64)+(j==-3)*(-81/64) ...
|
||
|
(j==1)*(-1/8) 0 (j==-1)*(-1/8) (j==1)*0.25 0 (j==-2)*(-2) 0 (j==-1)*0.25 ...
|
||
|
(j==1)*(-1/8) 0 (j==-1)*(-1/8) (j==-1)*(-1) ... %up to here - 0th order indirect
|
||
|
(j==-1)*[-2 1.5 1 2 2] ...
|
||
|
(j==0)*[1.5 -0.75 0 -1.5 -1.5]+(j==2)*[-0.5 0.25 3/8 0.5 0.5] ...
|
||
|
(j==0)*3/16+(j==-2)*(-27/16)...
|
||
|
(j==3)*(-0.75) 0 (j==0)*1.5 0 (j==-1)*(-4) 0 (j==2)*(-1) (j==0)*3 (j==0)*(-3) 0 (j==0)*1.5 ... %up to here - 1st order indirect
|
||
|
(j==-1)*[-27/8 27/8 27/16 27/8 27/8]+(j==1)*[-1/8 -1/24 1/16 1/8 1/8]...
|
||
|
(j==2)*[3 -9/4 0 -3 -3] (j==1)*[-1/8 1/16 -1/24 1/8 1/8]+(j==3)*[-3/8 3/16 3/8 3/8 3/8] ...
|
||
|
(j==1)*[-1 0.5 0.5 0 1] (j==1)*[2 -1 -1 -1 -1] (j==1)*[-1 0.5 0.5 1 0] ...
|
||
|
(j==0)*(0.25)+(j==-2)*(-8/3) (j==4)*(-2/3) 0 (j==0)*3 (j==1)*(-0.25) (j==-1)*(-27/4)...
|
||
|
0 (j==0)*6 0 (j==0)*(-6) (j==3)*(-0.75) (j==1)*(-0.25) 0 0 (j==0)*3 0 ... %up to here - 2nd order indirect
|
||
|
(j==-1)*(-16/3)+(j==1)*(-1/6) (j==0)*(81/16)+(j==2)*(-1/16) (j==1)*(-0.25) ...
|
||
|
(j==2)*(-1/24)+(j==4)*(-1/3) (j==1)*(-2) (j==2)*(-0.5) (j==1)*4 (j==2)*1 (j==1)*(-2) (j==2)*(-0.5) ... %up to here - 3rd order indirect
|
||
|
(j==-1)*(-3125/384)+(j==1)*(-27/128) (j==0)*(8)+(j==2)*(-1/12) (j==1)*(-27/64)+(j==3)*(-3/64) ...
|
||
|
(j==2)*(-1/12) (j==3)*(-3/128)+(j==5)*(-125/384) (j==1)*(-27/8) (j==2)*(-1) (j==3)*(-3/8) 0 ...
|
||
|
(j==1)*(27/4) (j==2)*(2) (j==3)*(0.75) 0 (j==1)*(-27/8) (j==2)*(-1) (j==3)*(-3/8) 0 0 0 ... %up to here - 4th order indirect
|
||
|
];
|
||
|
|
||
|
|
||
|
Terms.Df = [Df1 Df2 Df2 Df3 Df3 Df4 Df5 Df6 Df7 Df7 Df7 Df7 Df8 Df8 Df9 ...
|
||
|
Df10 Df11 Df12 Df13 Df13 Df14 Df15 Df15 Df16 Df16 Df17 Df18 Df19 Df20 Df21 Df22 Df23 Df24 Df25 Df18 Df19 Df20 Df26... %0th order
|
||
|
Df27 Df28 Df29 Df30 Df30 Df31 Df32 Df33 Df34 Df34 Df35 Df36 Df37 Df38 Df39 Df40 Df41 Df42 Df43 Df44 Df37 Df38 ... %1st order
|
||
|
Df45 Df46 Df47 Df48 Df48 Df49 Df50 Df51 Df52 Df52 Df53 Df54 Df55 Df56 Df56 Df57 Df58 Df59 Df60 Df61 Df62 Df63 Df64 Df65 Df66 Df57 Df58 Df59 Df67 Df60 ...
|
||
|
Df68 Df69 Df70 Df71 Df72 Df73 Df74 Df75 Df76 Df77 Df78 Df79 Df80 Df70 Df71 Df81 ... %2nd order
|
||
|
Df82 Df83 Df84 Df85 Df86 Df87 Df88 Df89 Df86 Df87 ... %3rd order
|
||
|
Df90 Df91 Df92 Df93 Df94 Df95 Df96 Df97 Df98 Df99 Df100 Df101 Df102 Df95 Df96 Df97 Df103 Df102 Df98 ... %4th order
|
||
|
];
|
||
|
|
||
|
Terms.DfE = Terms.fE/alph; %deriving alph*constant is the same as dividing by alph
|
||
|
Terms.DfI = Terms.fI*(-2/alph); %deriving alph^(-2)*constant is the same as multiplying by (-2/alph)
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
%%
|
||
|
Terms.j = ones(1,Terms.N)*j;
|
||
|
|
||
|
if exist('AllTerms','var')
|
||
|
AllTerms = CatStructFields(AllTerms,Terms,2);
|
||
|
else
|
||
|
AllTerms = Terms;
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
%% one vectorized operation for all terms, including vectorizing on j
|
||
|
TermsInd = find((AllTerms.j~=0 | AllTerms.k~=0) & (AllTerms.A+AllTerms.Ap+AllTerms.B+AllTerms.Bp)<=MaxPower);
|
||
|
[dLambda1_pair,dLambda2_pair,dz1_pair,dz2_pair,du1_pair,du2_pair,da_oa1_pair,da_oa2_pair] = DisturbingFunctionMultiTermVariations(n1,n2,alph,Lambda1,Lambda2,mu1,mu2,AllTerms.j(TermsInd),AllTerms.k(TermsInd),e1,e2,pom1,pom2,I1,I2,s1,s2,Om1,Om2,AllTerms.A(TermsInd),AllTerms.Ap(TermsInd),AllTerms.B(TermsInd),AllTerms.Bp(TermsInd),AllTerms.C(TermsInd),AllTerms.Cp(TermsInd),AllTerms.D(TermsInd),AllTerms.Dp(TermsInd),AllTerms.f(TermsInd),AllTerms.fE(TermsInd),AllTerms.fI(TermsInd),AllTerms.Df(TermsInd),AllTerms.DfE(TermsInd),AllTerms.DfI(TermsInd));
|
||
|
|
||
|
|
||
|
%% add values of dz and dLambda of the currently analyzed pair
|
||
|
dLambdaMatrix(:,j1) = dLambdaMatrix(:,j1)+dLambda1_pair;
|
||
|
dzMatrix(:,j1) = dzMatrix(:,j1)+dz1_pair;
|
||
|
duMatrix(:,j1) = duMatrix(:,j1)+du1_pair;
|
||
|
da_oaMatrix(:,j1) = da_oaMatrix(:,j1)+da_oa1_pair;
|
||
|
|
||
|
dLambdaMatrix(:,j2) = dLambdaMatrix(:,j2)+dLambda2_pair;
|
||
|
dzMatrix(:,j2) = dzMatrix(:,j2)+dz2_pair;
|
||
|
duMatrix(:,j2) = duMatrix(:,j2)+du2_pair;
|
||
|
da_oaMatrix(:,j2) = da_oaMatrix(:,j2)+da_oa2_pair;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
%%
|
||
|
dLambda = dLambdaMatrix;
|
||
|
dz = dzMatrix;
|
||
|
du = duMatrix;
|
||
|
da_oa = da_oaMatrix;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
function [dLambda1_j,dz1_j,dLambda2_j,dz2_j] = VariationsPair(n1,n2,alph,Lambda1,Lambda2,mu1,mu2,j,z1,z2,e1,e2,pom1,pom2,u1,u2,s1,s2,Om1,Om2)
|
||
|
%This function is the algebraic "heart" of the code, as it calculates the
|
||
|
%integrals of the rhs of Lagrange's planetary equations to yield variations
|
||
|
%in the eccentricities and mean longitudes.
|
||
|
|
||
|
%the following two flags, for adding additional terms, remain here for
|
||
|
%debugging and backward compatibility purposes, though for operational usage they will remain hard-coded as 1.
|
||
|
AddSecondOrderIncTerms = 1;
|
||
|
AddThirdOrder = 1;
|
||
|
|
||
|
|
||
|
%calculate laplace coefficients
|
||
|
Aj = LaplaceCoeffs(alph,0.5,j,0);
|
||
|
DAj = LaplaceCoeffs(alph,0.5,j,1);
|
||
|
D2Aj = LaplaceCoeffs(alph,0.5,j,2);
|
||
|
D3Aj = LaplaceCoeffs(alph,0.5,j,3);
|
||
|
|
||
|
Ajp1 = LaplaceCoeffs(alph,0.5,j+1,0);
|
||
|
DAjp1 = LaplaceCoeffs(alph,0.5,j+1,1);
|
||
|
D2Ajp1 = LaplaceCoeffs(alph,0.5,j+1,2);
|
||
|
D3Ajp1 = LaplaceCoeffs(alph,0.5,j+1,3);
|
||
|
|
||
|
Ajm1 = LaplaceCoeffs(alph,0.5,j-1,0);
|
||
|
DAjm1 = LaplaceCoeffs(alph,0.5,j-1,1);
|
||
|
D2Ajm1 = LaplaceCoeffs(alph,0.5,j-1,2);
|
||
|
D3Ajm1 = LaplaceCoeffs(alph,0.5,j-1,3);
|
||
|
|
||
|
Ajm2 = LaplaceCoeffs(alph,0.5,j-2,0);
|
||
|
DAjm2 = LaplaceCoeffs(alph,0.5,j-2,1);
|
||
|
D2Ajm2 = LaplaceCoeffs(alph,0.5,j-2,2);
|
||
|
D3Ajm2 = LaplaceCoeffs(alph,0.5,j-2,3);
|
||
|
|
||
|
f1 = 0.5*Aj;
|
||
|
f2 = -0.5*j^2*Aj+0.25*alph*DAj+1/8*alph^2*D2Aj;
|
||
|
f10 = 0.25*(2+6*j+4*j^2)*Ajp1-0.5*alph*DAjp1-0.25*alph^2*D2Ajp1;
|
||
|
|
||
|
f27 = -j*Aj-0.5*alph*DAj;
|
||
|
f31 = (j-0.5)*Ajm1+0.5*alph*DAjm1;
|
||
|
|
||
|
f45 = 1/8*(-5*j+4*j^2)*Aj+0.5*j*alph*DAj+1/8*alph^2*D2Aj;
|
||
|
f49 = 0.25*(-2+6*j-4*j^2)*Ajm1+0.25*alph*(2-4*j)*DAjm1-0.25*alph^2*D2Ajm1;
|
||
|
f53 = 1/8*(2-7*j+4*j^2)*Ajm2+1/8*(-2*alph+4*j*alph)*DAjm2+1/8*alph^2*D2Ajm2;
|
||
|
|
||
|
Df1 = 0.5*DAj;
|
||
|
Df2 = -0.5*j^2*DAj+0.25*DAj+0.25*alph*D2Aj+1/4*alph*D2Aj+1/8*alph^2*D3Aj;
|
||
|
Df10 = 0.25*(2+6*j+4*j^2)*DAjp1-0.5*DAjp1-0.5*alph*D2Ajp1-0.5*alph*D2Ajp1-0.25*alph^2*D3Ajp1;
|
||
|
|
||
|
Df27 = -j*DAj-0.5*DAj-0.5*alph*D2Aj;
|
||
|
Df31 = (j-0.5)*DAjm1+0.5*DAjm1+0.5*alph*D2Ajm1;
|
||
|
|
||
|
Df45 = 1/8*(-5*j+4*j^2)*DAj+0.5*j*DAj+0.5*j*alph*D2Aj+1/4*alph*D2Aj+1/8*alph^2*D3Aj;
|
||
|
Df49 = 0.25*(-2+6*j-4*j^2)*DAjm1+0.25*(2-4*j)*DAjm1+0.25*alph*(2-4*j)*D2Ajm1-0.5*alph*D2Ajm1-0.25*alph^2*D3Ajm1;
|
||
|
Df53 = 1/8*(2-7*j+4*j^2)*DAjm2+1/8*(-2+4*j)*DAjm2+1/8*(-2*alph+4*j*alph)*D2Ajm2+1/4*alph*D2Ajm2+1/8*alph^2*D3Ajm2;
|
||
|
|
||
|
%second order inclination-related and third-order inclination related terms
|
||
|
Bjm1 = LaplaceCoeffs(alph,1.5,j-1,0);
|
||
|
DBjm1 = LaplaceCoeffs(alph,1.5,j-1,1);
|
||
|
f57 = 0.5*alph*Bjm1;
|
||
|
Df57 = 0.5*Bjm1+0.5*alph*DBjm1;
|
||
|
f62 = -2*f57;
|
||
|
Df62 = -2*Df57;
|
||
|
|
||
|
%define relative angle (as used at Hadden et al. 2019)
|
||
|
Psi = j*Lambda2-j*Lambda1;
|
||
|
|
||
|
%define resonant angles
|
||
|
Lambda_j1 = j*Lambda2+(1-j)*Lambda1;
|
||
|
Lambda_j2 = j*Lambda2+(2-j)*Lambda1;
|
||
|
Lambda_j3 = j*Lambda2+(3-j)*Lambda1;
|
||
|
|
||
|
%define "super mean motions"
|
||
|
nj1 = j*n2+(1-j)*n1;
|
||
|
nj2 = j*n2+(2-j)*n1;
|
||
|
nj3 = j*n2+(3-j)*n1;
|
||
|
|
||
|
%da/a term - inner planet
|
||
|
if j~=0
|
||
|
Order0Term = ((f1-alph*(j==1)+(f2+0.5*alph*(j==1))*(e1.^2+e2.^2)).*sin(Psi)...
|
||
|
+(f10-alph*(j==-2))*e1.*e2.*sin(Psi+pom2-pom1))/(-j)/((n2-n1).^2);
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
(f27+3/2*alph*(j==1)-0.5*alph*(j==-1)).*e1.*sin(Lambda_j1-pom1)+...
|
||
|
(f31-2*alph*(j==2)).*e2.*sin(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
*(1-j)/((nj1).^2);
|
||
|
|
||
|
Order2Term = (...
|
||
|
(f45-3/8*alph*(j==-1)-1/8*alph*(j==1))*e1.^2.*sin(Lambda_j2-2*pom1)+...
|
||
|
(f49+3*alph*(j==2)).*e1.*e2.*sin(Lambda_j2-pom1-pom2)...
|
||
|
+(f53-1/8*alph*(j==1)-27/8*alph*(j==3))*e2.^2.*sin(Lambda_j2-2*pom2)...
|
||
|
)...
|
||
|
.*(2-j)/((nj2).^2);
|
||
|
|
||
|
Int_da_over_a_term = -3*alph*n1^2*(mu2/(1+mu1))*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
%dR/dalpha terms - inner planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
(Df1-(j==1)+(Df2+0.5*(j==1))*(e1.^2+e2.^2)).*sin(Psi)...
|
||
|
+(Df10-(j==-2))*e1.*e2.*sin(Psi+pom2-pom1))/j./(n2-n1);
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
(Df27+3/2*(j==1)-0.5*(j==-1)).*e1.*sin(Lambda_j1-pom1)...
|
||
|
+(Df31-2*(j==2)).*e2.*sin(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
(Df45-3/8*(j==-1)-1/8*(j==1)).*e1.^2.*sin(Lambda_j2-2*pom1)...
|
||
|
+(Df49+3*(j==2)).*e1.*e2.*sin(Lambda_j2-pom1-pom2)...
|
||
|
+(Df53-1/8*(j==1)-27/8*(j==3)).*e2.^2.*sin(Lambda_j2-2*pom2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
Int_dR_dalph_term = -2*alph^2*n1*(mu2/(1+mu1))*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
%e-derivative term - inner planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
(2*f2+alph*(j==1))*e1.*sin(Psi)+...
|
||
|
(f10-alph*(j==-2))*e2.*sin(Psi-pom1+pom2)...
|
||
|
)...
|
||
|
./(j*(n2-n1));
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (f27+3/2*alph*(j==1)-0.5*alph*(j==-1))*sin(Lambda_j1-pom1)./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
2*(f45-3/8*alph*(j==-1)-1/8*alph*(j==1))*e1.*sin(Lambda_j2-2*pom1)+...
|
||
|
(f49+3*alph*(j==2))*e2.*sin(Lambda_j2-pom1-pom2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
e_term = alph/2.*e1.*n1*(mu2/(1+mu1)).*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
|
||
|
dLambda1_j = Int_da_over_a_term+Int_dR_dalph_term+e_term;
|
||
|
|
||
|
if AddSecondOrderIncTerms
|
||
|
%inclination terms of the inner planet
|
||
|
dl1Order2IncTerm1 = 3*mu2/(1+mu1)*alph*n1^2/(nj2)^2*(j-2)*(f57*s1.^2.*sin(Lambda_j2-2*Om1)+f62*s1.*s2.*sin(Lambda_j2-Om1-Om2)+f57*s2.^2.*sin(Lambda_j2-2*Om2));
|
||
|
dl1Order2IncTerm2 = -2*mu2/(1+mu1)*alph^2*n1/(nj2)*(Df57*s1.^2.*sin(Lambda_j2-2*Om1)+Df62*s1.*s2.*sin(Lambda_j2-Om1-Om2)+Df57*s2.^2.*sin(Lambda_j2-2*Om2));
|
||
|
dl1Order2IncTerm3 = mu2/(1+mu1)*alph*n1/nj2*(2*f57*s1.^2.*sin(Lambda_j2-2*Om1)+f62*s1.*s2.*sin(Lambda_j2-Om1-Om2));
|
||
|
dLambda1_j = dLambda1_j+dl1Order2IncTerm1+dl1Order2IncTerm2+dl1Order2IncTerm3;
|
||
|
end
|
||
|
|
||
|
%z variations - inner planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
((2*f2+alph*(j==1)).*sin(Psi)+1i*j*(0.5*f1-0.5*alph*(j==1))*(-1)*cos(Psi)).*z1...
|
||
|
+(f10-alph*(j==-2))*exp(1i*(Psi)).*z2/1i...
|
||
|
)...
|
||
|
./(j*(n2-n1));
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
(f27+3/2*alph*(j==1)-0.5*alph*(j==-1))...
|
||
|
*(...
|
||
|
(1-0.5*e1.^2).*exp(1i*(Lambda_j1))./(1i)...
|
||
|
+0.5i*(j-1).*e1.^2.*exp(1i*pom1).*(-1).*cos(Lambda_j1-pom1)...
|
||
|
)...
|
||
|
+...
|
||
|
0.5i*(f31-2*alph*(j==2))*(j-1)*e1.*e2.*exp(1i*pom1).*(-1).*cos(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
2*(f45-3/8*alph*(j==-1)-1/8*alph*(j==1)).*exp(1i*(Lambda_j2))/1i.*conj(z1)+...
|
||
|
(f49+3*alph*(j==2)).*exp(1i*(Lambda_j2))/1i.*conj(z2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
|
||
|
dz1_j = 1i*n1*alph*mu2/(1+mu1).*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
|
||
|
%da'/a' term - outer planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
-(f1-1/alph^2*(j==1)+(f2+0.5/alph^2*(j==1))*(e1.^2+e2.^2)).*sin(Psi)...
|
||
|
-(f10-1/alph^2*(j==-2))*e1.*e2.*sin(Psi+pom2-pom1)...
|
||
|
)...
|
||
|
/(-j)/((n2-n1).^2);
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
-(f27-2/alph^2*(j==-1))*e1.*sin(Lambda_j1-pom1)...
|
||
|
-(f31+3/2/alph^2*(j==0)-1/2/alph^2*(j==2)).*e2.*sin(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
*(-j)/((nj1).^2);
|
||
|
|
||
|
Order2Term = (...
|
||
|
-(f45-27/8/alph^2*(j==-1)-1/8/alph^2*(j==1))*e1.^2.*sin(Lambda_j2-2*pom1)...
|
||
|
-(f49+3/alph^2*(j==2)).*e1.*e2.*sin(Lambda_j2-pom1-pom2)...
|
||
|
-(f53-1/8/alph^2*(j==1)-3/8/alph^2*(j==3))*e2.^2.*sin(Lambda_j2-2*pom2)...
|
||
|
)...
|
||
|
.*(-j)./((nj2).^2);
|
||
|
|
||
|
Int_da_over_a_term = -3*n2^2*(mu1/(1+mu2)).*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
%dR'/dalpha terms - outer planet - corrected
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
(f1+alph*Df1+(j==1)/alph^2+(f2+alph*Df2-(j==1)/(2*alph^2)).*(e1.^2+e2.^2)).*sin(Psi)...
|
||
|
+(f10+alph*Df10+(j==-2)/alph^2).*e1.*e2.*sin(Psi+pom2-pom1)...
|
||
|
)...
|
||
|
/j./(n2-n1);
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
(f27+alph*Df27+2/(alph^2)*(j==-1)).*e1.*sin(Lambda_j1-pom1)...
|
||
|
+(f31+alph*Df31-3/alph^2*(j==0)+1/(2*alph^2)*(j==2)).*e2.*sin(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
(f45+alph*Df45+27/8/alph^2*(j==-1)+1/8/alph^2*(j==1)).*e1.^2.*sin(Lambda_j2-2*pom1)...
|
||
|
+(f49+alph*Df49-3/alph^2*(j==2)).*e1.*e2.*sin(Lambda_j2-pom1-pom2)...
|
||
|
+(f53+alph*Df53+1/8/alph^2*(j==1)+3/8/alph^2*(j==3)).*e2.^2.*sin(Lambda_j2-2*pom2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
|
||
|
Int_dR_dalph_term = +2*n2*(mu1/(1+mu2))*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
%e'-derivative term - outer planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
(2*f2+1/alph^2*(j==1))*e2.*sin(Psi)+...
|
||
|
(f10-1/alph^2*(j==-2))*e1.*sin(Psi+pom2-pom1)...
|
||
|
)...
|
||
|
./(j*(n2-n1));
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (f31+3/2/alph^2*(j==0)-1/2/alph^2*(j==2))*sin(Lambda_j1-pom2)...
|
||
|
./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
(f49+3/alph^2*(j==2))*e1.*sin(Lambda_j2-pom1-pom2)+...
|
||
|
2*(f53-1/8/alph^2*(j==1)-3/8/alph^2*(j==3))*e2.*sin(Lambda_j2-2*pom2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
e_term = e2/2*n2*(mu1/(1+mu2)).*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
dLambda2_j = (Int_da_over_a_term+Int_dR_dalph_term+e_term);
|
||
|
|
||
|
|
||
|
if AddSecondOrderIncTerms
|
||
|
%inclination terms of the outer planet
|
||
|
dl2Order2IncTerm1 = -3*mu1/(1+mu2)*n2^2/(nj2)^2*(j)*(f57*s1.^2.*sin(Lambda_j2-2*Om1)+f62*s1.*s2.*sin(Lambda_j2-Om1-Om2)+f57*s2.^2.*sin(Lambda_j2-2*Om2));
|
||
|
dl2Order2IncTerm2 = +2*mu1/(1+mu2)*n2/(nj2)*((f57+alph*Df57)*s1.^2.*sin(Lambda_j2-2*Om1)+(f62+alph*Df62)*s1.*s2.*sin(Lambda_j2-Om1-Om2)+(f57+alph*Df57)*s2.^2.*sin(Lambda_j2-2*Om2));
|
||
|
dl2Order2IncTerm3 = mu1/(1+mu2)*n2/nj2*(2*f57*s2.^2.*sin(Lambda_j2-2*Om2)+f62*s1.*s2.*sin(Lambda_j2-Om1-Om2));
|
||
|
dLambda2_j = dLambda2_j+dl2Order2IncTerm1+dl2Order2IncTerm2+dl2Order2IncTerm3;
|
||
|
end
|
||
|
|
||
|
%z' variations - outer planet
|
||
|
if j~=0
|
||
|
Order0Term = (...
|
||
|
((2*f2+1/alph^2*(j==1)).*sin(Psi)+1i*j*(-0.5*f1+0.5/alph^2*(j==1))*(-1)*cos(Psi)).*z2...
|
||
|
+(f10-1/alph^2*(j==-2))*exp(-1i*j*(Lambda2-Lambda1))/(-1i).*z1...
|
||
|
)...
|
||
|
./(j*(n2-n1));
|
||
|
else
|
||
|
Order0Term = 0;
|
||
|
end
|
||
|
|
||
|
Order1Term = (...
|
||
|
(f31+3/2/alph^2*(j==0)-0.5/alph^2*(j==2))*(1-0.5*e2.^2).*exp(1i*(Lambda_j1))./(1i)...
|
||
|
-0.5i*j*(f27-1/alph^2*(j==-1)).*e1.*e2.*exp(1i*pom2).*(-1).*cos(Lambda_j1-pom1)...
|
||
|
-0.5i*j*(f31+3/2/alph^2*(j==0)-1/2/alph^2*(j==2))*e2.^2.*exp(1i*pom2).*(-1).*cos(Lambda_j1-pom2)...
|
||
|
)...
|
||
|
./(nj1);
|
||
|
|
||
|
Order2Term = (...
|
||
|
(f49+3/alph^2*(j==2))*exp(1i*(Lambda_j2))/1i.*conj(z1)+...
|
||
|
2*(f53-1/8/alph^2*(j==1)-3/8/alph^2*(j==3)).*exp(1i*(Lambda_j2))/1i.*conj(z2)...
|
||
|
)...
|
||
|
./(nj2);
|
||
|
|
||
|
|
||
|
dz2_j = 1i*n2*mu1/(1+mu2)*(Order0Term+Order1Term+Order2Term);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
if AddThirdOrder
|
||
|
|
||
|
%calculate Laplace Coefficients required for 3rd order resonant terms
|
||
|
Ajm3 = LaplaceCoeffs(alph,0.5,j-3,0);
|
||
|
DAjm3 = LaplaceCoeffs(alph,0.5,j-3,1);
|
||
|
D2Ajm3 = LaplaceCoeffs(alph,0.5,j-3,2);
|
||
|
D3Ajm3 = LaplaceCoeffs(alph,0.5,j-3,3);
|
||
|
|
||
|
D4Aj = LaplaceCoeffs(alph,0.5,j,4);
|
||
|
D4Ajm1 = LaplaceCoeffs(alph,0.5,j-1,4);
|
||
|
D4Ajm2 = LaplaceCoeffs(alph,0.5,j-2,4);
|
||
|
D4Ajm3 = LaplaceCoeffs(alph,0.5,j-3,4);
|
||
|
|
||
|
%calculate the coefficients from Murray&Dermott appendix B related to
|
||
|
%3rd order resonant terms
|
||
|
f82 = 1/48*(-26*j*Aj+30*j^2*Aj-8*j^3*Aj-9*alph*DAj+27*j*alph*DAj-12*j^2*alph*DAj+6*alph^2*D2Aj-6*j*alph^2*D2Aj-alph^3*D3Aj);
|
||
|
f83 = 1/16*(-9*Ajm1+31*j*Ajm1-30*j^2*Ajm1+8*j^3*Ajm1+9*alph*DAjm1-25*j*alph*DAjm1+12*j^2*alph*DAjm1-5*alph^2*D2Ajm1+6*j*alph^2*D2Ajm1+alph^3*D3Ajm1);
|
||
|
f84 = 1/16*(8*Ajm2-32*j*Ajm2+30*j^2*Ajm2-8*j^3*Ajm2-8*alph*DAjm2+23*j*alph*DAjm2-12*j^2*alph*DAjm2+4*alph^2*D2Ajm2-6*j*alph^2*D2Ajm2-alph^3*D3Ajm2);
|
||
|
f85 = 1/48*(-6*Ajm3+29*j*Ajm3-30*j^2*Ajm3+8*j^3*Ajm3+6*alph*DAjm3-21*j*alph*DAjm3+12*j^2*alph*DAjm3-3*alph^2*D2Ajm3+6*j*alph^2*D2Ajm3+alph^3*D3Ajm3);
|
||
|
|
||
|
Df82 = 1/48*(-26*j*DAj+30*j^2*DAj-8*j^3*DAj-9*DAj-9*alph*D2Aj+27*j*DAj+27*j*alph*D2Aj-12*j^2*DAj-12*j^2*alph*D2Aj+12*alph*D2Aj+6*alph^2*D3Aj-12*j*alph*D2Aj-6*j*alph^2*D3Aj-3*alph^2*D3Aj-alph^3*D4Aj);
|
||
|
Df83 = 1/16*(-9*DAjm1+31*j*DAjm1-30*j^2*DAjm1+8*j^3*DAjm1+9*DAjm1+9*alph*D2Ajm1-25*j*DAjm1-25*j*alph*D2Ajm1+12*j^2*DAjm1+12*j^2*alph*D2Ajm1-10*alph*D2Ajm1-5*alph^2*D3Ajm1+12*j*alph*D2Ajm1+6*j*alph^2*D3Ajm1+3*alph^2*D3Ajm1+alph^3*D4Ajm1);
|
||
|
Df84 = 1/16*(8*DAjm2-32*j*DAjm2+30*j^2*DAjm2-8*j^3*DAjm2-8*DAjm2-8*alph*D2Ajm2+23*j*DAjm2+23*j*alph*D2Ajm2-12*j^2*DAjm2-12*j^2*alph*D2Ajm2+8*alph*D2Ajm2+4*alph^2*D3Ajm2-12*j*alph*D2Ajm2-6*j*alph^2*D3Ajm2-3*alph^2*D3Ajm2-alph^3*D4Ajm2);
|
||
|
Df85 = 1/48*(-6*DAjm3+29*j*DAjm3-30*j^2*DAjm3+8*j^3*DAjm3+6*DAjm3+6*alph*D2Ajm3-21*j*DAjm3-21*j*alph*D2Ajm3+12*j^2*DAjm3+12*j^2*alph*D2Ajm3-6*alph*D2Ajm3-3*alph^2*D3Ajm3+12*j*alph*D2Ajm3+6*j*alph^2*D3Ajm3+3*alph^2*D3Ajm3+alph^3*D4Ajm3);
|
||
|
|
||
|
|
||
|
D2Bjm1 = LaplaceCoeffs(alph,1.5,j-1,2);
|
||
|
Bjm2 = LaplaceCoeffs(alph,1.5,j-2,0);
|
||
|
DBjm2 = LaplaceCoeffs(alph,1.5,j-2,1);
|
||
|
D2Bjm2 = LaplaceCoeffs(alph,1.5,j-2,2);
|
||
|
|
||
|
|
||
|
f86 = 0.75*alph*Bjm1-0.5*j*alph*Bjm1-0.25*alph^2*DBjm1;
|
||
|
f87 = 0.5*j*alph*Bjm2+0.25*alph^2*DBjm2;
|
||
|
f88 = -2*f86;
|
||
|
f89 = -2*f87;
|
||
|
Df86 = 0.75*Bjm1+0.75*alph*DBjm1 -0.5*j*Bjm1-0.5*j*alph*DBjm1 -0.5*alph*DBjm1-0.25*alph^2*D2Bjm1;
|
||
|
Df87 = 0.5*j*Bjm2+0.5*j*alph*DBjm2+ 0.5*alph*DBjm2+0.25*alph^2*D2Bjm2;
|
||
|
Df88 = -2*Df86;
|
||
|
Df89 = -2*Df87;
|
||
|
|
||
|
%calculate the 3rd order resonant terms contribution to the forced eccentricity
|
||
|
dz1Order3Term1 = mu2/(1+mu1)*alph*n1/(nj3)*exp(1i*pom1).*(3*f82*e1.^2.*exp(1i*(Lambda_j3-3*pom1)) +2*f83.*e1.*e2.*exp(1i*(Lambda_j3-2*pom1-pom2))+1*f84*e2.^2.*exp(1i*(Lambda_j3-pom1-2*pom2)));
|
||
|
dz2Order3Term1 = mu1/(1+mu2) *n2/(nj3)*exp(1i*pom2).*(1*f83*e1.^2.*exp(1i*(Lambda_j3-2*pom1-pom2))+2*f84*e1.*e2.*exp(1i*(Lambda_j3-pom1-2*pom2))+3*(f85-(j==4)/(3*alph^2))*e2.^2.*exp(1i*(Lambda_j3-3*pom2)));
|
||
|
|
||
|
%add the contribution of the terms involving both e and I (or s in
|
||
|
%Murray&Dermott formulae) - these with the coefficients f86-f89
|
||
|
dz1Order3Term2 = mu2/(1+mu1)*alph*n1/(nj3).*(f86*s1.^2.*exp(1i*(Lambda_j3-2*Om1))+f88*s1.*s2.*exp(1i*(Lambda_j3-Om1-Om2))+f86*s2.^2.*exp(1i*(Lambda_j3-2*Om2)));
|
||
|
dz2Order3Term2 = mu1/(1+mu2) *n2/(nj3).*(f87*s1.^2.*exp(1i*(Lambda_j3-2*Om1))+f89*s1.*s2.*exp(1i*(Lambda_j3-Om1-Om2))+f87*s2.^2.*exp(1i*(Lambda_j3-2*Om2)));
|
||
|
|
||
|
%calculate the 3rd order resonant terms contribution to the forced
|
||
|
%mean longitude
|
||
|
|
||
|
%dn/n contribution
|
||
|
dl1Order3Term1 = 3*(j-3)*mu2/(1+mu1)*alph*n1^2/(nj3)^2*(f82*e1.^3.*sin(Lambda_j3-3*pom1)+f83*e1.^2.*e2.*sin(Lambda_j3-2*pom1-pom2)+f84*e1.*e2.^2.*sin(Lambda_j3-pom1-2*pom2)+(f85-(j==4)*16/3*alph)*e2.^3.*sin(Lambda_j3-3*pom2));
|
||
|
dl2Order3Term1 = 3*(-j)*mu1/(1+mu2)*n2^2/(nj3)^2*(f82*e1.^3.*sin(Lambda_j3-3*pom1)+f83*e1.^2.*e2.*sin(Lambda_j3-2*pom1-pom2)+f84*e1.*e2.^2.*sin(Lambda_j3-pom1-2*pom2)+(f85-(j==4)/(3*alph^2))*e2.^3.*sin(Lambda_j3-3*pom2));
|
||
|
|
||
|
%dR/da and dR/da' contribution
|
||
|
dl1Order3Term2 = -2*mu2/(1+mu1)*alph^2*n1/(nj3)*(Df82*e1.^3.*sin(Lambda_j3-3*pom1)+Df83*e1.^2.*e2.*sin(Lambda_j3-2*pom1-pom2)+Df84*e1.*e2.^2.*sin(Lambda_j3-pom1-2*pom2)+(Df85-16/3*(j==4))*e2.^3.*sin(Lambda_j3-3*pom2));
|
||
|
dl2Order3Term2 = 2*mu1/(1+mu2)*n2/(nj3)*((f82+alph*Df82)*e1.^3.*sin(Lambda_j3-3*pom1)+(f83+alph*Df83)*e1.^2.*e2.*sin(Lambda_j3-2*pom1-pom2)+(f84+alph*Df84)*e1.*e2.^2.*sin(Lambda_j3-pom1-2*pom2)+(f85+alph*Df85+2/(3*alph^3)*(j==4))*e2.^3.*sin(Lambda_j3-3*pom2));
|
||
|
|
||
|
%add the contribution of the terms involving both e and I (or s in
|
||
|
%Murray&Dermott formulae) - these with the coefficients f86-f89
|
||
|
|
||
|
%dn/n contribution
|
||
|
dl1Order3Term3 = 3*(j-3)*mu2/(1+mu1)*alph*n1^2/(nj3)^2*(f86*e1.*s1.^2.*sin(Lambda_j3-pom1-2*Om1) +f87*e2.*s1.^2.*sin(Lambda_j3-pom2-2*Om1) +f88*e1.*s1.*s2.*sin(Lambda_j3-pom1-Om1-Om2) +f89*e2.*s1.*s2.*sin(Lambda_j3-pom2-Om1-Om2) + f86*e1.*s2.^2.*sin(Lambda_j3-pom1-2*Om2) +f87*e2.*s2.^2.*sin(Lambda_j3-pom2-2*Om2));
|
||
|
dl2Order3Term3 = 3*(-j) *mu1/(1+mu2)*n2^2 ./(nj3)^2*(f86*e1.*s1.^2.*sin(Lambda_j3-pom1-2*Om1) +f87*e2.*s1.^2.*sin(Lambda_j3-pom2-2*Om1) +f88*e1.*s1.*s2.*sin(Lambda_j3-pom1-Om1-Om2) +f89*e2.*s1.*s2.*sin(Lambda_j3-pom2-Om1-Om2) + f86*e1.*s2.^2.*sin(Lambda_j3-pom1-2*Om2) +f87*e2.*s2.^2.*sin(Lambda_j3-pom2-2*Om2));
|
||
|
|
||
|
%dR/da and dR/da' contribution
|
||
|
dl1Order3Term4 = -2*mu2/(1+mu1)*alph^2*n1/(nj3)* (Df86*e1.*s1.^2.*sin(Lambda_j3-pom1-2*Om1) + Df87*e2.*s1.^2.*sin(Lambda_j3-pom2-2*Om1) +Df88*e1.*s1.*s2.*sin(Lambda_j3-pom1-Om1-Om2) +Df89*e2.*s1.*s2.*sin(Lambda_j3-pom2-Om1-Om2) + Df86*e1.*s2.^2.*sin(Lambda_j3-pom1-2*Om2) + Df87*e2.*s2.^2.*sin(Lambda_j3-pom2-2*Om2));
|
||
|
dl2Order3Term4 = 2*mu1/(1+mu2)*n2/(nj3)* ((f86+alph*Df86)*e1.*s1.^2.*sin(Lambda_j3-pom1-2*Om1) + (f87+alph*Df87)*e2.*s1.^2.*sin(Lambda_j3-pom2-2*Om1) +(f88+alph*Df88)*e1.*s1.*s2.*sin(Lambda_j3-pom1-Om1-Om2) +(f89+alph*Df89)*e2.*s1.*s2.*sin(Lambda_j3-pom2-Om1-Om2) + (f86+alph*Df86)*e1.*s2.^2.*sin(Lambda_j3-pom1-2*Om2) + (f87+alph*Df87)*e2.*s2.^2.*sin(Lambda_j3-pom2-2*Om2));
|
||
|
|
||
|
%sum all the contributions to delta-lambda
|
||
|
dl1Order3 = dl1Order3Term1+dl1Order3Term2+dl1Order3Term3+dl1Order3Term4;
|
||
|
dl2Order3 = dl2Order3Term1+dl2Order3Term2+dl2Order3Term3+dl2Order3Term4;
|
||
|
|
||
|
%sum all the contributions to delta-z
|
||
|
dz1Order3 = dz1Order3Term1+dz1Order3Term2;
|
||
|
dz2Order3 = dz2Order3Term1+dz2Order3Term2;
|
||
|
|
||
|
%add the 3rd order contribution to the total forced eccentricities and
|
||
|
%mean longitudes
|
||
|
dLambda1_j = dLambda1_j+dl1Order3;
|
||
|
dz1_j = dz1_j+dz1Order3;
|
||
|
dLambda2_j = dLambda2_j+dl2Order3;
|
||
|
dz2_j = dz2_j+dz2Order3;
|
||
|
|
||
|
end
|