Spec-Zone.ru › TensorFlow 1.15

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', допустимые параметры включают:
  • first_step: начальное предположение для размера первого шага интегрирования (текущий стандарт: 1.0, но позже может быть изменено для использования эвристики, основанной на градиенте).
  • safety: коэффициент безопасности для адаптивного управления шагом, обычно постоянная в диапазоне 0,8-1 (по умолчанию: 0,9).
  • ifactor: максимальный коэффициент увеличения адаптивного шага (по умолчанию: 10,0).
  • dfactor: максимальный коэффициент уменьшения адаптивного шага (по умолчанию: 0,2).
  • max_num_steps: целое максимальное количество шагов интегрирования между точками времени в t (по умолчанию: 1000).
full_output необязательный булевый параметр. Если True, odeint возвращает кортеж (y, info_dict), описывающий процесс интегрирования.
name Необязательное имя для этой операции.
Возвращаемые значения
y (N+1)-мерный тензор, где первое измерение соответствует различным точкам времени. Содержит решённое значение y для каждой желаемой точки времени в t, причём начальное значение y0 является первым элементом по первому измерению.
info_dict только если full_output == True. Словарь со следующими значениями:
  • num_func_evals: целые тензор, подсчитывающий количество вычислений функции.
  • integrate_points: 1-мерный тензор float64 с верхней границей каждого шага интегрирования.
  • error_ratio: 1-мерный тензор float с оценённым отношением погрешности интегрирования к допустимой погрешности на каждом шаге интегрирования. Значение больше 1 соответствует отклонённым шагам.
Исключения
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API