Документация Engee

Задачи установившегося состояния

Более полную документацию по нелинейным решателям для задач установившегося состояния см. в NonlinearSolve.jl.

# SciMLBase.SteadyStateProblemType

Определяет задачу установившегося состояния. Страница документации: https://docs.sciml.ai/DiffEqDocs/stable/types/steadystatetypes/

Математическая спецификация задачи установившегося состояния

Для определения задачи установившегося состояния достаточно задать функцию , которая определяет ODE:

и начальное предположение , где f(u,p,t)=0. Функцию f следует указать как f(u,p,t) (или на месте как f(du,u,p,t)), а условие u₀ должно представлять собой массив AbstractArray (или число), геометрия которого соответствует требуемой геометрии u. Обратите внимание, что тип значения u₀ не ограничен числами или векторами; значением u₀ также могут быть произвольные матрицы или тензоры высокой разрядности.

Заметим, что для определения установившегося состояния необходимо, чтобы функция f была автономной, т. е. f не зависела от t. Но при этом должна использоваться форма, соответствующая стандартному решателю ODE. Решатели установившегося состояния интерпретируют f, фиксируя .

Тип задачи

Конструкторы

SteadyStateProblem(f::ODEFunction,u0,p=NullParameters();kwargs...)
SteadyStateProblem{isinplace,specialize}(f,u0,p=NullParameters();kwargs...)

isinplace дополнительно задает, является ли функция функцией на месте или нет. Это определяется автоматически, а не выводится. specialize дополнительно определяет уровень специализации. Дополнительные сведения см. в разделе об уровнях специализации в документации по SciMLBase. По умолчанию используется AutoSpecialize.

Параметры являются необязательными, и если они не заданы, будет использоваться одинарный элемент NullParameters(), который при попытке индексирования несуществующих параметров будет выдавать понятные ошибки. Все дополнительные именованные аргументы передаются в решатели. Например, если в задаче задать обратный вызов (callback), этот callback будет добавляться при каждом вызове функции solve.

Кроме того, доступен конструктор из задач ODEProblem:

SteadyStateProblem(prob::ODEProblem)

Параметры являются необязательными, и если они не заданы, будет использоваться одинарный элемент NullParameters(), который при попытке индексирования несуществующих параметров будет выдавать понятные ошибки. Все дополнительные именованные аргументы передаются в решатели. Например, если в задаче задать обратный вызов (callback), этот callback будет добавляться при каждом вызове функции solve.

Сведения о задании якобианов и матриц масс см. на странице о DiffEqFunctions.

Поля

  • f: функция в ODE.

  • u0: начальное предположение для установившегося состояния.

  • p: параметры для задачи. По умолчанию используется NullParameters.

  • kwargs: именованные аргументы, передаваемые в решатели.

Специальные поля решения

Тип SteadyStateSolution отличается от других решений DiffEq тем, что в нем отсутствует временная информация.

Тип решения

# SciMLBase.NonlinearSolutionType

struct NonlinearSolution{T, N, uType, R, P, A, O, uType2, S} <: SciMLBase.AbstractNonlinearSolution{T, N}

Представление решения нелинейного уравнения, определяемого задачей NonlinearProblem, или решения установившегося состояния для дифференцированного уравнения, определяемого задачей SteadyStateProblem.

Поля

  • u: представление решения нелинейного уравнения.

  • resid: невязка решения.

  • prob: исходная задача NonlinearProblem/SteadyStateProblem, которая была решена.

  • alg: тип алгоритма, используемого решателем.

  • original: если решатель заключен в оболочку из альтернативной экосистемы решателей, например NLsolve.jl, то это исходный возврат из данной библиотеки решателей.

  • retcode: код возврата от решателя. Используется для определения того, успешно ли решен решатель или завершился ли он из-за ошибки. Дополнительные сведения см. в документации по кодам возврата.

  • left: если решатель использует метод заключения в скобки, то это конечное значение левой скобки.

  • right: если решатель использует метод заключения в скобки, то это конечное значение правой скобки.

  • stats: статистика по решателю, например количество необходимых вычислений функции.