Разделение tspan и начального времени, t0, в Julia

#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,

выпуск №705

Решатель не имеет возможности разумно различать, находить и обходить расхождения в графике. Таким образом, на данный момент этот анализ должен быть проведен без помощи компьютеров.

Ответ №1:

Это вопрос не программирования, а скорее математический. Кажется, вы спрашиваете, как решить краевую задачу. ODE, где вместо начального условия у вас есть какое-то другое условие. Решение этой проблемы заключается в использовании метода съемки и превращении вашего BVE в ODE.

В качестве примера со связанной страницы вы ищете начальное условие y'(0)=a таким образом, чтобы решение проходило через известное условие y'(5)=30 .

рис . 1

Комментарии:

1. Я ценю ответ. Но нет; вопрос довольно ясен в его предназначении. Я вызываю решателя. Я хочу отсоединить значение tspan, которое оно решает, и начальные условия. Любое решение ODE должно включать определенное граничное условие. Это не моя точка зрения: найти, какое условие я выберу.

Ответ №2:

Вам нужно вызвать решатель дважды, один раз для временного интервала от 0 до 1 и один раз для временного интервала от 0 до -1. Любой компетентный решатель правильно преобразует отрицательное направление временного интервала в соответственно отрицательные размеры шага.

Затем объедините два частных решения либо с помощью операций с массивами, либо путем их рисования с одинаковыми параметрами на одном графике.

Комментарии:

1. Спасибо. Я также говорил с моим профессором, и я забыл, что могу использовать преобразование t -> t-t0 для построения разных интервалов с одинаковыми начальными условиями.