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

Практикум 6 (Численные методы) - Задача Коши для систем ОДУ

.pdf
Скачиваний:
19
Добавлен:
13.02.2021
Размер:
7.36 Mб
Скачать

 

 

 

 

Практикум6

 

. ЗадачаКошидлясистемОДУ

 

 

 

 

 

.

 

 

 

 

 

 

МетодЭйлярешенияразКошидачи

 

 

 

 

 

 

 

 

 

 

. МетодыРунге

 

-Кутты.

 

 

 

Вэтойлабораторнойработемырассмотримнекоторыеприближенныеметодышениязад

 

 

 

 

 

 

 

 

 

 

 

 

!

= ,

 

а-

чиКоши,состоящейвотысканиирешения

 

 

 

 

 

 

 

 

 

 

диффеуравненияенциального

 

 

,удовл е-

творяющегозаданномуначальномуусловию

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

ЗадачуприближеннрешениязадачиКошибудемнимкакгозадпостроенияатьчуназ

 

 

 

! = !

 

 

 

 

 

 

 

 

 

 

а-

данномотрезке

 

 

 

 

функции

 

 

,котоблизка«»решениюая

≤ ≤

 

 

 

задачиКошисзаданной

 

 

 

чтоысле

 

 

| − | ≤

.

 

 

 

 

 

 

 

 

точностью втомс ,

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Метод Эйлера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим задачуКошидляуравнения

 

 

 

 

1-гопорядка:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= , ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Будемискатьчисленнрешеуравненияоиетрезке

.Заменпров

 

 

 

 

! = .

=

. Зададим наэтомотрезсетку

 

 

{ !, = 0,1, … , }

 

 

 

 

 

 

! < ! < < !

 

 

 

 

 

 

 

 

 

 

 

, такимобразом,чтобы

 

 

 

 

 

 

 

 

 

 

 

 

 

Введемобозндляшсеткиачениега

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. !,

 

 

 

 

 

 

 

 

! = !!! !, = 0, … , − 1

 

 

 

уравнениизводнуюправойразн,получимстью

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!!! !

= !, !

= !, = 0,1, … , − 1.

 

 

 

 

 

 

 

Известно,что

 

! = !

 

!

.Откуда

можнонайти

 

всеостальныезначения

 

 

 

!

по рекуррент-

ной формуле:

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данметоднахождрешенияыйчисленназываетсяного

 

 

!!! = ! + ! !, = 0,1, … , − 1.

методомЭйлера

 

 

(или

методом

ломаных)Схемы. ,вкоторыхзначениефункцииявноыражчерезуженаетсяйденныезнач

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ения,

называютсяявными,иначе

 

 

 

– неявны.Такиобразом,схемаЭйлераиявляетсяявной.Оценкап

 

 

 

 

 

 

 

 

 

 

 

о-

грешносдляданногомедаетодаи

 

 

 

 

 

 

 

 

max !

,чтопредполагаетмалыйшагсеткидляполучения

 

 

 

 

 

 

 

удовлетворрешен. ительногоя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нак изждомотрезков

 

 

[ !, !!!]

полученноерешбудетпредсниесобойотрезокавлятьпр

 

 

 

 

 

 

 

я-

мой,провчерезточкуднной

 

 

 

 

 

 

 

 

суглковымэффициентом

 

( !, !)

.Такаягеометрическая

 

н-

терпретациярешения

 

 

 

названиемметод( одаломанных).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

объяснявторо

 

!, !

 

 

 

 

 

 

 

 

 

 

 

 

[0, 1]

 

Пример 1. Найдитечисленное

решениеследующей

 

задачиКоши

наотрезке

 

методом

Эйлерана(равномсеткерной

 

 

 

 

сшагом

 

= 0.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)исравегонитеалитическим:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

! = !,

 

 

 

 

 

 

 

 

 

 

 

Реализуемме

тодЭйлераввидефайла

 

 

 

 

 

 

-

0 = 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

функции:

 

 

 

 

 

 

 

 

 

 

 

function [yy,xx]=euler(f,x0,y0,xe,h)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xx = x0:h:xe;

 

 

 

 

 

 

 

%значениякоординатхдлрасчета

 

 

 

 

 

 

 

 

 

 

 

 

yy = zeros(length(y0),length(xx));

 

%выделпамдлязначенийемтьфункции

 

 

 

 

 

 

 

 

 

yy(:,1) = y0;

 

 

 

 

 

 

 

%начальноезначение

 

 

y

 

 

 

 

 

 

 

 

 

for i=1:length(xx)-1

 

 

 

%последоватвычислзначенийльноение

 

 

 

 

 

 

 

 

 

yy(:,i+1) = yy(:,i) + h*f(xx(i),yy(:,i));

end

end

Такженампонадобитсявспомогательныйфайлдляфункцииправойчастиуравнения:

function f = f(x,y)

f=x.^2;

end

СпомощьюсоздафунайдемныхкцийрешениезадачиКоши:

>> [y,x]=euler(@f,0,1,1,0.1) y =

 

 

 

1.0000

1.0000

1.0010

1.0050

1.0140

1.0300

1.0550

1.0910

1.1400

 

1.2040

1.2850

 

 

 

 

 

 

 

 

x =

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0.1000

0.2000

0.3000

0.4000

0.5000

0.6000

0.7000

0.8000

 

0.9000

1.0000

 

 

 

 

 

 

 

 

Отобразимнаодномграфикепол

 

ученнрешениеточное,найденноеаналитичние

 

 

 

е-

ски

=

!

+ 1

.Результатпредставленнаследующемри (икриваяяяке

 

 

 

– аналитическоер

е-

 

!!

 

 

 

 

шение,краснломсимволаминная

 

– приближенноерешение).

 

 

 

 

 

Упражнение 1. Длявыполненияупр

 

 

ажнениявыбрать

задачуКоши

дляуравнения1

-гопоря

д-

ка всоответствииномеромкомпьютерасписок( вариантовприведенконцеработы).

 

 

 

[0,1]

 

 

 

 

 

 

сшагом1) Найти .

 

 

 

 

методомЭйлера

,используяравномернуюсетку

 

 

решениезадотрезкеачи

 

 

 

 

 

 

 

 

Найти ошибвычислений,каку

 

 

 

разностьмежду

 

точнымрешениемзадачи( ожнонайти

 

 

 

2) = 0.1

 

 

 

 

 

 

 

 

бумажкеиливс мвольномвидеспомощьюфункции

 

 

 

 

 

 

dsolve) и полученным численнымрешениемв

 

 

каждойточкесетки.Определитьпогрешнос

 

 

 

 

тьрешения,какмаксимуммодуля

 

 

ошибкивычислений

.

3) Пострографитьки

тоичногоислерешен(одноманогорисунке)графикя

 

 

 

 

 

ошибки

вычислна(отдрисункельномний).

 

 

 

 

 

 

 

 

 

 

 

 

4)Повторитьрешениезадшагаляачисетки

 

 

 

 

 

 

 

 

построеннымвпункте3,

 

 

добавитьграфновогоч ксленнрешенияграфикогоответствующейему

 

 

 

 

 

= 0.05.Кграфикам,

ошибки.

 

 

2. Решениеуравнений

p-гопорядкаисистемОДУ

 

 

 

.

 

 

 

Рассмотримобыкновенноедифференциальноеуравнение

 

 

(!)

!

 

 

(!!!)

p-гопорядка:

 

 

 

 

!

 

 

 

).

 

 

 

Путзаменывведения

 

 

= ( ,

, ", … , ,

 

 

е-

ме дифференциальных

уравненийпервогопорядка:

= !, = 1, … , − 1

данноеуравнеможсвестиксистниео

 

 

 

 

 

 

 

 

 

 

′ = !,

 

 

 

!!

= !,

 

 

 

 

 

!

 

 

 

 

!!!!

!!!

= !!!,

 

 

Дляполученединстврешизсистемыяенужноияогоалжить

= , , !, … !!! .

p дополнительныхусл

о-

вийнафункции

!( ).ДлязадачиКошиданныеуслозадаютсяводнойияточке:

!

= !,

 

 

ДлянахождерешенияполученнойзадачиКошияможетбытьприменен

! !

= !, = 1, … , − 1.

методЭйлера,

с-

смотренныйранее.

Дляэтогопредстполученнуюзавдачувекторномимвиде

 

 

 

 

= , , ! = ,

введяобозначения :

 

 

 

 

 

 

!

 

!

 

!

 

!

 

 

 

 

!

 

 

 

 

 

!

 

 

 

=

 

,

=

 

, , =

!!!

, =

 

 

 

 

 

!!! .

 

!!!

 

 

 

!

 

 

, , , … ,

 

 

 

 

 

!!!

 

 

 

 

 

 

 

 

 

!

!!!

 

 

ВданныхобозначенияхформулыметодаЭйлерамогутбытьпредставленывиде:

 

 

 

 

(

 

 

! = ,

 

 

 

 

Обратитевнима,чтофудлянмиекция

) = ( ) + ( , ( )), = 0,1, … , − 1.

 

 

 

 

 

!!!

 

!

!етодаЭйлера,описанная! впр1,! мерезначальнобыла

 

 

рассчитанаработупеременными

 

 

y, y0, заданнымиввидевектора

 

 

-столбца.Вноситьдополн

и-

тельныхизменевэтуфудлянрешениякцийс уравнюстемнетре.Досбуенийлишьтаточнося

 

 

 

 

 

 

 

 

правильнозад ть

 

 

метрыиреализоввычислениеправой.тьсти

 

 

 

 

 

 

Упражнение 2. ДлявыполненияупражнениявыбрзадКошидлятьчууравнения2

 

 

 

-гопоря

д-

кавсоответствииномеромкомпьютерасписок( вариантовприведенконцеработы).

 

 

[0,1]

 

 

 

 

 

Найтирешениезадотрезкеачи

 

 

 

методомЭйлера,используяравномернуюсетку

 

порядка.

= 0.1

ипредварительнопреобраззад Кдачудлясистемышивавуравнений1

 

 

 

 

-го

сшагом1)

 

 

 

 

 

 

2)Найтиошибвычислений,кразностьакумеждуточнымрешениемзадачи( ожнонайти

 

 

dsolve) иполученнымчисленнымрешениемв

 

бумажкеиливс мвольном

 

 

видеспомощьюфункции

 

 

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

 

 

 

 

 

 

 

 

3)Пострграфоичногоислетькирешен(одноманогорисунке)графяошибки

 

 

= 0.05

 

 

 

вычисленийна(

отдельномрисунке).

 

 

 

 

 

 

4)Повторитьрешениезадшагаляачисетки

 

 

 

 

.Кграфикам,построеннымвпункте3,

 

добавитьграфновогоч ксленнрешенияграфикогоответствующейемуошибки.

 

 

 

 

 

 

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

 

 

 

= ( ),т.е.методЭйлераимп ет

 

Дляпогрешности

методаЭйлера

справоценкадлива

р-

выйпорядокточности.

 

 

Этоознача,чтодляуменьшпогртвычешностия100разсленийшаг

 

 

четнеобходимотакжеуменьшитьв100раз.Дляболпрактическихшинзадач, ожалениютва,

 

 

 

 

 

 

 

 

такойнизкийпорядокточностине

 

 

 

статочен.

 

 

 

 

 

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

 

 

 

 

 

 

е-

лоесемействомет,п лучившеедовназваниметодыРунге

 

 

 

 

 

-Кутты.

Наиболеепопулярныйизэтих

 

методов – методРунге

-Кутты4

-гопорядкаточности,которыймырассмотрим

 

 

далее.Такженапра

к-

тикечастоприменяютметод2

 

-гопорядкаиужезнакомыйнамметодЭйлераметод( Рунге

 

 

-Кутты1

-

гопорядка)В.литературезрабметРунгеотаныды

 

 

-Куттыдо8

-гопорядкаточности

включительно,

но практическогораспространенияполучи

ли.

 

 

 

 

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

 

 

-Куттывобластивводра тся

в-

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

 

!

 

огозначенияв

 

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

 

даетсякак:

 

 

 

!!! = ! +

! ! ,

 

 

 

 

 

 

!!!

 

 

 

! = !, !,

! = ! + ! , ! + !" !,

! = ( ! + ! , ! + !! ! + !! ! + + !,!!! !!!).

Каждыйконкрметодс мействатныйРунге

-Куттыопредечиспроляемэежуточныхся

 

 

а-

повстадий( )

s ификсированнымизначениямикоэффиц ентов

 

 

 

 

 

 

!", !, !. Значениякоэффициентов

 

подбираютсятакимобразаданном,чтобыприпорядкеточностиислотребуемыхстадийбыло

 

 

 

 

 

 

 

 

минимальным.

 

 

 

 

 

 

 

 

 

 

 

Вчастности,методЭйлераимеетоднустадиюкоэффициент

 

 

 

 

 

 

 

. Для достижениявтор

о-

гопорядкаточнотребуетсядвестадии(

исподэтогользуемыея

 

значениякоэффициентовможно

 

 

 

! = 1

 

 

 

легко найтивлитературе).

 

 

 

 

 

 

 

 

 

 

 

ДлядостижчетвпоеточнрнияядкатоготребуетсяиспользоватьтиметодРунге

1

 

 

 

 

 

 

 

 

-Куттыс

 

четырьмястадиями:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!!! = ! + 6 ! + 2 ! + 2 ! + ! ,

 

 

 

 

 

! = !, ! ,

!

 

 

 

 

 

 

! = ! +

 

, !

+

,

 

 

 

 

 

2

2

 

 

 

 

 

! = ! +

 

, !

+

!

,

 

 

 

 

 

2

2

 

 

 

МетодстакимнабоэффициромполучилназваметодРунгетовие

! = ! + , ! + ! .

-Кутты4

-гопорядка.

 

Дляегоп грешностисправоц нкадлива

= (

!

)

,т.е.при

 

уменьшениишагасеткив10раз,п

 

 

о-

грешностьуменьшаетсяв10000раз.

 

 

 

 

 

 

 

 

 

Данныйметодможноприменять,какдляодногоуравнения,такдлясистемыуравнений,

 

 

 

 

 

 

 

 

 

 

с-

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

 

 

 

 

 

 

 

 

 

 

 

Пример 2.Нап исать файл-функцию реализметодРунгеющую

 

-Кутты4

-гопорядка . Преду-

смотретьвозможноиспользованияметодадляистемытьуравнений.

 

 

 

 

 

 

 

 

 

 

 

 

function [yy,xx]=runge(f,x0,y0,xe,h)

 

 

 

 

 

 

 

 

 

 

 

xx = x0:h:xe;

 

 

 

 

 

 

 

 

 

 

 

 

% yy создадимввидематрицы,

i-ястркотскаоответсвуетрой

i-йфункции

 

yy = zeros(length(y0),length(xx)); yy(:,1) = y0;

for i=1:length(xx)-1

k1 = h * f(xx(i), yy(:,i));

k2 = h * f(xx(i)+h/2, yy(:,i)+k1/2);

k3 = h * f(xx(i)+h/2, yy(:,i)+k2/2);

k4 = h * f(xx(i)+h, yy(:,i)+k3);

 

 

yy(:,i+1) = yy(:,i) + (k1+2*k2+2*k3+k4)/6;

 

 

end

 

 

 

 

end

 

 

 

 

Упражнение 3.

 

 

 

 

Выползаданупражнений1тьэтой2яработы

 

, используяметодРунге

-Кутты4

-гопоря д-

кавместометодаЭйлера.Сравнить

погрешности,

полученныеприиспользова

нииразныхметодов.

 

4. Решение задачиКоши

спомощьювстроенныхфункций

MATLAB.

 

В MATLAB длярешения

задачиКошидляс дифференциальныхстемыуравнений

 

реализован

наборметодов:

ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb.

 

 

Метод ode23 реализуетметодРунге

-Кутты2

-гопорядка,

ode45 – методРунге

-Кутты4

-гоп о-

рядка,остальныеметоды

– используютдругиеалгн рписанныевышетмы,которыеадаптиров

 

 

а-

ныподзадсрачизрывнымифункциядругимиособенностями.Руководство

ode45,а другиеметодыприменятьеслиэтафункция

MATLAB рекомен-

дуетвпервуюочередьиспользоватьфункцию

 

 

несправляетсязадачей

.

 

 

 

 

 

Подробописаниефуихпараметровоекций

doc ode45.

сприспользованиямерамиможнопосмо

 

т-

ретьвсправкеMATLAB,набрав

 

 

 

 

 

Упражнение 4.

 

 

 

 

 

НайтирешениезадачКошидляуравнений1

 

-гои2 -гопорядкав(соответствииВашимном

 

е-

ромварианта),используявстроеннуюфункци

ode45.

 

 

 

Задлявыполненияаниялабораторнойработы.

Номервариантасоответствукомпьютерапоследнцифреномера.й

1-йпорядок

2-йпорядок

вар-та

! = !!!,

!! − 4 ! + 3 = !!,

0

 

0 = 0

0 = 3, ! 0 = 9

1

! = + ,

!! − 8 ! + 16 = !!,

 

0 = 1

0 = 0, ! 0 = 1

2

! = − ,

!! + 4 = sin 2 + 1,

 

0 = 1

0 = 1/4, ! 0 = 0

3

! = !,

2 !! ! = 1,

 

0 = 0

0 = 0, ! 0 = 1

4

! = − 2 ,

!! + 5 ! + 6 = 0,

 

0 = 0

0 = 1, ! 0 = −6

5

! = / ,

!! − 10 ! + 25 = 0,

 

0 = 1

0 = 0, ! 0 = 1

6

! = !!,

!! + 3 ! = 0,

 

0 = 0

0 = 1, ! 0 = 2

7

! = !!,

9 !! + = 0,

 

0 = 0

0 = 1, ! 0 = 1

8

! = !,

!! + = cos 3 ,

 

0 = 0

0 = 0, ! 0 = 0

9

! = sin ,

!! + = ,

 

0 = /2

0 = 1, ! 0 = 0