Смекни!
smekni.com

Чисельні методи розвязування крайових задач для звичайних диференціальних рівнянь (стр. 8 из 8)

writeln(tx,x[i]:0:10);

end;

for i:=0 to (2*st) do

form2.Series1.AddXY(x[i],y[i]);

form2.Label1.Caption:='Крок сітки - '+floattostr(h);

form2.Label2.Caption:='Кількість вузлів - '+floattostr(2*st+1);

time1:=timer;

vremja:=abs(time2-time1);

form2.Label3.Caption:='час роботи: '+floattostr(vremja*0.01)+' секунд(и)';

writeln(k_i,vremja*0.01:0:5);

CloseFile(t_all);

CloseFile(tx);

CloseFile(ty);

CloseFile(k_i);

form2.Show;

end;

end

Результати записуємо у файл.

Графік отриманий програмою:


Якщо проаналізувати ці два приклади програми:

1)з використанням методу Гауса для розв’язання тридіагональної матриці;

2)з використанням методу прогонки для розв’язання тридіагональної матриці.

Ми можемо сказати, що для однієї і тієї ж задачі час розв’язання з використанням 1ого методу складає 2,99 сек., а для 2ого 0.1 сек. Така розбіжність у часі випливає з того, що метод прогону є модифікацією методу Гауса і призначений спеціально для розв’язку матриць з 3и і 5и діагональними структурами.

Розв’язуємо задачу за допомогою пакету Mathematica:

100

0.01

-0.123705

MultipleListPlot[{{0.5,0.154796},{0.51,0.146438},{0.52,0.138265},{0.53,0.130272},{0.54,0.122456},{0.55,0.114812},{0.56,0.107336},{0.57,0.100024},{0.58,0.0928731},{0.59,0.0858792},{0.6,0.079039},{0.61,0.0723491},{0.62,0.0658064},{0.63,0.0594079},{0.64,0.0531504},{0.65,0.0470312},{0.66,0.0410475},{0.67,0.0351966},{0.68,0.0294758},{0.69,0.0238829},{0.7,0.0184152},{0.71,0.0130705},{0.72,0.00784647},{0.73,0.00274101},{0.74,-0.002248},{0.75,-0.00712262},{0.76,-0.0118848},{0.77,-0.0165364},{0.78,-0.0210793},{0.79,-0.0255153},{0.8,-0.029846},{0.81,-0.0340732},{0.82,-0.0381983},{0.83,-0.0422231},{0.84,-0.0461488},{0.85,-0.049977},{0.86,-0.0537091},{0.87,-0.0573463},{0.88,-0.06089},{0.89,-0.0643414},{0.9,-0.0677017},{0.91,-0.0709721},{0.92,-0.0741536},{0.93,-0.0772473},{0.94,-0.0802542},{0.95,-0.0831754},{0.96,-0.0860117},{0.97,-0.0887641},{0.98,-0.0914334},{0.99,-0.0940204},{1.,-0.096526},{1.01,-0.0989509},{1.02,-0.101296},{1.03,-0.103561},{1.04,-0.105748},{1.05,-0.107857},{1.06,-0.109889},{1.07,-0.111844},{1.08,-0.113722},{1.09,-0.115525},{1.1,-0.117252},{1.11,-0.118904},{1.12,-0.120482},{1.13,-0.121985},{1.14,-0.123415},{1.15,-0.124771},{1.16,-0.126054},{1.17,-0.127264},{1.18,-0.128401},{1.19,-0.129466},{1.2,-0.130459},{1.21,-0.131379},{1.22,-0.132228},{1.23,-0.133004},{1.24,-0.133708},{1.25,-0.134341},{1.26,-0.134902},{1.27,-0.135391},{1.28,-0.135808},{1.29,-0.136154},{1.3,-0.136427},{1.31,-0.136628},{1.32,-0.136757},{1.33,-0.136814},{1.34,-0.136798},{1.35,-0.136709},{1.36,-0.136547},{1.37,-0.136312},{1.38,-0.136004},{1.39,-0.135621},{1.4,-0.135164},{1.41,-0.134633},{1.42,-0.134026},{1.43,-0.133344},{1.44,-0.132586},{1.45,-0.131752},{1.46,-0.130841},{1.47,-0.129852},{1.48,-0.128786},{1.49,-0.127641},{1.5,-0.126416}},{{0.5,0.159038},{0.51,0.150628},{0.52,0.142405},{0.53,0.134363},{0.54,0.126498},{0.55,0.118807},{0.56,0.111285},{0.57,0.103929},{0.58,0.0967336},{0.59,0.0896968},{0.6,0.0828146},{0.61,0.0760838},{0.62,0.0695011},{0.63,0.0630634},{0.64,0.0567678},{0.65,0.0506112},{0.66,0.0445911},{0.67,0.0387046},{0.68,0.0329491},{0.69,0.0273222},{0.7,0.0218214},{0.71,0.0164443},{0.72,0.0111888},{0.73,0.00605251},{0.74,0.00103346},{0.75,-0.00387045},{0.76,-0.00866119},{0.77,-0.0133407},{0.78,-0.0179107},{0.79,-0.0223731},{0.8,-0.0267296},{0.81,-0.0309819},{0.82,-0.0351315},{0.83,-0.0391799},{0.84,-0.0431288},{0.85,-0.0469795},{0.86,-0.0507334},{0.87,-0.0543918},{0.88,-0.0579562},{0.89,-0.0614276},{0.9,-0.0648073},{0.91,-0.0680964},{0.92,-0.0712961},{0.93,-0.0744074},{0.94,-0.0774314},{0.95,-0.0803691},{0.96,-0.0832213},{0.97,-0.085989},{0.98,-0.0886731},{0.99,-0.0912744},{1.,-0.0937936},{1.01,-0.0962317},{1.02,-0.0985892},{1.03,-0.100867},{1.04,-0.103065},{1.05,-0.105185},{1.06,-0.107227},{1.07,-0.109192},{1.08,-0.11108},{1.09,-0.112891},{1.1,-0.114627},{1.11,-0.116287},{1.12,-0.117872},{1.13,-0.119382},{1.14,-0.120819},{1.15,-0.122181},{1.16,-0.123469},{1.17,-0.124684},{1.18,-0.125825},{1.19,-0.126894},{1.2,-0.12789},{1.21,-0.128813},{1.22,-0.129664},{1.23,-0.130442},{1.24,-0.131148},{1.25,-0.131781},{1.26,-0.132342},{1.27,-0.132831},{1.28,-0.133248},{1.29,-0.133592},{1.3,-0.133863},{1.31,-0.134062},{1.32,-0.134189},{1.33,-0.134242},{1.34,-0.134222},{1.35,-0.134129},{1.36,-0.133962},{1.37,-0.133722},{1.38,-0.133407},{1.39,-0.133018},{1.4,-0.132554},{1.41,-0.132015},{1.42,-0.1314},{1.43,-0.13071},{1.44,-0.129943},{1.45,-0.129098},{1.46,-0.128177},{1.47,-0.127177},{1.48,-0.126099},{1.49,-0.124942},{1.5,-0.123705}},PlotLegend{Mathematica,Rizn method},PlotJoined{False,True},PlotPosition{0.3,-0.5}]

Отримуємо графіки:

де червона – метод скінченних різниць.

синя – стандартний метод пакету Mathematica


Висновки

Крайова задача для звичайних диференціальних рівнянь є набагато складнішою, ніж задача Коші. Одним із підходів до розв'язання цієї задачі є зведення її до задачі Коші зі змінними початковими умовами. Розв'язок задачі отримують багаторазовим розв'язанням задачі Коші.

У загальному випадку для розв'язання двоточкової крайової задачі (одно- чи багатовимірної, лінійної чи нелінійної) доцільно застосовувати метод прицілювання, а для розв'язання окремих лінійних одновимірних задач — метод композиції двох розв'язків задачі Коші з різними початковими умовами.

Ефективним методом розв'язання лінійної крайової задачі для диференціального рівняння другого порядку є метод скінченних різниць, у якому використовуються різницеві схеми апроксимації для похідних першого і другого порядків. У результаті крайова задача перетворюється на задачу розв'язання системи лінійних рівнянь із тридіагональною матрицею. Цю систему можна розв'язати методом прогону.

Метод скінченних різниць дозволяє також обчислювати власні значення і власні функції крайової задачі, які визначають нетривіальні розв'язки однорідної крайової задачі.

Метод скінченних різниць можна застосовувати і для розв'язання нелінійних крайових задач, але в цьому випадку необхідно лінеаризовувати нелінійні функції, що входять в умову задачі.

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

Коефіцієнти для базисних функцій та їх композиції, які апроксимують розв'язок крайової задачі, у методі колокацій вибирають з умови нульової нев'язки в обраних вузлах інтервалу розв'язку, у методі найменших квадратів — з умови мінімуму квадрату нев'язки, а в методі Гальоркіна — з умови ортогональності нев'язки до обраних базисних функцій.

У сучасних математичних пакетах розв'язання крайових задач для рівнянь з частинними похідними конкуренцію розглянутим методам складає метод скінчених елементів, що базується на концепціях метода Гальоркіна за умови спеціального вибору базисних функцій.


Література

1.Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков «Численные методы»

2.В.А.Буслов, С.Л.Яковлев «Численные методы ІІ.Решение уравнений».-Курс лекций,- СПб, 2001.

3.Н.Н.Калиткин «Численные методы»

4.А.А.Самарский, А.В.Гулин «Численные методы»,- Москва,- «Наука»,-1989г.

5.Б.П.Демидович, И.А.Марон, Э.Э.Шувалов «Численные методы анализа»,-ред. Б.П.Демидовича,- Москва,- «Наука»,- 1967г.