Задачи установившегося состояния
|
Более полную документацию по нелинейным решателям для задач установившегося состояния см. в NonlinearSolve.jl. |
#
SciMLBase.SteadyStateProblem — Type
Определяет задачу установившегося состояния. Страница документации: 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.NonlinearSolution — Type
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: статистика по решателю, например количество необходимых вычислений функции.