Курсовая работа: Программа для решения дифференциальных уравнений первого порядка методом Рунге-Кутта
и начальное условие его решения:
у'(х0 ) = у0. .
Тогда решить уравнение — это значит найти такую функцию у — φ(х), которая, будучи подставленной, в исходное уравнение, обратит его в тождество и одновременно будет удовлетворено начальное условие. Задача отыскания функции у = φ (х) называется в математике задачей Коши. При решении дифференциального уравнения порядка nзадача Коши формулируется следующим образом.
Дано дифференциальное уравнение порядка n:
у( n ) = f(x, y, у'’ ,…,yn -1 )
Необходимо найти такую функцию у = φ (х), которая, будучи подставленной в исходное уравнение, обратит его в тождество и одновременно будут удовлетворены следующие п начальных условий:
у(х0 ) = у0
у'(х0 ) = у'0
. . .
уn -1 (х0 ) = уn -1 0
4.1 Метод Рунге-Кутта
Метод Рунге-Кутта обладает более высокой точностью, чем методы Эйлера за счет снижения методических ошибок. Идея метода состоит в следующем.
По методу Эйлера решение дифференциального уравнения первого порядка определяется из соотношения:
yi +1 = yi + Δyi ;
где Δyi = hf (хi , yi ) = hу' (хi , yi ).
Тогда приращение Δ yi , может быть найдено путем интегрирования:
Или окончательно
Вычислим теперь интеграл по методу прямоугольников:
yi+1 = yi + (xi+1 - xi )f(xi , yi ) = yi + hf(xi , yi ).
Из полученного выражения видно, что вычисление интеграла по методу прямоугольников приводит к формуле Эйлера.
Вычислим интеграл по формуле трапеций:
yi+1 = yi +0,5h(f(xi , yi )+ f(xi+1 , yi+1 ))
Из выражения видно, что оно совпадает с расчетной формулой усовершенствованного метода Эйлера-Коши. Для получения более точного решения дифференциального уравнения следует воспользоваться более точными методами вычисления интеграла. В методе Рунге-Кутта искомый интеграл представляется в виде следующей конечной суммы:
где Pi— некоторые числа, зависящие от q; Ki (h) — функции, зависящие от вида подынтегральной функции f(x,y) и шага интегрирования h, вычисляемые по следующим формулам:
K1 (h) = hf(x, y);
K2 (h) = hf(x + a2 h, y + β21 K1 (h));