Решение системы дифференциальных уравнений методом Адамса-Бэшфорда 3 порядка - Fortra
Добавлено: 09 ноя 2017, 10:34
Здравствуйте уважаемые форумчани.
Есть следующая задача: решить методом Адамса-Бэшфорда 3 порядка следующие уравнение
dv/dt = - (sx + v)/tau, где x=x(t), v=v(t) - координата и скорость движения частицы, t- время движения, s, tau - произвольные параметры.
Начальные условия x(0)=x0, v(0)=0.
Так как x = dv/dt, то получается уравнение x"+x/tau+s/tau*x=0.
Точное решение этого уравнения x = x0/sqrt(1-1/(4*s*tau))*exp(-(i-1)*dt/(2*tau))*sin(sqrt(s/tau-1/(4*tau**2)) * (i-1)*dt + atan(sqrt(4*s*tau-1))).
Вроде бы я точное решение нашёл верно.
Первые три значения по скорости я задаю с помощью метода Эйлера, а по координате с помощью точного решения( хотя можно с помощью метода Эйлера или Рунге-Кутта, но это не принципиально). Визуальна оба точное решение и численное решение полученное с помощью метода Адамса-Бэшфорда совпадают, но когдая хотел удостоверится и проверить, что действительно метод 3 порядка, то получилось, что при уменьшении шага ошибка между точным и численным решением меняется не пропорционально кубу шага по времени. Код я писал сам, скорее всего где в самом методе Адамса-Бэшфорда намудрил, хотя это и сложно, но возможно, и метод Эйлера в этом коде отлично работает.
Буду рад, если скажете где именно намудрил)))))
Есть следующая задача: решить методом Адамса-Бэшфорда 3 порядка следующие уравнение
dv/dt = - (sx + v)/tau, где x=x(t), v=v(t) - координата и скорость движения частицы, t- время движения, s, tau - произвольные параметры.
Начальные условия x(0)=x0, v(0)=0.
Так как x = dv/dt, то получается уравнение x"+x/tau+s/tau*x=0.
Точное решение этого уравнения x = x0/sqrt(1-1/(4*s*tau))*exp(-(i-1)*dt/(2*tau))*sin(sqrt(s/tau-1/(4*tau**2)) * (i-1)*dt + atan(sqrt(4*s*tau-1))).
Вроде бы я точное решение нашёл верно.
Первые три значения по скорости я задаю с помощью метода Эйлера, а по координате с помощью точного решения( хотя можно с помощью метода Эйлера или Рунге-Кутта, но это не принципиально). Визуальна оба точное решение и численное решение полученное с помощью метода Адамса-Бэшфорда совпадают, но когдая хотел удостоверится и проверить, что действительно метод 3 порядка, то получилось, что при уменьшении шага ошибка между точным и численным решением меняется не пропорционально кубу шага по времени. Код я писал сам, скорее всего где в самом методе Адамса-Бэшфорда намудрил, хотя это и сложно, но возможно, и метод Эйлера в этом коде отлично работает.
Буду рад, если скажете где именно намудрил)))))