DOP853#
- класс scipy.integrate.DOP853(fun, t0, y0, t_bound, max_step=inf, rtol=0.001, atol=1e-06, векторизованный=False, first_step=None, **лишний)[источник]#
Явный метод Рунге-Кутты 8-го порядка.
Это реализация алгоритма "DOP853" на Python, изначально написанного на Fortran [1], [2]. Обратите внимание, что это не буквальный перевод, но алгоритмическое ядро и коэффициенты одинаковы.
Может применяться в комплексной области.
- Параметры:
- funcallable
Правая часть системы. Сигнатура вызова:
fun(t, y). Здесь,tявляется скаляром, и есть два варианта для ndarrayy: Он может иметь форму (n,); тогдаfunдолжен возвращать array_like с формой (n,). Альтернативно может иметь форму (n, k); тогдаfunдолжен возвращать массивоподобный объект с формой (n, k), т.е. каждый столбец соответствует одному столбцу вy. Выбор между двумя вариантами определяется векторизованный аргумент (см. ниже).- t0float
Начальное время.
- y0array_like, форма (n,)
Начальное состояние.
- t_boundfloat
Граничное время - интегрирование не продолжится за его пределы. Оно также определяет направление интегрирования.
- first_stepfloat или None, опционально
Начальный размер шага. По умолчанию
Noneчто означает, что алгоритм должен выбрать.- max_stepfloat, опционально
Максимально допустимый размер шага. По умолчанию np.inf, т.е. размер шага не ограничен и определяется исключительно решателем.
- rtol, atolfloat и array_like, опционально
Относительные и абсолютные допуски. Решатель поддерживает оценки локальной ошибки меньше, чем
atol + rtol * abs(y). Здесь rtol управляет относительной точностью (количеством верных цифр), в то время как atol управляет абсолютной точностью (количество верных десятичных знаков). Для достижения желаемой rtol, установите atol быть меньше наименьшего значения, которое можно ожидать отrtol * abs(y)так что rtol доминирует над допустимой ошибкой. Если atol больше, чемrtol * abs(y)количество верных цифр не гарантируется. И наоборот, для достижения желаемого atol set rtol такой, чтоrtol * abs(y)всегда меньше чем atol. Если компоненты y имеют разные масштабы, может быть полезно установить разные atol значения для различных компонентов, передавая array_like с формой (n,) для atol. Значения по умолчанию: 1e-3 для rtol и 1e-6 для atol.- векторизованныйbool, необязательно
Определяет ли fun реализовано векторизованным способом. По умолчанию False.
- Атрибуты:
- nint
Количество уравнений.
- statusstring
Текущий статус решателя: ‘running’, ‘finished’ или ‘failed’.
- t_boundfloat
Граничное время.
- направлениеfloat
Направление интегрирования: +1 или -1.
- tfloat
Текущее время.
- yndarray
Текущее состояние.
- t_oldfloat
Предыдущее время. None, если шаги ещё не были сделаны.
- шаг_размераfloat
Размер последнего успешного шага. None, если шаги ещё не выполнялись.
- nfevint
Количество вычислений правой части системы.
- njevint
Количество вычислений якобиана. Всегда равно 0 для этого решателя, так как он не использует якобиан.
- nluint
Количество LU-разложений. Всегда равно 0 для этого решателя.
Методы
Вычислить локальный интерполянт на последнем успешном шаге.
step()Выполнить один шаг интегрирования.
Ссылки
[1]E. Hairer, S. P. Norsett G. Wanner, «Решение обыкновенных дифференциальных уравнений I: Нежесткие задачи», разд. II.