How to find a planet in resonance

I am trying to find a method for detecting planets that are in resonance with orbital parameters (period, eccentricity, half-axis ...).

I know that if the ratio between the two planets is comparable, it means that they are in resonance, but suppose I want to know what resonance they are in, how can I do this?

For example, I have my matrix of N planets and periods. How can I create a cycle to check if there are planets in what resonance?

Sort of:

for i=1, N
  P(i)/P(i-1)=m
   if m (check the resonance condition) then
      write (planets parameters)
   end if
end for

Many thanks.

I am doing this program, I have a 2xN matrix in which the columns are the identifier of the planets and their period, the rows are the number of planets, for example, something like this:

1 0.44
1 0.8
1 0.9
2 0.9
2 1.2
3 2.0
3 3.0

, , - , .

:

  • ,
  • col *,
  • "" "" ,
  • :
for r=1,row  <--- THIS MUST READ all the file   
    if (difference in name = 0.) then start the resonance find criterion
        for l = 0,4 (number of planet in each system: THIS MUST BE MODIFIED !!) 
        for i = 1,5
        for j = 1,5
            if (i*period(l)-j*period(l+1) eq 0) <- RESONANCE CONDITION !!!  
                then write on file
        end for
        end for
        end for
    else write a separation between the first set and second set of planets !
end for

IDL, :

pro resfind

file = "data.dat"
rows =File_Lines(file) ; per le righe
openr,lun,file,/Get_lun ; per le colonne
line=""
readf,lun,line
cols = n_elements(StrSplit(line, /RegEx, /extract))

openr,1,"data.dat" 
 data = dblarr(cols,rows)
 readf,1,data
close,1


name = data(0,*)
period = data(1,*)

openw,2,"find.dat"
 for r = 0, rows-2 DO BEGIN ;
        if (name(r)-name(r+1) EQ 0) then begin 
                for l = 0,rows-2 do begin 
                         for j = 1,4 do begin
                                 for i = 1,4 do begin

                                           if (abs(i*period(l)-j*period(l+1)) EQ 0.) then begin 
                                           printf,2, 'i resonance:', i , ' j resonance:',j,' planet ID:',l,' planet ID:',l+1
                                           endif
                                 endfor 
                         endfor
                endfor
        endif else begin
        printf,2, '                                                    ' 
endfor


close,2

end

:

  • , (2: 4, 3: 6 ..);
  • ( ) , , .
+4
1

-, . , , , , . , - , , . , "".

-, , , , , . , 3*(1/3) 1. , : 1/3 , , -, . , , . , " ".

, , (3: 3 = 2: 2, ). (, , .) . , .

+1

Source: https://habr.com/ru/post/1533988/


All Articles