Files
sim-numerics/PREREG_step_extrapolation_2026-09-21.md

51 lines
4.3 KiB
Markdown
Raw Permalink 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.
# PREREG A — похожесть соседних шагов как множитель (экстраполяция)
Составлено до прогона. Валерий: «похожесть с предыдущими шагами можно развить дальше» → «пред-регистрируй
и проверяй A».
## Основание
На плоских функциях метод ходит циклом из 4 вычислений: два недолёта с отношением сжатия
(1−1/m)^m, перескок, почти пустой шаг (`results_diag_contraction_sequence.txt`). В фазе недолёта
итерация ползёт с одной стороны, и соседние шаги — почти постоянная доля друг друга.
## Правило (без констант)
Пусть dₙ — предложенный шаг из текущей точки, dₙ₋₁ = x − x_prev — предыдущее перемещение.
S = min(|dₙ|, |dₙ₋₁|) / max(|dₙ|, |dₙ₋₁|), если dₙ и dₙ₋₁ одного знака; иначе S = 0
шаг A = dₙ / (1 − S)
Оставшийся путь при геометрическом ряде — dₙ·S/(1−S), отсюда множитель 1/(1−S). Для xᵐ под шагом
Ньютона S = 1 − 1/m, множитель = m, шаг A = m·f/f′ попадает в корень. На простом корне шаги
сжимаются сверхлинейно, S → 0, шаг A = dₙ: метод не меняется.
Известное родство: ускорение Эйткена, модифицированный Ньютон для кратного корня. Отличие от
опровергнутых `derived3_m` (m из параболы, слепа — 5.8%) и `rho` (дёргался у корня): m читается
из двух шагов, у корня S → 0.
## Проверка (метод не меняется)
На трассах предложенного метода и чтения (3), в каждом состоянии с известным предыдущим шагом: точка
приземления шага A, **одно** дополнительное вычисление f в ней, обновление скобки, половинения
скобки. То же для нашего шага и для деления пополам — из того же состояния. Шаг A, вышедший за
скобку, считается недопустимым (реальный метод его спроецировал бы), доля таких случаев сообщается.
Группы — те же, что во всех проверках этой линии: APS, CHA fun1, CHA плоские fun3–6, CHA прочие.
## Критерии
| # | что | ПРОЙДЕНО, если |
|---|---|---|
| **A1** | плоские: средние половинения на вычисление, шаг A против нашего шага, парно по состояниям с S > 0 | A больше |
| **A2** | APS: то же | A не меньше (вреда нет) |
| **A3** | плоские: шаг A против деления пополам (1 половинение) | сообщается; ≥ 1 — значит, A обгоняет деление |
| **A4** | доля состояний с S > 0 на APS | сообщается (чем реже, тем инертнее) |
**Фальсификатор:** A1 ложна — экстраполяция не бьёт наш шаг там, где мы проигрываем; правило не
строится. A2 ложна — вредит там, где мы выигрываем; строить без отдельного решения нельзя.
**Ограничение, объявленное заранее:** проверка меряет один шаг из каждого состояния. Разрыв цикла
меняет дальнейшую траекторию, поэтому итог по вычислениям на весь прогон покажет только
реализация в методе — отдельная пред-регистрация, если A пройдёт.