Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
8
Добавлен:
17.08.2019
Размер:
1.04 Mб
Скачать

6.2. Метод Рунге-Кутта

Метод Рунге-Кутта является наиболее распространенным ме­тодом решения дифференциальных уравнений при постоянном заданном шаге. Его достоинством является высокая точ­ность.

Алгоритм реализации метода Рунге-Кутта для уравнений 1-го порядка (типа (7)) заключается в циклических вычислениях Y i+1 на каждом i+1 шаге по следующим формулам:

K1=h*F(Xi,Yi);

K2=h*F(Xi+h/2,Yi+K1/2);

K3=h*F(Xi+h/2,Yi+K2/2);

K4=h*F(X+h,Y+K3);

Y i+1 = Yi + (K1+2*K2+2*K3+K4) / 6 . (13)

Для дифференциальных уравнений 2-го порядка (типа (9)) метод реализуется с помощью следующих формул:

K1=h*F(Xi; Yi; Yi');

K2=h*F(Xi+h/2; Yi+h/2*(Yi'+K1/4); Yi'+K1/2);

K3=h*F(Xi+h/2; Yi+h/2*(Yi'+K1/4); Yi'+K2/2);

K4=h*F(Xi+h; Yi+h*Yi'+h/2*K3; Yi'+K3);

Y i+1 = Yi+h*[Yi'+(K1+K2+K3)/6];

Y'i+1 = Yi'+(K1+2*K2+2*K3+K4)/6. (14)

Перед началом вычислений надо задать шаг h и начальные усло­вия (3).

7. Решение задач интерполяции и экстраполяции.

Пусть на интервале [a,b] заданы n+1 опорных (узловых) точек a  xo< x1 < x2 <...< xn  b. Пусть, кроме того, заданы n+1 действительных чисел yi(i=0, 1,2,...,n) (например, как значения функции в узловых точках). Под задачей интерполяции понимают нахождение многочлена In(x) степени не больше n такой, что In(xi)=yi для 0  i  n.

Интерполяцию обычно применяют тогда, когда относительно f известны только дискретные значения функции y=f(x), и, чтобы вычислить другие ее значения между узловыми точками (интерполяция) или за отрезком узловых точек (экстраполяция), ее приближают многочленом In(x), причем f(xi)=In(xi) (i=0,1,2,...,n).

Всегда существует только один интерполяционный многочлен, который может быть представлен в различной форме.

Форма Лагранжа: In(x)= yiLi(x);

Li(x)= .

Нетрудно видеть, что Li(xi)=1, Li(xk)=0 при kj, и, следовательно, Ln(xi)=yi.

Форма Ньютона: In(x)= сiNi(x), N0=1,

Ni(x)=(x-x0)(x-x1)...(x-xi-1) (i=1,2,...,n),

Ci(i)=[x0x1x2...xi]=[xixi-1xi-2...x0],

где [xixi-1xi-2...x0]= ([xixi-1xi-2...x1]-[xi-1xi-2...x0]),

[xi]=yi (i=0,1,2,...,n).

Выражение [x0x1x2...xi] называется разделенной разностью. Для определения многочлена в форме Ньютона применяют разностную схему или схему спуска (см. литературу).

Пример. Нахождение интерполяционного многочлена.

Пусть после опыта получены следующие пары: x1=4, y1=1; x2=6, y2=1; x3=8, y3=1; x4=10, y4=1.

Многочлен Ньютона I3(x)=

=1+1(x-4)+ (x-4)(x-6)+ (x-4)(x-6)(x-8)= (2x3-27x2+142x-240).

Многочлен Лагранжа

I3(x)=1 8 +

+20 =- (x-6)(x-8)(x-10)+ (x-4)(x-8)(x-10)-

- (x-4)(x-6)(x-10)+ (x-4)(x-6)(x-8)= (2x3-27x2+142x-240).

Часто применяют равноотстоящие узловые точки (узловые точки, расположенные на равном расстоянии друг от друга):

x0=a; x1=a+h; x2=a+2h; x3=a+3h;...; xn =a+nh=b, т.е. h= .

В этом случае разделенные разности выражаются через простые разности:

[xkxk+1xi-2...xk+m]=myk,

где 0yk=yk, 1yk=yk+1-yk, myk=(m-1yk) (m=2,3,...,k).

Разностная схема упрощается. Формула Ньютона принимает вид In(x)=

=y0+y0(x-x0)+2y0(x-x0)(x-x1)+ny0(x-x0)(x-x1)...(x-xn-1).