Методы Рунге – Кутты 4 порядка для решения дифференциального уравнения первого порядка

Обычно метод Рунге – Кутта 4 порядка просто называют методом Рунге – Кутта в связи с высокой популярностью метода.

Данный метод принадлежит к классу итеративных алгоритмов для решения ОДУ ( обыкновенных дифференциальных уравнений ) .

Таким образом, он решает задачу Коши, которая выглядит следующим образом :

y’ = f(x,y); y(x0) = y0 ;

Все необходимые вычисления производятся в форме

yk+1 = yk +(k1 +2k2 +2k3 +k4 )/6,

где

k1 = Fk h = F(xk , yk )h
k2 = F(xk +h/2, yk +k1 /2)h
k3 = F(xk +h/2, yk +k2 /2)h
k4 = F(xk +h, yk +k3 )h,
k = 0, …, n-1
h = (xf -x0 )/n

Программа на C++

<span style="color: #0000ff;">double solveoderungekutta(double x, double x1, double y, int n)
{
    double result;
    int i;
    double h;
    double y1;
    double k1;
    double k2;
    double k3;

    h = (x1-x)/n;
    y1 = y;
    i = 1;
    do
    {
        k1 = h*f(x, y);
        x = x+h/2;
        y = y1+k1/2;
        k2 = f(x, y)*h;
        y = y1+k2/2;
        k3 = f(x, y)*h;
        x = x+h/2;
        y = y1+k3;
        y = y1+(k1+2*k2+2*k3+f(x, y)*h)/6;
        y1 = y;
        i = i+1;
    }
    while(i&lt;=n);
    result = y;
    return result;
}</span>

Оставить комментарий

Вы должны быть зарегистрированы чтобы комментировать.