Files
sim-numerics/PREREG_estimated_transform_2026-09-22.md
T

7.0 KiB
Raw Blame History

PREREG — классическое преобразование с оценённой кратностью (К3)

Составлено 2026-09-22 до кода и до прогона, ветка release. Доработка 2, п. 5; Валерий: «контроль п. 5 делаем». Документ коммитится до кода; внешней метки времени нет (депозит на Zenodo не делался — это решение автора, не принятое на момент записи), так что порядок подтверждается только git, как и у прежних документов.

Вопрос

Табл. 11 (К1): Chandrupatla на sign(f)|f|^{1/m*} с истинной кратностью в 2.4–6.8 раза дешевле A′ на кратных и дробных корнях. Между ней и A′ — самая естественная классическая альтернатива: тот же Chandrupatla на sign(f)|f|^{1/m̂}, где m̂ оценивается по ходу прогона. Она отвечает, сколько стоит оценка порядка в классической рамке, а не в рамке A′, и закрывает (или нет) утверждение §6.6 о том, что выигрыш несёт решающий слой A′.

Определение К3

Решатель. Наша реализация Chandrupatla (simroot/baselines.py::chandrupatla), совпадающая с scipy.optimize.elementwise.find_root на всех 199 задачах (audit_chandrupatla_library.py). Метод хранит истинные значения f в своих трёх точках. Знаки, выбор лучшей точки и остановка — по f, как у исходного метода (g и f имеют одинаковые знаки и одинаково упорядочены по модулю). В ξ, φ полосы приёмки и в формуле обратной квадратичной интерполяции значения f заменяются на G(v) = sign(v)·|v|^{1/m̂}, пересчитанные из хранимых f при текущем m̂. Лишних вычислений f нет.

Оценка m̂. Начальное m̂ = 1 (преобразования нет). После каждого вычисления по трём последним вычисленным точкам (в порядке вычисления) читается порядок m одним из двух оценщиков:

  • К3-Л (Лагуанель): m_L из параболы через три точки, θ = f·f''/f'², m = 1/(1 − θ) при θ < 1, m = ∞ при θ ≥ 1 — ровно определение К2-Л (_lagouanelle_raw);
  • К3-А (аналогия): порядок аналогичной пары A′ (формула (6), предел трансляции m = ∞), по памяти конфигураций этого прогона — ровно _config3 / _analogy_order A′.

Гистерезис (как в К2): m̂ заменяется прочитанным m, только если m ≥ 2 или 0 < m ≤ ⅔ (ветви §6.1); чтения из (⅔, 2) и неопределённые m̂ не меняют. Сброса нет. При m̂ = ∞ G(v) = sign(v), и полоса почти всегда отвергает интерполяцию — метод делит пополам.

Ни одного нового числа: ½, ⅔, 2 — константы A′ и К2. Кроме оценщика, ничего не выбирается.

Проверка реализации до прогона: при оценщике «нет» (m̂ ≡ 1) К3 совпадает с chandrupatla бит в бит (x и число вычислений) на всех 199 задачах — тест.

Где и как считать

Шесть корпусов §7, единый критерий (смена знака f в 10⁻⁶ или f = 0), бюджет 200, провал за 200, остановка — ширина скобки ≤ εx или точный ноль f (как у всех). Нарушения границы 2⌈log₂(w/εx)⌉ + 4 — сообщаются (Chandrupatla её не обещает).

Критерии и что пишется в статье

# сообщается / решается
E1 корпус 4, решающий: для каждого оценщика — сумма К3 против A′, по задачам w/t/l, знаковый тест
E2 шесть корпусов: суммы К3-Л, К3-А, A′, Chandrupatla на f — сообщается
E3 кратные/дробные корни (группа табл. 11, m* ≥ 2 или ≤ ⅔): К3-Л, К3-А, A′, оракул К1 — какая доля разрыва A′ → оракул закрыта оценкой в классической рамке
E4 простые корни (остальные): не хуже ли К3 обычного Chandrupatla — цена ложных срабатываний оценщика

Правило вывода (при любом исходе в статью):

  • Если хотя бы один вариант К3 на корпусе 4 не хуже A′ по сумме, или выигрывает у A′ по задачам со знаковым тестом p < 0.05, — утверждение §6.6 о том, что выигрыш несёт решающий слой A′, снимается: пишется, что классическое преобразование с оценкой порядка по ходу прогона даёт то же (или больше), и вклад статьи сужается до вывода и сравнения; аннотация и заключение следуют за этим.
  • Если A′ дешевле обоих вариантов на корпусе 4 и выигрывает по задачам с p < 0.05, — утверждение остаётся, с числами К3 рядом с К1 в табл. 11.
  • Промежуточный исход (A′ дешевле по сумме, но по задачам незначимо) пишется как есть, без вывода в пользу A′.
  • Сравнение К3-А и К3-Л отделяет оценщик от рамки: если К3-А лучше К3-Л, оценка по аналогии лучше и в классической рамке; если К3-А хуже A′, выигрыш A′ — в рамке (режим, выход, остальные правила).

Стоп-правило. Один прогон. Определения после него не меняются; поправки, если понадобятся после смоука, записываются здесь с перечнем уже увиденного, как в PREREG_controls_2026-09-22.md.