Files
sim-numerics/PREREG_close_sub_2026-09-21.md
T

4.8 KiB
Raw Blame History

PREREG — два пробела базового шага: закрытие скобки и корни порядка < 1; проверка на 4-м корпусе

Составлено до кода и до прогона, ветка signfix-and-gates. Валерий: «пред-регистрируй и чини оба пробела, проверка на четвёртом корпусе».

Основание (c2b0eea, прикладной корпус)

  1. Нет закрытия скобки. sin[3, 4]: корень достигнут за 7 вызовов (|f| ≈ 10⁻¹⁶), дальний конец остался в 1.3·10⁻⁷ — ещё 17 делений до 10⁻¹². Чандрупатла ставит точку на допуск за корень.
  2. Корень порядка m < 1 (√|x|·sgn x): шаг перелетает и качается (+0.15, −0.10, +0.066 …, сжатие ≈ 0.8), 84 против 4. Флаг видит только недолёт без смены знака; режим — только m ≥ 2.

Правки (составляющие close и sub составного prestep)

close — ЗАИМСТВОВАНО (Деккер 1969, Брент 1973), в статье называется так. Если шаг модели короче xtol/2, он заменяется шагом ровно xtol/2 в сторону дальнего конца: если модель права и корень ближе xtol/2, новая точка оказывается за корнем и скобка сжимается до допуска. xtol — допуск пользователя, ½ — константа деления; других констант нет.

sub — вторая ветвь того же неравенства. Касательный шаг на подходе порядка m уменьшает ошибку по x в |1 − 1/m| раз; он проигрывает делению пополам при |1 − 1/m| > ½, т.е. при m > 2 (недолёт — уже используется) или m < 2/3 (перелёт). sub добавляет вторую ветвь: плоский режим входит и тогда, когда аналогичная пара читает m ≤ 2/3, а флаг — шаг модели с |f_new/f_old| ≥ ¼ со сменой знака (перелёт; для недолёта флаг прежний). В режиме точка из порядка t = |FA|^(1/m)/(|FA|^(1/m) + |FB|^(1/m)) — при m = ½ точна для чистой степени. Выход — прежний.

Правки добавляются к варианту A (Г2 + contra+flatanalogmempt+exp+half) → A′ = Г2 + contra+flatanalogmempt+exp+half+close+sub.

Разработка — только на увиденных корпусах

Реализация, отладка и смоук — на APS, CHA, новом корпусе 1, Roots.jl и прикладном. Итоговый код A′ коммитится до прогона на четвёртом корпусе; после — никаких изменений.

Проверка — четвёртый корпус (corpus_fourth.py, зерно 20260922, закоммичен сейчас)

240 задач, новые семейства по 40: D1 случайный многочлен (простой корень), D2 многочлен с кратным корнем 3–9, D3 дробная степень |x − r|^p, p ~ U(0.15, 0.95) — целевой для sub, D4 суммы экспонент и синусов, D5 композиции tanh/atan/log1p от кубики, D6 нечётные относительно корня (sin, x + ax³, arcsinh) — целевой для close. Успех — смена знака в пределах 10⁻⁶; XTOL 10⁻¹², MAXFEV 200.

# ПРОЙДЕНО, если
F1 сумма A′ на корпусе 4 меньше, чем у Чандрупатлы
F2 по задачам против Чандрупатлы побед больше, чем поражений, знаковый тест p < 0.05
F3 гарантия: 0 нарушений; решено не меньше, чем у Чандрупатлы
F4 правки заслужены: A′ дешевле A на корпусе 4; абляция — снять close, снять sub по одной, Δ сообщается

«A′ переносится» — F1, F2, F3 одновременно. Сообщается также вывод без целевых классов (D1, D2, D4, D5), против Брента и TOMS748, и A′ на всех увиденных корпусах (описательно).