Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные Методы (часть 3).doc
Скачиваний:
10
Добавлен:
14.11.2019
Размер:
378.88 Кб
Скачать

4.2. Метод Эйлера усовершенствованный.

Определим в произвольной точке t функции x(t) производную. Сделаем шаг методом Эйлера, определив x(tt)=x(t)+ . Вновь определим производную в полученной точке (tt). Рассчитав полусумму производных 0,5( + (tt)), сделаем полный шаг из точки t. Проделанные операции показаны на рис 4.5. L1 – производная в точке t,

L2 - производная в точке tt . Штрихпунктирная линия – полусумма производных.

Рис.4.5

4.3. Метод Эйлера модифицированный

Определим в произвольной точке t функции x(t) производную. Сделаем полшага методом Эйлера, определив x(tt/2)=x(t)+ . Вновь определим производную в полученной точке (tt/2). И делаем полный шаг из точки t вдоль этой производной (tt/2). Проделанные операции показаны на рис 4.6. L1 – производная в точке t,

L2 - производная в точке tt/2 . Штрихпунктирная линия параллельна производной в точке tt/2.

А лгоритм расчета по методу ЭМ запишется так:

- производная в исходной точке.

- производная в середине участка. Результирующий шаг на рассматриваемом участке:

.

Начальные условия заданы. Счет по методам ЭУ и ЭМ для звена первого порядка дает одинаковые результаты.

Рис. 4.6

4.4. Оценки порядка точности методов Эйлера (э), Эйлера модифицированного (эм) и Эйлера усовершенствованного (эу).

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

Решаем уравнение методом Эйлера . Индексы i и i+1 означают, соответственно. моменты времени t и t+Δt. Разложим x(t+Δt) в ряд Тейлора в точке t :

(4.6)

Сравнивая алгоритм Эйлера и алгоритм ряда Тейлора, видим совпадение 2х слагаемых, следовательно, порядок точности метода Эйлера 0(Δt).В данном случае первое отброшенное слагаемое равно .

Запишем обобщенную формулу алгоритмов метода Рунге-Кутта в виде , где (4.7)

записана как полусумма производных в точках t и tt , т.е. в соответствии с методом ЭМ. При этом значение x(tt ) получено методом Эйлера:

. Шаг сетки по времени равномерный: .

Используя обобщенный алгоритм запишем функцию в соответствии с методом ЭУ: . (4.8)

Производная взята в средней точке интервала tt, а значение x в этой точке получено методом Эйлера:

.

Представим слагаемые ряда (4.6) в следующем виде:

, (4.9)

где введены следующие обозначения: (xi,ti)=f, .

Чтобы оценить значения  для методов ЭМ и ЭУ разложим f(x,t) в ряд Тейлора:

. (4.10)

Используя вместо x и t значения xi+1 и ti+1 = tit , определим значение . И, подставив ее в (4.7), получим функцию для метода ЭУ: .

Подставим ее в (4. ) и получим . Сравним полученное выражение с разложением в ряд Тейлора (4.9). Совпадают три слагаемых ряда Тейлора.

Аналогичным образом получим функцию для метода ЭМ. , Подставив ее в обобщенный алгоритм, увидим, что имеется совпадение с тремя слагаемыми ряда Тейлора, поэтому точность методов ЭМ и ЭУ имеет порядок 0(Δt2).

Приведем программы методов ЭМ и ЭУ на MATLAB:

function EylerY

x=0; t=0;

display(x)

display(t)

dt=1;

for m=1:6

dx=FunkEMY(x);

x1=x+dx*dt;

dx1=FunkEMY(x1);

x=x+0.5*(dx+dx1)*dt

t=t+dt

end

function dx=FunkEMY(x)

k=1; u=1; Tau=1;

dx=0;

dx=(k*u-x)/Tau;

function EylerM

x=0; t=0;

display(x)

display(t)

dt=1;

for m=1:6

dx=FunkEMY(x);

x1=x+0.5*dx*dt;

dx1=FunkEMY(x1);

x=x+dx1*dt

t=t+dt

end