РАЗНОСТНАЯ СХЕМА ЭЙЛЕРА


Рассмотрим задачу Коши: ; y(a)=y0. Отрезок [a,b]делим N узлами на шаги (для простоты будем рассматривать равномерное деление)

h = xk+1 – xk = (b – a)/N.

Вместо искомой функции y будем рассматривать сеточную функцию yk, определенную в узлах сетки.

Метод Эйлера основан на разложении искомой функции y(x) в ряд Тейлора в окрестностях узлов, в котором отбрасываются все члены, содержащие производные второго и более высоких порядков:

y(xk + h) = y(xk) +y'(xk)h +o(h2).

Заменяем значения функции y в узлах xk значениями сеточной функции yk:

yk+1 = yk +y′kh.

Из исходного уравнения следует, что y′k = f(xk,, yk). Получаем формулу метода Эйлера:

yk+1 = yk +hf(xk, yk). (6.3)

Локальная погрешность схемы Эйлера (ошибка на одном шаге) равна

При k=0 y1 = y0 +hf(x0, y0),

где необходимое значение y0известно из начального условия.

При k=1: y2 = y1 +hf(x1, y1) и т.д.

Получаем набор рекуррентных формул, с помощью которых значение сеточной функции уk+1в любом узле xk вычисляется по ее значению yk в предыдущем узле xk. Поэтому метод Эйлера относят к одношаговым методам.

Какой порядок аппроксимации имеет схема Эйлера?

По определению (см. выше), Rk = fk – Lk y(xk). Следовательно, в нашем случае , т.е. . Это означает, что схема Эйлера имеет первый порядок аппроксимации.

Покажем, что схема Эйлера сходится, т.е. при h®0, и имеет первый порядок точности, т.е. . Доказательство будем вести в предположении, что

Сразу отметим, что из этих ограничений вытекает следующее:

y″ = f′x + f′yy′x £ M2 +M3 M1 = M4.

Рассмотрим разность между значением сеточной функции и искомой функции в точках xk+1, т.е.

или

.

Запишем подряд несколько раз это неравенство для разных k, обозначив c=1+hM3:

dk £ cdk–1 + o(h2), dk–1 £ cdk–2 + o(h2), …, d1 £ cd0+ o(h2)

и выразим dk через d0.

dk £ c2dk–2 + с×o(h2) + o(h2) £ c3dk–3 + с2×o(h2) + c×o(h2) + o(h2) £ … £

£ ckd0 + сk–1o(h2) + сk–2o(h2) +…+ c×o(h2) + o(h2).

В частности, ошибка dN в конечной точке интервала будет содержать сумму N членов с ck×o(h2), т.е.

dN £ cNd0 + N×O(h2)= =cNd0 + O(h).

Таким образом, если начальные данные заданы точно (т.е. d0=0), то при 00 и d=O(h), т.е. разностная схема Эйлера обеспечивает сходимость с первым порядком точности.

Геометрический смысл схемы Эйлера – замена функции y(x) на отрезке [хk, хk+1] отрезком касательной, проведенной к графику в точке хk (рис.6.1). Из уравнения касательной По схеме Эйлера .

 

 
 

 


Рис.6.1 – Геометрическая интерпретация схемы Эйлера

 

МЕТОДЫ РУНГЕ-КУТТА

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

Эти методы обладают следующими отличительными свойствами:

1) они являются одношаговыми, т.е. чтобы найти yk+1,нужна информация только о предыдущей точке: xk, yk, и явными (явная зависимость yk+1 от yk);

2) они имеют порядок hp, где p – степень порядка (различна для различных методов);

3) они не требуют вычисления производных от f(x,y), а требуют только вычисления самой функции.

Однако для вычисления одной последующей точки решения приходится вычислять функцию f(x,y) несколько раз при различных значениях x и y. Это та цена, которую приходится платить за право не вычислять никаких производных, но цена более чем умеренная.

Метод Эйлера – метод Рунге-Кутта первого порядка точности. Его медленная сходимость характерна для всех методов первого порядка и служит препятствием для его широкого использования.

Все методы Рунге-Кутта можно представить в виде

yk+1 = yk + h j(xk, yk)

с соответствующей функцией j. Для метода Эйлера функцией j является сама функция f.

Рассмотрим теперь функцию j, определяемую соотношением

j(x,y) = c2f(x,y) + c3f(x+c1h, y+c1hf(x,y)).

Попробуем найти наилучшую линейную комбинацию двух значений f (это определяется константами c2 и c3) и определим в какой точке интервала при этом следует вычислять второе значение f (это определяется константой c1) с тем, чтобы максимизировать порядок метода Рунге-Кутта.

Запишем выражение для погрешности аппроксимации:

R = c2f(x,y) + c3f(x+c1h, y+c1hf(x,y))

(индекс опустим для простоты).

Выполним серию довольно утомительных преобразований.

1. Разложим функцию j в ряд Тейлора по двум переменным в окрестности точки (x, y): сначала по х, а затем по у.

j(x,y) = c2f(x,y)+c3{f(x,y+c1hf)1hfx(x,y+c1hf)+

+0,5 fx(x,y+c1hf)+o(h3) } =

=c2f(x,y)+c3{f(x,y)+c1hffy(x,y)+0,5 fy(x,y)+o(h3)+

+c1h[fx(x,y)+c1hffxy(x,y)+o(h2)]+0,5 [fx(x,y)+o(h)]}=

=(c2+c3)f+c1c3h(ffy′+fx)+0,5c12c3h2(f2fy″+ +2ffxy″+fx)+o(h3).

2. Разложим точное решение дифференциального уравнения y(x+h) в точке х в ряд Тейлора и преобразуем.

[y(x+h) – y(x)] = y′(x)+ y″(x)+ y″′(x)+O(h3) = =f+ f′+ f″+O(h3).

Совершим ряд вспомогательных действий: найдем полные производные

и .

;

.

Такимобразом,

R = j(x,y) = (c2 +c3 –1)f + (c1 c3 )h(ffy′ +fx) +

+ (c12c3 )(f2fy" + 2ffxy″ + fx) (fx′ fy′ + f(fy)2) – O(h3).

Проанализируем это соотношение.

Для любой функции f, если потребовать с2 + с3 = 1; с1с3 = , первые два члена обратятся в нуль. Но как бы мы ни выбирали константы, последний член не сможет обратиться в нуль, так что самое большое, что мы можем иметь, это R=o(h2).

Переобозначим: c3 = s, c1 = a. Тогда c2 = 1 – s, .

Таким образом, существует однопараметрическое семейство разностных схем второго порядка аппроксимации вида

yk+1 = yk +(1– s)hf(xk,yk)+ shf(xk+ ah,yk +a hf(xk,yk)).

Рассмотрим частные случаи:

1. s = 1; a = .

yk+1 = yk + hf(xk+ ,yk + f(xk,yk)) (6.4)

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

Геометрическая интерпретация. Через точку А проводится прямая, угловой коэффициент которой равен угловому коэффициенту касательной ВС к интегральной кривой yB(x), проходящей через промежуточную точку В, построенную по методу Эйлера с шагом h/2 (рис.6.2).

 

 
 

 


Рис.6.2 – Геометрическая интерпретация

модифицированной схемы Эйлера.

2. s = ; a = 1.

yk+1 = yk + [f(xk,yk)+ f(xk+1, yk + hf(xk,yk))] (6.5)

(улучшенный метод Эйлера, метод Хойна).

Геометрическая интерпретация. Через точку А проводится не касательная к интегральной кривой y(x), а прямая AB′ с угловым наклоном, равным средне арифметическому угловых наклонов касательных АВи ВС, которые строятся по методу Эйлера в точках А и В. Решением служит ордината точки В', которая образована пересечением этой прямой с прямой х=хk+1 (рис.6.3).

Обратите внимание, что эти схемы можно трактовать как схемы «предиктор – корректор» (т.е. «предсказание – уточнение», «счет–пересчет»). Например, в схеме (6.5) сначала по схеме Эйлера делается шаг предиктора и находится , а затем полусуммой делается шаг корректора:

.

Идея схем «предиктор-корректор» очень часто используется при написании разностных схем для уравнений математической физики с частными производными. При этом порядок получающейся схемы выше порядка схемы, используемой на шаге предиктора.

 
 

 

 


Рис.6.3 – Геометрическая интерпретация

улучшенной схемы Эйлера

 

Без вывода приведем наиболее знаменитую схему метода Рунге–Кутта – классический метод четвертого порядка:

, (6.6)

где

m1 = hf(xk, yk); m2 = hf(xk + , yk + );

m3 = hf(xk + , yk + ); m4 = hf(xk+1, yk + m3).

Широко используется также модификация классического метода Рунге-Кутта – метод Рунге-Кутта-Мерсона:

; (6.7)

m1 = hf(xk,yk);m2 = hf(xk + , yk + );

m3 = hf(xk + , yk + + );

m4 = hf(xk + , yk + + );

m5 = hf(xk+1, yk+ + 2m4).

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

,

; .

Запишем, например, формулы метода Рунге-Кутта 4-го порядка для систем двух уравнений.

.

; .

m1 = hj(xk, yk, zk); n1 = hy(xk, yk, zk);

m2 = hj(xk+ ,yk+ ,zk+ ); n2 = hy(xk + , yk + , zk + );

m3 = hj(xk+ ,yk+ ,zk+ ); n3 = hy(xk + , yk + , zk + );

m4 = hj(xk+1, yk + m3, zk + n3); n4 = hy(xk+1, yk + m3, zk + n3).

 

Примечание 1. О построении одношаговых методов высокого порядка.

Наиболее простой, с концептуальной точки зрения, подход к построению одношаговых методов высокого порядка для решения ОДУ заключается в разложении решения в ряд Тейлора. Например,

,

где y – точное решение. Легко видеть, что такой метод имеет порядок p. Старшие производные, в принципе, можно определить из самого уравнения (это мы уже делали ранее):

y′(x) = f(x,y); y″(x) = f(x,y) = fx(x,y) + fy(x,y) f(x,y)

и т.д.

Таким образом, при p=1 этот метод является методом Эйлера, а при p=2 принимает вид

и является методом второго порядка.

Но получение таким образом методов более высокого порядка связано с чрезвычайно громоздкими вычислениями, поэтому они редко используются.

Конец примечания 1.

Примечание 2. О погрешности методов Рунге-Кутта.

Погрешность методов Рунге-Кутта, как и любых методов численного решения задач, складывается из неустранимой погрешности (погрешность математической модели плюс погрешность исходных данных), погрешности метода (в нашем случае она имеет порядок hp) и вычислительной погрешности, вызванной ошибками округления при проведении расчетов на ЭВМ (она имеет порядок 1/h). Неустранимую погрешность можно уменьшить только за счет более точного определения начальных условий, за счет более точной постановки задачи.

Ошибку аппроксимации мы можем сделать сколь угодно малой за счет уменьшения шага h. Однако чем меньше h, тем больше понадобится шагов на одном и том же интервале [a,b] и, вообще говоря, тем больше скажутся на полученном результате ошибки округления. На практике, когда при выполнении арифметических операций используются ячейки памяти ЭВМ фиксированной длины, всегда существует такая величина шага h=h*, меньше которой вклад ошибок округления начинает доминировать в суммарной ошибке. Этот минимальный размер шага очень трудно установить заранее. Он меняется от задачи к задаче, от метода к методу (зависит от порядка и от производных Mp).

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

Конец примечания 2.

Рассмотрим практический способ оценки глобальной погрешности метода (правило Рунге). Это апостериорная оценка.

Правило Рунге, которое мы уже использовали ранее при рассмотрении методов численного интегрирования, состоит в том, что решение задачи в некоторой точке xn находится дважды по одной и той же формуле (например, по формуле Рунге–Кутта) с разными шагами. Обычно в качестве шагов выбирают h и h/2.

Этап I. По формуле Рунге–Кутта с постоянным шагом h находим решение yh. Оно отличается от точного значения y(xn).

y(xn) = yh + Ahp + O(hp+1).

Этап II. Используя ту же формулу с шагом h/2, вычисляем в точке xn другое значение решения yh/2, для которого потребуется вдвое больше шагов. Тогда

y(xn) = yh/2 + A(h/2)p + O(hp+1).

Приравнивая правые части, находим

. (6.8)

Подставив это значение погрешности, например, во вторую формулу (как более точную), получим повышенную на порядок схему расчета:

. (6.9)

Например, для схемы Эйлера (p=1) эта формула принимает вид:

y(xn) = 2yh/2 –yh +O(h2).

С помощью формулы (6.8) мы можем оценивать погрешность, сравнивая ее с наперед заданной допустимой погрешностью: если |Eh|<e , то заданная точность приближенного решения достигается, если |Eh|>e – нет.

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



Дата добавления: 2020-10-25; просмотров: 269;


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

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

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

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