Метод Эйлера с уточнением


Для повышения точности метода Эйлера применяют следующий прием. Сначала находят приближенное значение решения по методу Эйлера

,

а затем уточняют его по формуле

Этот метод называется методом Эйлера-Коши, и рекуррентные соотношения для его реализации могут быть записаны в виде:

(7.7)

Метод Эйлера-Коши имеет погрешность порядка O(h2). Геометрическая иллюстрация метода Эйлера-Коши дается на рис. 7.2. Очередное приближение метода Эйлера-Коши соответствует точке пересечения диагоналей параллелограмма, построенного на двух звеньях ломаной метода Эйлера.

Метод Эйлера-Коши является одним из частных случаев методов Рунге-Кутта, которые рассмотрены в следующем пункте.

Рис.7.2

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

Рассмотрим наиболее популярный метод решения задачи Коши — метод Рунге-Кутта. Этот метод позволяет строить формулы расчета приближенного решения практически любого порядка точности.

Выведем формулы метода Рунге-Кутта второго порядка точности. Для этого решение представим куском ряда Тейлора, отбрасывая члены с порядком выше второго. Тогда приближенное значение искомой функции в точке x1 можно записать в виде:

. (7.8)

Вторую производную можно выразить через производную функции f(x, y), однако в методе Рунге-Кутта вместо производной используют разность

,

соответственно подбирая значения параметров . Тогда (7.8) можно переписать в виде

, (7.9)

где α, β, γ и δ — некоторые параметры. Рассматривая правую часть (7.9) как функцию аргумента h, разложим её по степеням h:

,

и выберем параметры α, β, γ и δ так, чтобы это разложение было близко к (7.8). Отсюда следует, что

α + β = 1, αγ = 0,5, αδ = 0,5 f(x0, y0).

С помощью этих трех уравнений выразим β, γ и δ через параметр α, тогда получим

(7.10)

Теперь, если вместо (x0, y0) в (7.10) подставить (x1, y1), то получим формулу для вычисления y2 — приближенного значения искомой функции в точке x2.

В общем случае метод Рунге-Кутта применяется на произвольном разбиении отрезка [x0, X] на n частей, т.е. с переменным шагом

(7.11)

Параметр α выбирают равным 1 или 0,5. Запишем окончательно расчетные формулы метода Рунге-Кутта второго порядка с переменным шагом для α = 1:

(7.12)

и α = 0,5:

(7.13)

Дадим геометрическую интерпретацию методов Рунге-Кутта (7.12), (7.13).

На рисунке 7.3 а) иллюстрируется формула (7.12). Сначала по методу Эйлера вычисляется приближенное значение в точке xi + hi/2. В этой точке определяется касательная к интегральной кривой, параллельно которой через точку (xi, yi) проводится прямая до точки пересечения с прямой x = xi + 1. Ордината точки пересечения yi + 1 принимается за приближенное значение искомого решения в точке xi + 1.

Рисунок 7.3 б) интерпретирует формулу (7.13). Методом Эйлера вычисляется приближенное значение в точке xi+1. В этой точке тангенс угла наклона касательной к интегральной кривой равен выражению . Через точку (xi, yi) проводится прямая, тангенс угла наклона которой определяется как полусумма угловых коэффициентов касательных, проведенных через точки (xi, yi) и . За приближенное значение искомого решения в точке xi+1 принимается ордината точки пересечения этой прямой с прямой x = xi+1.

Отметим, что метод (7.13) совпадает с методом Эйлера-Коши (7.7).

Рис.7.3.

Теорема 7.1. Если правая часть f(x, y) уравнения (7.1) непрерывна и ограничена вместе со своими производными до второго порядка включительно, то решение, полученное по формулам (7.12), (7.13), равномерно сходится к решению задачи (7.1), (7.2) с погрешностью .

Приведем наиболее употребительные формулы метода Рунге-Кутта, формулы четвертого порядка точности:

(7.14)

Пример 7.2. Решить методом Рунге-Кутта (7.12) задачу Коши из примера 7.1:

Решение в программе Excel. В таблице 7.4 приведены результаты применения метода Рунге-Кутта второго порядка (7.12) с шагом h = 0,1.

Сравнивая таблицы 7.2 и 7.4 можно увидеть, что метод Рунге-Кутта второго порядка (7.12) с шагом h = 0,1 дает лучшие результаты, чем метод Эйлера с шагом 0,01.

Таблица 7.4

  A B C D E F
xi f(xi,yi) f(xi+0,5h, yi+0,5 f(xi,yi)) yi y(x) Ошибки
0,5 0,476488
1,1 0,455577 0,436939 0,047649 0,047691 4,24E-05
1,2 0,420143 0,405049 0,091343 0,091414 7,14E-05
1,3 0,391301 0,378861 0,131848 0,13194 9,22E-05
1,4 0,367432 0,357029 0,169734 0,169842 0,000108
1,5 0,347401 0,338594 0,205437 0,205556 0,00012
1,6 0,330395 0,322861 0,239296 0,239426 0,00013
1,7 0,315811 0,309309 0,271582 0,27172 0,000138
1,8 0,303198 0,297545 0,302513 0,302658 0,000145
1,9 0,292211 0,287263 0,332268 0,332418 0,000151
    0,360994 0,36115 0,000156

Создадим функцию для вычисления решения задачи Коши (7.1), (7.2) методом Рунге-Кутта четвертого порядка (7.14):

Function Runge_Kutta4(ByVal x0, ByVal y0, ByVal x, ByVal n)

h = (x - x0) / n

For i = 1 To n

k1 = fxy(x0, y0)

k2 = fxy(x0 + h / 2, y0 + h * k1 / 2)

k3 = fxy(x0 + h / 2, y0 + h * k2 / 2)

k4 = fxy(x0 + h, y0 + h * k3)

y1 = y0 + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6

x0 = x0 + h: y0 = y1

Next i

Runge_Kutta4 = y0

End Function

В таблице 7.5 приведены результаты решения задачи Коши методом Рунге-Кутта четвертого порядка (7.14) с параметром n = 10, т.е. на каждом этапе вычисления yi применялся шаг h = 0,01. Поэтому абсолютные ошибки очень малы.

Таблица 7.5

xi yi y(x) Ошибки
0,000000000000000 0,000000000000000 0,000000000000000
1,1 0,047691197731806 0,047691197726655 0,000000000005151
1,2 0,091414144750546 0,091414144742135 0,000000000008412
1,3 0,131939841952911 0,131939841942306 0,000000000010605
1,4 0,169841513601824 0,169841513589657 0,000000000012167
1,5 0,205556457698103 0,205556457684762 0,000000000013341
1,6 0,239425622368332 0,239425622354065 0,000000000014267
1,7 0,271719843610883 0,271719843595851 0,000000000015032
1,8 0,302657774396418 0,302657774380728 0,000000000015690
1,9 0,332418460630980 0,332418460614704 0,000000000016276
0,361150365759415 0,361150365742600 0,000000000016814

Создадим в программе Mathcad функции для решения задачи Коши методом Рунге-Кутта и вычислим решение в точке x = 2 с шагом h = 0,01 (n = 100):

 

Сравните этот результат со значением, полученным в Excel.



Дата добавления: 2021-09-07; просмотров: 321;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.