Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вычислительные методы

..pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
1.74 Mб
Скачать

31

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

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

Вуравнениях л-го порядка эти условия налагаются на переменную у

иее производные до (л - 1)-го порядка, заданные при х =x0i а именно:

Уо=У(хо),

Уо'=у'(хо),---

(5.2)

Например, дифференциальное уравнение первого порядка у' = у име­ ет решение у = С е*, где С - произвольная постоянная.

Выбор начального значения у = у0при х = х0 позволяет определить С и найти частное решение.

Дифференциальное уравнение считается разрешенным относительно старшей производной, если оно приведено к виду

(5.3)

Задача определения решения уравнения (5.3) при начальных услови­ ях (5.2) называется задачей Коши для обыкновенного дифференциального уравнения.

Любое уравнение (5.3) л-го порядка можно свести к системе л урав­ нений первого порядка с помощью замены переменных. Для этого вводят новые переменные у = уи у ” = у2, ..., Уи_1) = у„.i, в результате чего получа­ ют эквивалентную систему

У' =У\>

У\=У2>

/ п-\=/(х>У>УьУ2 >~>Уп-\)-

Указанный прием позволяет свести решение дифференциального уравнения л-го порядка к решению системы уравнений первого порядка. В свою очередь, методы решения одного уравнения первого порядка распро­ страняются на систему таких уравнений.

32

В силу этого в дальнейшем использование численных методов будем рассматривать на примере решения дифференциального уравнения перво­ го порядка

/= /(* . У).

(5-4)

с начальными условиями у(х0) =у0.

Сущность методов состоит в следующем. На отрезке решения выби­ рается некоторое множество точек, называемое сеткой.

Хо< Х\ <х2< ... <хп.

Вполученных точках вычисляются приближенные значения у и у2, ..., уп решения задачи Коши.

Таким образом, численное решение дифференциального уравнения сводится к вычислению приближенного решения у/+\ в точке х*.] по из­ вестному приближенному решению у, в точке X/. Разность h = x,+i - х( назы­ вают шагом сетки. В большинстве случаев величину h полагают постоян­ ной, тогда

Х/ = х0 + i'K *= О, 1, 2,...

Метод, дающий формулу для вычисления значения у,+1 по к преды­ дущим значениям у,-,у,.[, ...,у/,*+ь называется ^-шаговым. Если к = 1, то ме­ тод является одношаговым. Среди методов этого типа широко применя­ ются методы Рунге-Кутта.

При к > 1 метод является многошаговым. Примерами его могут быть методы прогноза и коррекции.

При оценке точности численного метода определяют до какой сте­ пени h согласуется приближенное решение с разложением функции в ряд Тейлора.

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

Допустим, что процесс решения дифференциального уравнения (5.4) доведен до некоторой точки хти интересует, что произойдет при переходе к следующей точке.

Разложение в ряд Тейлора функции у(х) в окрестности точки х = хтзапишется следующим образом:

y(x) = ym+ y 'J x - x m) + ^ (—

+

+ ...

 

2!

3!

33

где у $ - /-я производная функции в точке х = хт.

Предположим, что найдено приближенное решение уравнения для

+ 1) точек на оси х, т.е. для х0, хь

хт. Последовательные значения х,

расположены на расстоянии шага h друг от друга,

 

X/ = х0 + ih.

 

 

Приближенное значение для х = xm+i определяется как

 

, ,

h2y '

h3y ”

(5.5)

Ли-1 =Ут + Ь т +—rrL + —rJ!L + -

 

2!

3!

 

Чем больше членов ряда (5.5) будет взято, тем точнее решение. В любом случае необходимо вычислять различные производные функции

уЫ

Ут ~~f (.*т»Ут) >

дифференцируя по х заданное уравнениеу' = / (х, у ) ,

У(х) = ^/(*>>0 + f(x ,y ) - ^ f(x ,y )

или

У" =fx +ffy,

где/=У(х, у);f x- частная производная по х;fy - частная производная по у. Все значения функции и ее производных определяются для х = хт,

у - у т. Тогда решение в х = xw+i приобретает вид

 

Уш =Уш +А/+

+ш +°(л3)>

(5-6)

где 0(Л3) означает, что в следующие члены ряда h входит в степени, не ниже третьей (О - ограничение).

Таким образом, если для нахождения приближенного уравнения бу­ дет использована формула (5.6) без 0(Л3), то ошибка ограничения пропор­ циональна bh3, где к - некоторая постоянная.

Нахождение решения с помощью ряда Тейлора является односту­ пенчатым методом, т.к. для вычисления ym+i необходима информация только об одной предыдущей точке xm, ут. С практической точки зрения сложно найтиf x,fyi третья производная выглядит следующим образом:

Ут =/« +V U +f'fyy W , +/ fy

34

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

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

Методы Рунге-Кутта обладают следующими отличительными свой­ ствами:

1.Эти методы являются одношаговыми.

2.Они согласуются с рядом Тейлора до членов порядка И\ где сте­ пень р различна для различных методов.

3.Они не требуют вычисления производных от fix, у ), а только вы­

числения самой функции.

5.2. L Метод Рунге-Кутта первого порядка (метод Эйлера)

Предположим, что известна точка хт, ут на искомой кривой. Тогда можно провести через точку хт, ут прямую с тангенсом угла наклона у'т =А хт,Ут) (прямая на рис. 5.1).

Рис. 5.1. Геометрическая интерпретация метода Эйлера

Тогда следующей точкой решения можно считать ту, где прямая 1\ пересечет ординату, проведенную через точку х = хт+ А. Уравнение 1\ вы­ глядит следующим образом: у =ут+ у'т(х - хт).

Tlpnx=xm+ h= xm+l

35

У т * ! =>'«+ h-y'm =ут+ h-fixm,y m).

Ошибка при х = хт+\ показана на рис. 5.1 в виде отрезка е.

Очевидно, найденное таким образом решение согласуется с рядом Тейлора вплоть до членов порядка ht так что ошибка ограничения равна z =k-h2.

5.2.2.Методы Рунге-Кутта второго порядка

5.2.2.1.Исправленный метод Эйлера

Висправленном методе Эйлера определяют средний тангенс угла наклона касательной для двух точек хт, ути (хт+ А), (ут+ h- у ’т). Геометри-

ческий процесс нахождения точки хт+\,ут+\ можно проследить по рис. 5.2.

С помощью метода Эйлера находится точка хт+ Л, ут+ hy'm, лежа­ щая на прямой 1\. В этой точке снова вычисляется тангенс угла наклона касательной (прямая /2). Усреднение двух значений тангенсов дает прямую t . Прямая /, проведенная из точки с координатами (хт, ут), параллельна f Точка, в которой прямая / пересечется с ординатой, восстановленной из х = хт+и и будет искомой точкой хт+иут+].

Тангенс угла наклона прямой I* и прямой / определяется как

Ф(*т>У т , h) = i [fixmут) +fixm+ h,ym+ hy'm)]>

(5.7)

36

 

гДе У'п =АХт,Ут)-

 

Уравнение прямой / при этом запишется в виде

 

У = У т + (X~ Хт)-Ф(хтут, А).

 

Прих = х „+ A = xm+i

 

У т * 1= У т + И-Ф(хт,у т, А).

(5.8)

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

Можно усреднять точки и по-другому. Рассмотрим рис. 5.3, где пер­ воначальное построение сделано так же, как и на рис. 5.2.

Через точку хт, утпроведена прямая /|, тангенс угла наклона которой равен j[xm, ут). Но на этот раз выбирают точку, лежащую на пересечении этой прямой и ординаты х = хт+ h/2 (это точка с). Ордината точки с равна у - у т+ hl2y'm. Тангенс угла наклона касательной t в этой точке

Ф(*т> уту h) =Лхт+ А/2, Ут+ Ы2-у'т),

где у'т =Лхт,УтУ

Проводим через точку хт, утпрямую, параллельную l\ и обозначим ее /. Пересечение / с ординатой хт+ И даст решение дифференциального уравнения в точке хт+].

Уравнение прямой /0 можно записать в виде

У = У т + (х - Х т) Ф(хт,У т , И).

Придс = ^ш+ h=xm+i

У=Ут + к-Ф(хтут И).

37

5.2.3.Определение ошибки ограничения

Выясним, насколько исправленный метод Эйлера согласуется с раз­ ложением в ряд Тейлора. Разложение в ряд функцииJ{x, у) можно записать также и следующим образом:

Ах,У)=АХт,Ут) + {х-Хт) ^ + ( у - у т)^ - + дх ду

Частные производные вычисляются при х = хти у = ут. Подставляя x =xm + h,y= ym + h-y'm, у'„ =А*т, Ут), получаем

Ахт+ h,ym+h-y'm) = /+ hfx+ hffy + 0(AJ).

Используя это выражение в формуле (5.7) для Ф(хт,ут А), имеем

<b(xm,y m,h)= ± (/> /+ hfx+ hffy + 0(Л2))= /+ ^ (fx+ffy) + 0(h2).

И наконец, выведенное для Ф(хш, ут А) выражение подставляем в формулу дляуот+i (5.8)

Уши =У» + А/+ у & +#,) + 0(й3).

Таким образом, исправленный метод относится к методам РунгеКутта 2-го порядка. Аналогично доказывается, что и модифицированный метод Эйлера также относится к методам Рунге-Кутта второго порядка.

5.2.4.Анализ методов Эйлера

Исправленный и модифицированный методы Эйлера описываются формулами вида

Ут+1 =Ут + Ь-Ф(хт,ут А).

Формула для тангенса Ф(х^, ут, А) может быть записана в общем ви­ де следующим образом:

Ф(*т,Ут, h) = avJ[xm ут) + arfixm + М , Уж+ b2h у'т).

Для исправленного метода Эйлера

й[= а2= 1/2, At = A2= l.

Для модифицированного метода Эйлера

38

<*1=0, a2 = 1,

^ = 6 2 = 1/2 .

Для простого метода Эйлера

ах= 1.

а2 = 0.

Рассмотрим, какого порядка метод можно получить в лучшем случае и каковы полученные значения ах, а2у Ь\, Ь2. Чтобы получить соответствие ряду Тейлора до членов степени А достаточно одного параметра. Для сте­ пени А2 нужны три параметра. В данном случае имеются четыре параметра (аХу а2у Ьи Ь2)Узначит, максимальный порядок - второй порядок.

Варьируя одним свободным параметром, можно построить множе­ ство методов 2-го порядка. В разложенииj[xy у) в ряд Тейлора в окрестно­ сти точки (хту ут), положим

x =xm+ bvh, У=Ут+Ь2 -h-y'm =ym+br h f

Тогда

J[xm+ byh, ут+ byh-f) = /+ b\■h-fx + brhffy + 0(А2).

Следовательно,

У т и = У т + h-[ayf+ a2f + h-(a2-b\fx+ ar b2f f y) ] + 0(A3).

Если потребовать совпадения членов степени h f то ах+ а2= 1. Срав­ нивая члены, содержащие h2f xy получим

а2Ьх= 1/2.

Сравнивая члены, содержащие А2 •ffyy получим

аг Ь2= 1/2.

Решим полученную систему

а\+а2 =1,

' aib\

<*2b2 = j-

Одну переменную зададим произвольно а2= со ф 0. Тогда

ах= 1 -© , Ь\ =Ь2 = 1/2©. При этих обозначениях

39

У п + Г У т + Л-[(1 - сй ) ’Л Х т ,У т ) + СО‘ЛХ т + Л/2С09ут+ А/2©-J[xm ут)} + О(у3). Ошибка ограничения е = А-А3. Задавая со, можно определить значение

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

5.2.5. Метод Рунге-Кутта четвертого порядка

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

Метод описывается системой следующих соотношений:

Ут*I = У т + ~ '(*1 + 2*2 + 2*з + *4),

О

где

*1 = Л.Хт,Ут),

h = А Х т +

Ут+ ^ - * l ) ,

кз=ЛХт+

Ут+^-kl),

к*=Ахт+ h,ym+ А-*3).

Ошибка ограничения для этого метода е = А-А5 Метод Рунге-Кутта четвертого порядка обладает достаточно высо­

кой точностью для многих практических приложений. Он легко програм­ мируется. Поскольку для вычисления ут+\ нужно знать лишь одно значе­ н и е^, то с помощью этого метода можно начинать решение уравнения.

Величину шага h можно легко изменить на любом этапе вычисле­ ний. Одним из недостатков метода является необходимость четыре раза вычислять значение функции на каждом шаге, что приводит к затрате большого количества машинного времени. Другой существенный недоста­ ток - отсутствие легко определяемой оценки для ошибки дискретизации, помогающей при выборе величины шага.

При вычислениях следует контролировать величину шага таким об­ разом, чтобы погрешность не превышала заданной величины. Такой кон­ троль осуществляется с помощью двойного просчета с шагом 2Аи к.

Пусть У2а(*|) - приближенное решение в точке JC„ полученное при расчете с шагом А, а уи(х,) - решение, полученное при расчете с шагом А. Можно показать, что

Ы * / ) - y h ( X i ) I я ^ >

где y(Xj) - точное решение в точке

40

Алгоритм выбора величины шага состоит в следующем. Если правая часть последней формулы имеет порядок заданной погрешности то шаг выбран верно; если меньше £ - шаг удваивается; если больше £ - шаг уменьшается вдвое.

5.2.6. Методика решения систем дифференциальных уравнений

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

'У\

=

Л (х,уиу2....уп)>

Уг

=

М х ,у х,Уг,->Уп)>

Уп

=

М х.УиУг....У»)-

Начальные условия у х(х0) = у \о,..., у„(хй) = У п о- Формулы метода Рунге-Кутта четвертого порядка для данного слу­

чая имеют вид

Уин =Уи+ j ( k t + 2кг + 2къ + к4),

О

Уин ~У21+ 7 (Л + 21г + 2/3 + /4),

О

Утн =Уы + - ( m t+ 2т2+ 2тг+ т4),

О

где

к\ = /(х„уи,Уг„ ■■■,Уш),

h = /г(х/,у 1,-,Ун, ■■■,Упд,

mi=fn{Xi,yu,yu...... Упд-

k2=f{xi + ^,У и + ^ к х,уг,+ ^1\...... yni+ |m i),

h=h(Xi + ~,Уи+ ^ k uy2i+ ^/i,

...,y„t+ ^ т х),

г , ,

h

h ,

h ,

, h .

m2=fn(xi+

,yu + —k\,y2)+

—Л, ...,y„i+ -m ,).

k3=MXi+ ^,У и + ~ к2,у 21+ ^ /2, ...,y„t+ j m 2),