💡 Инструкция: Выберите один ответ из пяти. На работу отведено 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
После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 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
Проверить на отдельном примере, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 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-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Вопрос 4 из 25
Две реализации участка с `prob = ODEProblem(decay!, [1.0], (0.0, 5.0), (; k=0.4))` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\dot u=f(u,p,t)
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что после задания правой части выбор 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 влияет только на скорость, но не на устойчивость или точность численного решения.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Обратный вызов (`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`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Проверить на отдельном примере, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Проверить на отдельном примере, что callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Вопрос 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` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: После задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Сохранить в реализации правило: Callback условия фиксирует первое пересечение и не повторяется при последующих пересечениях или старте траектории на границе.
Вопрос 9 из 25
Какой результат приёмочного теста подтвердит корректность участка с `prob = ODEProblem(stiff!, [0.0], (0.0, 1.0))`?
u_{n+1}=\Phi_h(u_n)
Приёмка должна подтвердить, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Приёмка должна подтвердить, что после задания правой части выбор solver влияет только на скорость, но не на устойчивость или точность численного решения.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что 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]
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Вопрос 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`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Проверить на отдельном примере, что уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 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]
Сохранить в реализации правило: Уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Сохранить в реализации правило: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Вопрос 14 из 25
При переносе кода с `cb = ContinuousCallback(condition, affect!)` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
g(u,t)=0
Приёмка должна подтвердить, что уменьшение `abstol` и `reltol` устраняет ошибку физических параметров и делает модель точнее исходных данных.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 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)
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
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)
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Проверить на отдельном примере, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Вопрос 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`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: Фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий SciML-пакетов.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Вопрос 19 из 25
Две реализации участка с `loose = solve(prob, Tsit5(); abstol=1e-5, reltol=1e-5)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\mathrm{err}\le atol+rtol\,|u|
Приёмка должна подтвердить, что solver выбирают по жёсткости, требуемой точности, событиям и размеру системы; универсального самого быстрого алгоритма для всех задач нет.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Приёмка должна подтвердить, что фиксация массива значений решения обычно хватает воспроизводима без записи алгоритма и версий 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 ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
`abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 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)
Проверить на отдельном примере, что если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Проверить на отдельном примере, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Проверить на отдельном примере, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Проверить на отдельном примере, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Проверить на отдельном примере, что постановка 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 ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Сохранить в реализации правило: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Сохранить в реализации правило: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Сохранить в реализации правило: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Сохранить в реализации правило: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 24 из 25
Как проверить, что новая реализация `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))` не изменила обещанное пользователю поведение?
u(t;v_{alg},v_{pkg})
Приёмка должна подтвердить, что постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Приёмка должна подтвердить, что `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Приёмка должна подтвердить, что обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.
Приёмка должна подтвердить, что если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Приёмка должна подтвердить, что воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Вопрос 25 из 25
Какое ограничение стоит прямо указать в документации к участку с `prob = ODEProblem((du,u,p,t)->(du[1]=-u[1]), [1.0], (0.0, 1.0))`?
Указать в документации: Если Project.toml ограничивает совместимые версии, выбранный алгоритм решателя и его параметры по умолчанию можно не включать в регрессионный отчёт.
Указать в документации: `abstol` и `reltol` управляют локальной оценкой ошибки, но слишком жёсткий допуск не устраняет ошибку модели и может резко увеличить стоимость.
Указать в документации: Постановка ODE/SDE-задачи явно определяет функцию правой части, начальное состояние, параметры и интервал; ошибка единиц в этих данных не исправляется выбором решателя.
Указать в документации: Воспроизводимость решения требует фиксировать версии SciML-пакетов и алгоритм; изменение по умолчанию допустимо между версиями и должно проверяться регрессией.
Указать в документации: Обратный вызов (`Callback`) обнаруживает событие и изменяет состояние в заданный момент; условие и действие должны быть устойчивы к повторному срабатыванию и шагу интегратора.