Smithsonian / Smithsonian/layup
Herget: the 2x2 determinant is a free degeneracy diagnostic and is discarded
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 10
- Forks
- 2
- Avg merge
- 1d 43m
- Merged PRs (30d)
- 58
Description
find_drho forms the 2x2 normal matrix for (delta_rho_1, delta_rho_n) and discards its determinant. Herget's own program reported it: AJ 70, 1 (1965) says the IBM 1620 "exhibits the determinant of the coefficients of the two normal equations", and the abstract advertises that the program "indicates the degree of indeterminateness of the resulting solution". Both his worked examples tabulate it per iteration.
Using the scale-free form, 1 - corr(a1, a2)^2, over 209 numbered NEOs:
| median determinant | objects | good seed (within 10% of JPL) |
|---|---|---|
| <= 0.01 | 63 | 1 |
| 0.01 - 0.05 | 8 | 2 |
| > 0.05 | 138 | 25 |
So det <= 0.01 flags 63 of 209 objects as hopeless with a single false rejection, and it is available after the first iteration -- rather than 100 iterations on each of the three rho rungs.
Two caveats. The median determinant alone does not separate good from bad overall (Mann-Whitney p = 0.22) and the relation is not monotonic, so this is a fast-fail screen, not a quality metric. The minimum over iterations separates far better than the median: 5.9e-2 for objects that yield a good seed against 1.4e-4 for those that do not.
It would also let a degenerate range report as "indeterminate" rather than as a generic failure to converge, which is the distinction #493 asks for and which #527's accepted column now has somewhere to live.
Against #554, where this code lives.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at find_drho, where the 2x2 normal matrix for delta_rho_1 and delta_rho_n is formed and its determinant discarded. Trace how the first iteration and range-fitting result are reported, then review issues #493, #527, and #554 for the intended status handling. Done should retain the scale-free determinant and allow degenerate ranges to be reported as indeterminate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100