#julia #differential-equations
#Джулия #дифференциальные уравнения
Вопрос:
Я столкнулся с проблемой, которая заключается в следующем: я хочу представить решение, в котором (t0,η)
дано. Допустим, (t0,η) = (0,1)
. Но я хотел бы видеть график, представленный во всей (-1,1)
области.
Как tspan
это неразрывно связано с моим t0
, как я могу заставить решатель решить мою проблему для данного t0
, отличая начальное значение в интервале в tspan
?
Итак, в приведенном примере я хотел бы соблюдать ODE (-0.88, 0.88)
, но решить проблему с условием (t0, y0) = (0,1)
.
Пример 8(c)
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,
Решатель не имеет возможности разумно различать, находить и обходить расхождения в графике. Таким образом, на данный момент этот анализ должен быть проведен без помощи компьютеров.
Ответ №1:
Это вопрос не программирования, а скорее математический. Кажется, вы спрашиваете, как решить краевую задачу. ODE, где вместо начального условия у вас есть какое-то другое условие. Решение этой проблемы заключается в использовании метода съемки и превращении вашего BVE в ODE.
В качестве примера со связанной страницы вы ищете начальное условие y'(0)=a
таким образом, чтобы решение проходило через известное условие y'(5)=30
.
Комментарии:
1. Я ценю ответ. Но нет; вопрос довольно ясен в его предназначении. Я вызываю решателя. Я хочу отсоединить значение tspan, которое оно решает, и начальные условия. Любое решение ODE должно включать определенное граничное условие. Это не моя точка зрения: найти, какое условие я выберу.
Ответ №2:
Вам нужно вызвать решатель дважды, один раз для временного интервала от 0 до 1 и один раз для временного интервала от 0 до -1. Любой компетентный решатель правильно преобразует отрицательное направление временного интервала в соответственно отрицательные размеры шага.
Затем объедините два частных решения либо с помощью операций с массивами, либо путем их рисования с одинаковыми параметрами на одном графике.
Комментарии:
1. Спасибо. Я также говорил с моим профессором, и я забыл, что могу использовать преобразование t -> t-t0 для построения разных интервалов с одинаковыми начальными условиями.