(HP-67) Barkers's Equation
12-06-2019, 01:27 PM
Post: #1
 SlideRule Senior Member Posts: 1,313 Joined: Dec 2013
(HP-67) Barkers's Equation
An extract from An Efficient Method for Solving Barkers's Equation, British Astronomical Association, R. Meire, Journal of the British Astronomical Association, Vol. 95, NO.3/APR, P.113, 1985

"In a parabolic orbit, the true anomaly v (as a function of the time) can be obtained by solving a cubic equation for tan y, the so-called Barker equation. A modified method of solution is described and it is shown that this new form is very efficient from a computational point of view: it needs less program statements, is faster, and it has greater accuracy than the normally used trigonometric solution.

In programming this trigonometric method on a computer or on a calculator, a problem occurs with the cubic root in equation (6) if W < 0. We must include a conditional test in the program to solve this problem. As an example, Appendix A shows the program for an HP-67 calculator, and it can be seen that the cubic root problem takes four additional steps.

Appendix B gives the program for the HP-67 calculator. Although the trigonometric solution has a certain 'beauty', it cannot compete with this new solution (equation (12)) from a practical point of view."

FULLY documented!

BEST!
SlideRule

there are THREE pages to the article. Use the navigation links at the bottom to 'see' ALL three. The program listings are on page 115.
12-06-2019, 06:39 PM (This post was last modified: 03-21-2021 04:12 PM by Albert Chan.)
Post: #2
 Albert Chan Senior Member Posts: 1,659 Joined: Jul 2018
RE: (HP-67) Barkers's Equation
Solving cubic with Cardano's formula, x³ + 3x - 2W = 0

y = ³√(W + √(W²+1))
x = y - 1/y

Note: discriminant = W²+1 > 0, we have only 1 real root for x

If W<0, y may be hit with subtraction cancellation.
We can avoid catastrophic cancellation by solving x'³ + 3x' - 2|W| = 0

x = sign(W) x'

Or, we can go for the big |y|: ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ // assumed acot(W) = atan(1/W)

y = ³√(W + sign(W) √(W²+1)) = ³√(cot(acot(W)/2))

We still have the cancellation error issue when y ≈ 1
A better non-iterative formula is to use hyperbolics.

x = 2 sinh(sinh-1(W)/3)
12-07-2019, 09:39 PM (This post was last modified: 03-21-2021 04:09 PM by Albert Chan.)
Post: #3
 Albert Chan Senior Member Posts: 1,659 Joined: Jul 2018
RE: (HP-67) Barkers's Equation
(12-06-2019 06:39 PM)Albert Chan Wrote:  y = ³√(W + sign(W) √(W²+1)) = ³√(cot(acot(W)/2))

Prove: let θ = acot(W), c = cot(θ/2)

Half angle formula: cot(θ) = W = (c²-1) / (2c)

c² - 2W c - 1 = 0 ﻿ ﻿ ﻿→ c = W ± √(W²+1)

Since |θ| < pi/2, c has same sign of θ, which has same sign of W (assumed sign(0)=1)
However, 2 roots of c have opposite sign. Matching c and W signs, we have:

c = cot(acot(W)/2) = W + sign(W) √(W²+1)
01-31-2020, 03:38 PM (This post was last modified: 01-31-2020 03:41 PM by Albert Chan.)
Post: #4
 Albert Chan Senior Member Posts: 1,659 Joined: Jul 2018
RE: (HP-67) Barkers's Equation
To complete the symmetry (again, assume sign(0)=1):

c² - 2W c + 1 = 0 ﻿ ﻿ ﻿→ c = W ± √(W²-1)

c = cot(csc-1(W)/2) = W + sign(W) √(W²-1)

Note: domain of csc-1(W) = sin-1(1/W) is |W| ≥ 1, otherwise c is a complex root.
04-10-2020, 10:34 PM
Post: #5
 Mathias Zechmeister Junior Member Posts: 3 Joined: Apr 2020
RE: (HP-67) Barkers's Equation
Hi,

I arrived here by googling for "Barker's equation" and "sinh".
Because I derived the same equation as noted here:

(12-06-2019 06:39 PM)Albert Chan Wrote:  x = 2 sinh(sinh-1(W)/3)

So it seems this equation is already known.
But is there any reference to this equation?
I can't find any!?
04-11-2020, 03:29 AM
Post: #6
 Albert Chan Senior Member Posts: 1,659 Joined: Jul 2018
RE: (HP-67) Barkers's Equation
Welcome to the forum, Mathias Zechmeister

Hyperbolic solutions to the cubics is simply matching hyperbolic triple angle formula.
see https://mathworld.wolfram.com/CubicFormula.html, eqn 78,79,80

(12-06-2019 06:39 PM)Albert Chan Wrote:  Solving cubic with Cardano's formula, x³ + 3x - 2W = 0

y = ³√(W + √(W²+1))
x = y - 1/y

Another way is with identity: sinh-1(z) = ln(z + √(z²+1))
→ y = e^(sinh-1(W)/3)
→ x = 2 sinh(sinh-1(W)/3)
04-11-2020, 10:18 PM
Post: #7
 Mathias Zechmeister Junior Member Posts: 3 Joined: Apr 2020
RE: (HP-67) Barkers's Equation
Thanks for the reference. So the relation is mathematically known, but it was likely not applied to Barker's equation.

With the relation:
(12-06-2019 06:39 PM)Albert Chan Wrote:  x = 2 sinh(sinh-1(W)/3)
it is even simplier to compute Barker's equation with a pocket calculator than in R. Meire (1985).
Well, it seems the HP-67 had no hyperbolic functions.

I'm working on a follow-up paper of Zechmeister (2018) and I'm going to mention this relation.

(04-11-2020 03:29 AM)Albert Chan Wrote:  Another way is with identity: sinh-1(z) = ln(z + √(z²+1))
→ y = e^(sinh-1(W)/3)
→ x = 2 sinh(sinh-1(W)/3)
Indeed, that is, how I found it. I noted the term z + √(z²+1) in Barker's equation, and Fukushima (1997, Eq. 73) as well as Raposo-Pulido+ (2018, Eq. 43) reminded of this identity.
08-10-2020, 08:10 AM
Post: #8
 Mathias Zechmeister Junior Member Posts: 3 Joined: Apr 2020
RE: (HP-67) Barkers's Equation
For your information, my paper is accepted. A preprint is available here:
https://arxiv.org/abs/2008.02894
In Sect. 7.2., I briefly discuss Barker's equation, more as a side note. I put you, Albert Chan, in the acknowledgements.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)