38 lines
3.2 KiB
Markdown
38 lines
3.2 KiB
Markdown
# PREREG — третий независимый корпус: набор GSL и прикладные уравнения
|
||
|
||
Составлено до прогона, ветка `signfix-and-gates`. Валерий: «давай ещё найдём корпус для теста, для
|
||
статьи это будет только плюс».
|
||
|
||
## Корпус (`corpus_applied.py`, закоммичен до прогона)
|
||
|
||
- **G** — тестовый набор модуля поиска корней GNU Scientific Library (`roots/test.c`,
|
||
`test_funcs.c`, зеркало github.com/ampl/gsl): все 10 задач со скобкой, как в оригинале.
|
||
- **P** — 122 уравнения из физики и инженерии на стандартных сетках параметров, заданных до прогона:
|
||
уравнение Кеплера (35: e ∈ {0.1, 0.5, 0.9, 0.99, 0.999} × 7 значений M), Колбрука–Уайта (36: Re ×
|
||
шероховатость), W-функция Ламберта (7), закон смещения Вина/Планка (7), Ван-дер-Ваальс для CO₂
|
||
(20: T × P, включая околокритическую T = 304 K), внутренняя норма доходности (12), конечная
|
||
квантовая яма (5). Все 132 имеют разные знаки на концах.
|
||
- Успех — смена знака в пределах 10⁻⁶ от ответа (как в PREREG_roots_jl). XTOL 10⁻¹², MAXFEV 200,
|
||
неудача = 200; гарантия ≤ 2⌈log₂(w/xtol)⌉ + 4.
|
||
|
||
Сетки выбраны мной — корпус не так независим, как опубликованный, поэтому **часть G (опубликованная)
|
||
сообщается отдельно**, а по части P — разбивка по уравнениям.
|
||
|
||
## Варианты и критерии — те же
|
||
|
||
**A** = Г2 + `contra+flatanalogmempt+exp+half`; **B** = `defect+flatanalogmempt+exp`; справочно — предложенный
|
||
метод без добавок; соперники — библиотечные Чандрупатла, Брент, TOMS748.
|
||
|
||
| # | ПРОЙДЕНО, если (все 132) |
|
||
|---|---|
|
||
| **T1** | сумма вызовов V меньше, чем у Чандрупатлы |
|
||
| **T2** | по задачам против Чандрупатлы побед больше, чем поражений, знаковый тест p < 0.05 |
|
||
| **T3** | гарантия: 0 нарушений; решено не меньше, чем у Чандрупатлы |
|
||
|
||
«Переносится» — T1, T2, T3 одновременно; сообщается также, выполнен ли T1 отдельно (выигрыш по сумме).
|
||
Метод, корпус и критерии не меняются.
|
||
|
||
**Ожидание, записано заранее:** почти-кратные случаи — Кеплер с e → 1 при малом M (около нуля
|
||
E − e sin E ≈ (1 − e)E + E³/6) и околокритический Ван-дер-Ваальс; остальное — гладкие простые корни,
|
||
где по двум прошлым корпусам ожидается паритет.
|