Discovering a Moving Orbit Algorithm

  • Thread starter kts123
  • Start date
  • Tags
    Orbit
In summary, the speaker describes an algorithm involving three unique functions, g(), f(), and F(), and how they are used to iterate values of a and b. They also mention the behavior of the "orbit" and the potential applications of this algorithm. However, there is some confusion and lack of clarity in the explanation.
  • #1
kts123
72
0
A moving "orbit"?

I'm using the term orbit in a non-mathematical sense, because I don't know what it is I've just thought up! It seems very interesting to me, does anyone know what it is I've stumbled on?

Imagine an algorithm that is iterated as follows:

*I must stress that g( ), f( ), and F( ) are each unique, and that that they are the ONLY functions being used.

If a < b, then a = f(a), and b = g(b) where 0 < |g(b)-b| < |f(a)-a| and 0 < b < g(b) and 0 < a < f(a)
If a > b, then a = F(a) and b = g(b) where 0 < |F(a)-a| < |g(b)-b| and 0 < b < g(b)

In otherwords, the difference between b and g(b) is LESS THAN the difference of a and f(a), hence when the function f(a) is iterated against g(b), f(a) will "grow faster" than g(b), hence while a < b, a is "catching up" to b. After this is iterated enough, a will pass up b...

Now that a has passed up b, the second half of the algorithm comes into play:
When iterated, the difference of g(b) and b is GREATER THAN the difference of a and F(a) (by definition.) Hence each iteration of g(b) causes a larger increase than that of F(a) -- in otherwords, b is now running faster than a!

HOWEVER, g(b) ALWAYS causes b to increase -- hence EVERY iteration causes our algorithm's outputs of a and b to steadily increase, yet since a will pass up b, and then slow down so that b passes up a (or in the case of 0 < F(a) < a, run backwards!) I say that a is orbiting b, and that b is moving.

Imagining a graph in which each iteration is given an x value, and each a output a y value, various functions satisfying the inequality would probably create a "stair-case." I'm wondering what might happen if an iteration would cause a = b, how we might re-define the algorithm to account for that (maybe have one side defined as LESS THAN OR EQUAL TO, and the other simply as GREATER THAN -- or reverse this to get a new effect on the algorithm, I'm not sure.)

Eh-hem, and for good measure, here's an example:
if a (lesser-or-equal-to) b, then b = b+2 and a = a+3 (starting at a = 1 and b = 2)
if a > b, then b = b+2 and a = a-10

a = 1, and b = 2, 1 < 2, therefor we iterate: a=1+3, b = 2+2
a = 4 and b = 4, a is less or equal to b, therefor we iterate: a=4+3, b = 4+2
a = 7 and b = 6, a is GREATER than b, therefore we iterate the second: a=7-10, b=6+2
a = -3 and b = 8 ...

See what I mean?
 
Mathematics news on Phys.org
  • #2


After a little thought, it also seems like this might be adapted into other contexts (complex functions, with neighborhoods as criteria for example.) I'm not really sure if this is useful or worth bothering with though, since it really is nothing more than an algorithm -- I guess there really isn't anything stopping us from making one as confusing or complex as need be.

I'm mostly just interested in the behavior of the "orbit," since each value of the function will create a unique pattern. You can plug a few into a script (I tried it myself in Python Shell last night) to see what I mean.
 
  • #3


I suspect you are not getting any responses because it is not at all clear what you are saying. For example, you appear to have a function, g, of some variable b. But then you say "g(b) ALWAYS causes b to increase ". What does that mean? How does a function "cause" the variable to increase"?
 
  • #4


Oops, I forgot to specify by what I mean by "iterate."

Take a single number, 3, and then apply a function to it:

3*2 = 6
now take the output and apply the function to THAT:
6*2 = 12
now take the new output and apply the function to THAT:
12*2 = 24
now take the new new output and apply the function to THAT:
24*2 = 48

etc. That is, set a specific value for a and b, and then apply the given function to each value; then take the new value and apply it to THAT. I guess I misused the term "iterate" (and maybe function?) Anyway, does that clarify?

And what I mean by it "always causes it to increase," I mean that g < f(g) ; that is, each output is greater than the input. For example, f(g) = g+1 ; therefor g < f(g).

--------------------------------------------------------------------------------

Sorry, I'm not doing a good job explaining myself I can tell. Maybe it would be better for me to state that a and b are NOT variables, but rather objects that are transformed by an operation that is similar to a function.

When I say "a = f(a)," I mean it somewhat in the python-programing language sense. Does that help?
 
Last edited:
  • #5


I'm going to try to translate, kts123.

Set some values [itex]a_0,b_0>0.[/itex] Define
[tex]b_{n+1}=g(b_n)[/tex] and
[tex]a_{n+1}=\begin{cases} f(a_n),\;a_n<b_n\\\text{?},\;\;\;\;\;\;\;\;a_n=b_n\\F(a_n),\;a_n>b_n \end{cases}[/tex]
for [itex]n\ge0.[/itex] f and g are strictly increasing functions. (Should F be strictly increasing, as well?)

If [itex]a_n<b_n[/itex], then [tex]a_{n+1}-a_n>b_{n+1}-b_n;[/tex]
if [itex]a_n>b_n[/itex], [tex]a_{n+1}-a_n<b_{n+1}-b_n.[/tex]


In some sense, g increases faster than F but slower than f:
[tex]F\prec g\prec f[/tex]
so [itex]a_n-b_n[/itex] oscillates above and below 0 as n increases.
 
  • #6


CRGreathouse said:
I'm going to try to translate, kts123.

Set some values [itex]a_0,b_0>0.[/itex] Define
[tex]b_{n+1}=g(b_n)[/tex] and
[tex]a_{n+1}=\begin{cases} f(a_n),\;a_n<b_n\\\text{?},\;\;\;\;\;\;\;\;a_n=b_n\\F(a_n),\;a_n>b_n \end{cases}[/tex]
for [itex]n\ge0.[/itex] f and g are strictly increasing functions. (Should F be strictly increasing, as well?)

If [itex]a_n<b_n[/itex], then [tex]a_{n+1}-a_n>b_{n+1}-b_n;[/tex]
if [itex]a_n>b_n[/itex], [tex]a_{n+1}-a_n<b_{n+1}-b_n.[/tex]


In some sense, g increases faster than F but slower than f:
[tex]F\prec g\prec f[/tex]
so [itex]a_n-b_n[/itex] oscillates above and below 0 as n increases.


F doesn't need to strictly increase, it simply needs to increase "slower" than g. Anyway, your last statement sums up the result very nicely. I *think* you have a functional translation, so kudos.
 

FAQ: Discovering a Moving Orbit Algorithm

1. What is a moving orbit algorithm?

A moving orbit algorithm is a mathematical approach used to calculate the trajectory of an object in motion. It takes into account various factors such as initial velocity, acceleration, and gravitational forces to determine the path of the object.

2. How is a moving orbit algorithm useful?

A moving orbit algorithm is useful in various fields such as astrophysics, aeronautics, and space exploration. It helps scientists and engineers plan and predict the movement of objects in space, such as satellites or planets.

3. How does a moving orbit algorithm work?

A moving orbit algorithm uses a combination of mathematical equations and computer simulations to calculate the trajectory of an object. It takes into account the initial conditions of the object and uses iterative calculations to determine its path over time.

4. What are some applications of a moving orbit algorithm?

A moving orbit algorithm has many applications, including predicting the movement of celestial bodies, planning spacecraft trajectories, and optimizing satellite orbits for communication and imaging purposes.

5. Are there any limitations to a moving orbit algorithm?

While a moving orbit algorithm is a powerful tool, it does have some limitations. It assumes a perfect and predictable environment, which may not always be the case in real-world scenarios. Additionally, it may not account for external factors such as atmospheric drag or gravitational perturbations from other objects.

Similar threads

Replies
3
Views
1K
Replies
9
Views
1K
Replies
7
Views
1K
Replies
4
Views
1K
Replies
2
Views
2K
Replies
8
Views
1K
Replies
4
Views
2K
Back
Top