Я столкнулся с проблемой, которая заключается в следующем: я хочу представить решение, в котором дано (t0,η)
. Скажем, (t0,η) = (0,1)
. Но я хотел бы видеть граф, представленный во всей области (-1,1)
.
Поскольку tspan
неразрывно связано с моим t0
, как я могу заставить решатель решить мою задачу для заданного t0
, различая начальное значение в интервале в tspan
?
Итак, в данном примере хотелось бы наблюдать ОДУ в (-0.88, 0.88)
, но решить задачу с условием (t0, y0) = (0,1)
.
using DifferentialEquations
using Plots
function example2!(dy, y, t, p)
c1 = p
dy[1] = c1 * y[1]^3
end
y0 = [1]
p = [1]
tspan = (0, 0.88)
prob2 = ODEProblem(example2!, y0, tspan, p)
sol2 = solve(prob2)
plot(sol2)
Обновлено:
Обсуждение, которое у меня было с создателем пакета по этому вопросу, на github,
выпуск №705
У решателя нет возможности разумно различать, находить и обходить расхождения на графике. Таким образом, этот анализ должен быть сделан без помощи компьютеров на данный момент.
Это не вопрос программирования, а скорее математический. Кажется, вы спрашиваете, как решить краевую задачу. ОДУ, где вместо начального условия у вас есть какое-то другое условие. Решением этого является использование метода стрельбы и превращение вашего BVE в ODE.
В качестве примера со связанной страницы вы ищете начальное условие в y'(0)=a
, чтобы решение проходило через известное условие y'(5)=30
.
Вам нужно вызвать решатель дважды, один раз для промежутка времени от 0 до 1 и один раз для промежутка времени от 0 до -1. Любой компетентный решатель правильно переведет отрицательное направление временного интервала в соответствующие отрицательные размеры шага.
Затем объедините два частичных решения либо с помощью операций с массивами, либо нарисовав их с одинаковыми параметрами на одном графике.
Спасибо. Я также разговаривал со своим профессором и забыл, что могу использовать преобразование t -> t-t0 для построения разных интервалов с одинаковыми начальными условиями.
Я ценю ответ. Но нет; вопрос довольно ясен в его цели. Я звоню решателю. Я хочу отделить значение tspan, которое он решает, и начальные условия. Любое решение ОДУ должно включать определенное граничное условие. Это не моя цель: найти, какое условие я выберу.