💡 Инструкция: Выберите один ответ из пяти. На работу отведено 70 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 25
Что именно следует из фрагмента с `prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))`?
\dot u=f(u,p,t)
Julia Julia · Постановка задачи Копировать
using DifferentialEquations
function decay!(du, u, p, t)
k = p.k
du[1] = -k * u[1]
end
prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))
@show prob.u0 prob.tspan
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Вопрос 2 из 25
Какой эксперимент отличит настоящий механизм `prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))` от случайного результата одного запуска?
Julia Julia · Постановка задачи Копировать
using DifferentialEquations
function decay!(du, u, p, t)
k = p.k
du[1] = -k * u[1]
end
prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))
@show prob.u0 prob.tspan
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Вопрос 3 из 25
Какое решение устраняет риск вокруг `prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))`, не меняя поведение на допустимых данных?
Julia Julia · Постановка задачи Копировать
using DifferentialEquations
function decay!(du, u, p, t)
k = p.k
du[1] = -k * u[1]
end
prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))
@show prob.u0 prob.tspan
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 4 из 25
Две реализации участка с `prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\dot u=f(u,p,t)
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Вопрос 6 из 25
Как нужно интерпретировать `prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))`, не добавляя к коду лишних гарантий?
u_{n+1}=\Phi_h(u_n)
Julia Julia · Выбор численного решателя Копировать
using DifferentialEquations
function stiff!(du, u, p, t)
du[1] = -1000u[1] + 3000 - 2000exp(-t)
end
prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))
sol = solve(prob, Rodas5())
@show sol.retcode sol.u[end]
Solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Вопрос 7 из 25
Какой тест точнее всего зафиксирует границу поведения `prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))`?
Julia Julia · Выбор численного решателя Копировать
using DifferentialEquations
function stiff!(du, u, p, t)
du[1] = -1000u[1] + 3000 - 2000exp(-t)
end
prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))
sol = solve(prob, Rodas5())
@show sol.retcode sol.u[end]
Проверить на отдельном примере, что callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Проверить на отдельном примере, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 8 из 25
Какое решение устраняет риск вокруг `prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))`, не меняя поведение на допустимых данных?
Julia Julia · Выбор численного решателя Копировать
using DifferentialEquations
function stiff!(du, u, p, t)
du[1] = -1000u[1] + 3000 - 2000exp(-t)
end
prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))
sol = solve(prob, Rodas5())
@show sol.retcode sol.u[end]
Сохранить в реализации правило: Solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Сохранить в реализации правило: Callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Вопрос 9 из 25
Какой результат приёмочного теста подтвердит корректность участка с `prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))`?
u_{n+1}=\Phi_h(u_n)
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Приёмка должна подтвердить, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Приёмка должна подтвердить, что callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Вопрос 11 из 25
Какое объяснение для `cb = ContinuousCallback(condition, affect!)` выдержит проверку на другом допустимом входе?
g(u,t)=0
Julia Julia · События Копировать
using DifferentialEquations
condition(u, t, integrator) = u[1] - 0.2
affect!(integrator) = terminate!(integrator)
cb = ContinuousCallback(condition, affect!)
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 10.0))
sol = solve(prob, Tsit5(); callback=cb)
@show sol.t[end] sol.u[end]
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 12 из 25
Какую проверку стоит добавить для участка с `cb = ContinuousCallback(condition, affect!)`?
Julia Julia · События Копировать
using DifferentialEquations
condition(u, t, integrator) = u[1] - 0.2
affect!(integrator) = terminate!(integrator)
cb = ContinuousCallback(condition, affect!)
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 10.0))
sol = solve(prob, Tsit5(); callback=cb)
@show sol.t[end] sol.u[end]
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Проверить на отдельном примере, что уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 13 из 25
Что должно остаться истинным после рефакторинга участка с `cb = ContinuousCallback(condition, affect!)`?
Julia Julia · События Копировать
using DifferentialEquations
condition(u, t, integrator) = u[1] - 0.2
affect!(integrator) = terminate!(integrator)
cb = ContinuousCallback(condition, affect!)
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 10.0))
sol = solve(prob, Tsit5(); callback=cb)
@show sol.t[end] sol.u[end]
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Сохранить в реализации правило: Уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 14 из 25
При переносе кода с `cb = ContinuousCallback(condition, affect!)` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
g(u,t)=0
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 16 из 25
Что именно следует из фрагмента с `loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)`?
\mathrm{err}\le atol+rtol\,|u|
Julia Julia · Контроль ошибки Копировать
using DifferentialEquations
prob = ODEProblem((du,u,p,t)->(du[1]=-p*u[1]), [1.0], (0.0, 5.0), 0.4)
loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)
tight = solve(prob, Tsit5(); abstol=1e-10, reltol=1e-10)
@show length(loose.t) length(tight.t)
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Вопрос 17 из 25
Какой эксперимент отличит настоящий механизм `loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)` от случайного результата одного запуска?
Julia Julia · Контроль ошибки Копировать
using DifferentialEquations
prob = ODEProblem((du,u,p,t)->(du[1]=-p*u[1]), [1.0], (0.0, 5.0), 0.4)
loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)
tight = solve(prob, Tsit5(); abstol=1e-10, reltol=1e-10)
@show length(loose.t) length(tight.t)
Проверить на отдельном примере, что фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Проверить на отдельном примере, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 18 из 25
Какое решение устраняет риск вокруг `loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)`, не меняя поведение на допустимых данных?
Julia Julia · Контроль ошибки Копировать
using DifferentialEquations
prob = ODEProblem((du,u,p,t)->(du[1]=-p*u[1]), [1.0], (0.0, 5.0), 0.4)
loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)
tight = solve(prob, Tsit5(); abstol=1e-10, reltol=1e-10)
@show length(loose.t) length(tight.t)
Сохранить в реализации правило: Solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: Фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 19 из 25
Две реализации участка с `loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\mathrm{err}\le atol+rtol\,|u|
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Вопрос 21 из 25
Что именно следует из фрагмента с `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))`?
u(t;v_{alg},v_{pkg})
Julia Julia · Совместимость версий Копировать
using DifferentialEquations, Pkg
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))
sol = solve(prob, Tsit5(); saveat=0.1)
report = (; julia=VERSION, project=Base.active_project(), alg=string(sol.alg), values=Array(sol))
@show report.julia report.alg size(report.values)
Если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 22 из 25
Какой эксперимент отличит настоящий механизм `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))` от случайного результата одного запуска?
Julia Julia · Совместимость версий Копировать
using DifferentialEquations, Pkg
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))
sol = solve(prob, Tsit5(); saveat=0.1)
report = (; julia=VERSION, project=Base.active_project(), alg=string(sol.alg), values=Array(sol))
@show report.julia report.alg size(report.values)
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 23 из 25
Какой контракт следует закрепить при переработке строки `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))`?
Julia Julia · Совместимость версий Копировать
using DifferentialEquations, Pkg
prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))
sol = solve(prob, Tsit5(); saveat=0.1)
report = (; julia=VERSION, project=Base.active_project(), alg=string(sol.alg), values=Array(sol))
@show report.julia report.alg size(report.values)
Сохранить в реализации правило: Если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Сохранить в реализации правило: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 24 из 25
Как проверить, что новая реализация `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))` не изменила обещанное пользователю поведение?
u(t;v_{alg},v_{pkg})
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 25 из 25
Какое ограничение стоит прямо указать в документации к участку с `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))`?
Указать в документации: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Указать в документации: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Указать в документации: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Указать в документации: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Указать в документации: Если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.