tf.contrib.integrate.odeint
Интегрировать систему обыкновенных дифференциальных уравнений.
tf.contrib.integrate.odeint(
func, y0, t, rtol=1e-06, atol=1e-12, method=None, options=None,
full_output=False, name=None
)
Решает задачу Коши для нежесткой системы обыкновенных дифференциальных уравнений первого порядка:
dy/dt = func(y, t), y(t[0]) = y0
где y — тензор любой формы.
Например:
# solve `dy/dt = -y`, corresponding to exponential decay tf.contrib.integrate.odeint(lambda y, _: -y, 1.0, [0, 1, 2]) => [1, exp(-1), exp(-2)]
Типы вывода и числовая точность основаны на типах входных данных y0 и t.
В настоящее время реализуется пятый порядок Рунге-Кутты с адаптивным управлением шагом и плотным выходом, используя метод Дорманда-Принса. Аналогично методу «dopri5» из scipy.integrate.ode и MATLAB's ode45.
Основано на: Шампин, Лоуренс Ф. (1986), «Некоторые практические формулы Рунге–Кутты», Математика вычислений, Американское математическое общество, 46 (173): 135-150, doi:10.2307/2008219
| Аргументы | |
|---|---|
func | Функция, отображающая тензор, содержащий состояние y и скалярный тензор t в тензор производных состояния по времени. |
y0 | N-мерный тензор, задающий начальное значение y в момент времени t[0]. Может иметь любой тип с плавающей точкой или комплексным типом. |
t | 1-мерный тензор, содержащий последовательность точек времени, для которых требуется решить для y. Начальная точка времени должна быть первым элементом этой последовательности, а каждое время должно быть больше предыдущего. Может иметь любой тип с плавающей точкой. Если не предоставлено как тензор, преобразуется в тензор с типом float64. |
rtol | необязательный тензор float64, задающий верхнюю границу относительной погрешности, на каждый элемент y. |
atol | необязательный тензор float64, задающий верхнюю границу абсолютной погрешности, на каждый элемент y. |
method | необязательная строка, указывающая метод интегрирования. В настоящее время единственный допустимый вариант — 'dopri5'. |
options | необязательный словарь, настраивающий параметры указанного метода интегрирования. Может быть предоставлен только при явном указании method. Для 'dopri5', допустимые параметры включают:
|
full_output | необязательный булевый параметр. Если True, odeint возвращает кортеж (y, info_dict), описывающий процесс интегрирования. |
name | Необязательное имя для этой операции. |
| Возвращаемые значения | |
|---|---|
y | (N+1)-мерный тензор, где первое измерение соответствует различным точкам времени. Содержит решённое значение y для каждой желаемой точки времени в t, причём начальное значение y0 является первым элементом по первому измерению. |
info_dict | только если full_output == True. Словарь со следующими значениями:
|
| Исключения | |
|---|---|
ValueError | если предоставлен недопустимый method |
TypeError | если options предоставлен без method, или если t или y0 имеет недопустимый тип. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/integrate/odeint