Variable Step rates in loops

G

gtslabs

I am working on an astronomy project where I need to get all the
conjunctions of 2 planets between 2 dates.
I have functions that give me the Longitude of each planet and the
Angular Separation between 2 longitudes. These are based on a Julian
Day.

I need help with how to get the most accurate date/time of each event
where PAS (Planetry Angular Separation) = 0 or less than X (say
0.001*)

When I step thur my routine with the Julian Day (JD) by 1 I dont get
the precision as if I steped thru at 0.0001.
Obvously the 0.0001 step would take forever if I am searching over 30
years.

Is there a way to have a variable STEP that reduces based on the value
of my PAS?
Then once one event is solved, the step would go back to 1 and start
the loop over?

Thanks
 
D

Dana DeLouis

Hi. Would a simple linear interpolation function work for you?
If at day 10, planet a is 4 degrees ahead of B, and on day 20 it is -12
degrees behind, then a very simple next guess might be...

Sub Example()
Debug.Print NextGuess(10, 4, 20, -12)
End Sub

Returns: 12.5

Meaning that a guess of when they were the closest is day 12, at around
noon.
Use this, and the closest of the previous two observations, and loop again.

Function NextGuess(t1, d1, t2, d2)
'Time 1, Difference 1, time 2, Difference 2

NextGuess = (d1 * t2 - d2 * t1) / (d1 - d2)
End Function

= = =
HTH :>)
Dana DeLouis
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top