Files
sim-numerics/FINDINGS_logarithmic.md
T

48 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Findings — логарифмическая замена переменной (линия `NEXT_PAPER_logarithmic.md`)
Пред-регистрация: `PREREG_logarithmic_2026-09-20.md`. Здесь — то, что установлено, в порядке
установления. Числа только с Linux (libm).
---
## 0. Базовое состояние воспроизведено (2026-09-20, сервер)
- `pytest tests/ -q` → **665 passed, 9 skipped, 364.91 s**.
- `verify_article.py` → **«every number stated in the paper matches the sweep data»** (все 72 числа).
- 🟡 Несоответствие документации: README обещает «490 tests», фактически 674. README не правлю —
он описывает опубликованный артефакт; расхождение зафиксировано здесь.
- 🟡 На сервере не было ни одного `*.json`: `sweep_full.json` (1 349 222 байта) залит с ноутбука, иначе
проверки, сверяющие статью с данными, молча пропускаются (те самые 9 skipped).
## 1. 🔴 Два гейта допуска НЕСОВМЕСТИМЫ в строгой формулировке — установлено ВЫВОДОМ, без прогона
Шаг метода: `step = (1 − S(|f|/sc))·(far − x)`, `sc = |slope|·|far − x|`.
Гейт **G1** — `c`, `s` выводятся из скобки; гейт **G2** — на узких скобках преобразование тождественно
до округления, то есть требует `|x − c| / s → 0` при сжатии скобки.
| выбор единицы `s` (все беспараметрические) | узкая скобка | широкая скобка |
|---|---|---|
| `s = \|f(c)\|/\|f'(c)\|` — ньютоновская длина (пред-регистрированный кандидат) | у простого корня `\|x−c\| ~ \|f\|/\|f'\| ~ s`, отношение → **O(1)**, тождественности **НЕТ** | марш есть |
| `s = w₀` — исходная ширина скобки (датум задачи) | `\|x−c\|/w₀ → 0`, тождественность **есть** | `\|x−c\|/w₀ ≤ 1` ⇒ снова почти тождественность, **марша НЕТ** |
| `u = log\|x−c\|` — без единицы вовсе | режима тождественности **нет** и `x = c` не определено | марш есть |
| `s = \|x−c\|` — самомасштабируемая | мультипликативный шаг отличается от аддитивного во **втором порядке** `O((Δ/(x−c))²)` ⇒ строгой тождественности **НЕТ** | марш есть |
**Вывод:** ни одна доступная беспараметрическая единица не удовлетворяет G1 и строгому G2
одновременно. Это свойство постановки, а не деталь реализации.
**Что из этого следует содержательно:** марш требует **отношения** расстояний, а тождественность —
**абсолютной** шкалы; одно преобразование не может быть одновременно масштабно-свободным и
масштабно-привязанным. Заодно это объясняет, почему `cbrt` «работал случайно»: он берёт фиксированную
долю скобки, то есть отношение, и потому марширует — но фиксирует показатель 1/3 как константу, чего
метод себе позволить не может.
**Развилка, вынесенная Валерию (решение не моё):**
- **A** — оставить G2 строгим ⇒ линия закрывается сейчас, по выводу; отрицательный результат
постановки, сам вывод сохранён.
- **B** — заменить G2 на его же измеримое чтение из пред-регистрации (L2: «на APS-154 суммарная цена
не растёт»), реализовать самомасштабируемый режим и мерить; строгая тождественность была лишним
обещанием, а не требованием протокола статьи.
Ослабление пред-регистрированного гейта после его провала — приём, которым легко обмануть себя,
поэтому он делается только по явному решению, и оба варианта записаны здесь заранее.