У меня есть система (первого порядка) ODE с довольно дорогими для вычисления производных.
Однако, производные могут быть вычислены значительно дешевле в пределах заданных границ ошибки, либо потому, что производные вычисляются из сходящегося ряда и границы могут быть наложены на максимальный вклад от пропущенных терминов, либо путем использования предварительно вычисленной информации о диапазоне, хранящейся в таблицы поиска kd-tree / octree.
К сожалению, я не смог найти каких-либо общих решателей ODE, которые могли бы извлечь из этого пользу; кажется, все они просто дают вам координаты и хотят получить точный результат. (Имейте в виду, я не эксперт по ODE; я знаком с Рунге-Куттой, материалом из книги «Числовые рецепты», LSODE и решателя научной библиотеки Gnu).
то есть для всех решателей, которые я видел, вы предоставляете функцию обратного вызова derivs
, принимающую t
и массив x
и возвращающую массив dx/dt
назад; но в идеале я ищу тот, который дает обратный вызов t
, x
s, и массив допустимых ошибок и получает обратно массивы dx/dt_min
и dx/dt_max
с производным диапазоном гарантированно в пределах требуемой точности. (Возможно, существует множество не менее полезных вариантов).
Буду очень признателен за любые указатели на решатели, разработанные с учетом этого, или за альтернативные подходы к проблеме (я не могу поверить, что я первый человек, который хочет что-то подобное).