RustedSciThe 0.4.20

Rust framework for symbolic and numerical computing:BVP ( Newton-Raphson frozen/damped/with collocations ), IVP( BDF, Radau, Backward Euler, LSODE, LSODA, RK45, DoPri), nonlinear equations ( Levenberg, Gavin) and more
# Руководство пользователя BDF

Самостоятельный BDF-солвер является плотным неявным решателем,
ориентированным на поведение SciPy, для небольших и средних полностью
связанных систем. Это намеренно не второй структурированный солвер. Для
разреженного или ленточного хранения используйте LSODE2 и явно выбирайте его
маршрут `Sparse` или `Banded`.

## Выбор бэкенда

Публичные настройки BDF поддерживают три основных режима:

- native callbacks, если правая часть и якобиан уже написаны на Rust;
- символьные callback-функции `Lambdify` для подготовленной задачи;
- AOT callback-функции для размещаемого скомпилированного артефакта.

Для символьной сборки доступны `IvpSymbolicAssemblyBackend::ExprLegacy` и
`IvpSymbolicAssemblyBackend::AtomView`. Оба маршрута имеют одинаковый численный
контракт. Их стоимость подготовки и callback-стоимость зависят от workload,
поэтому выбор следует делать по измерениям, а не по универсальному рейтингу.

## Плотный native-решатель

Минимальный пример находится в `examples/rus/bdf_native_dense_guide.rs`:

```text
cargo run --no-default-features --example rus_bdf_native_dense_guide
```

Он устанавливает native residual и постоянный аналитический плотный якобиан,
включает счетчики телеметрии, использует типизированный `try_solve` и
сравнивает результат с точным решением.

## Символьное продолжение по параметру

`examples/rus/bdf_symbolic_continuation_guide.rs` показывает AtomView вместе с
Lambdify. Подготовленные residual и Jacobian переиспользуются, меняются только
значение параметра и численная история BDF:

```text
cargo run --no-default-features --example rus_bdf_symbolic_continuation_guide
```

Продолжение безопасно, пока символьная структура не меняется. Изменение формы
уравнений, размерности состояния, layout якобиана или политики бэкенда требует
новой подготовленной сборки.

## AOT и toolchain

`examples/rus/bdf_aot_guide.rs` использует AtomView и генерируемые
C/tcc callback-функции:

```text
cargo run --no-default-features --example rus_bdf_aot_guide
```

Если `tcc` отсутствует в `PATH`, пример завершается штатно с поясняющим
сообщением. Подготовка AOT включает materialize, build, link и publication;
при warm continuation опубликованный артефакт должен переиспользоваться без
повторной компиляции.

## Телеметрия и ошибки

Телеметрия по умолчанию выключена. `BdfTelemetryMode::Counters` дает
низкозатратные счетчики работы, а `BdfTelemetryMode::Timings` добавляет
диагностические таймеры стадий. Вложенные timing scopes являются inclusive и
их нельзя складывать.

В прикладном коде предпочтителен типизированный API `try_*`, включая
`try_solve`, continuation и методы конфигурации. Он сообщает типизированными
ошибками о неверной размерности, отсутствующих callback-функциях,
неподдерживаемых комбинациях бэкендов и сбоях подготовки.

## Граница области применения

Самостоятельный BDF хранит плотные якобианы и использует плотную линейную
алгебру. Указание плотного `jac_sparsity` не превращает его в разреженный
решатель. Для больших diffusion- или banded-задач используйте LSODE2: там есть
структурированные matrix backends, телеметрия и соответствующие story-тесты.