Смекни!
smekni.com

Дослідження збіжності рішень для диференціальних рівнянь у частинних похідних, отриманих методом сіток (стр. 5 из 5)

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

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

Поняття стійкості та коректності

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

Задача називається стійкою за вхідними даними, якщо її розвязок неперервно залежить від вхідних даних, тобто малому приросту ∆х вхідної величини відповідає малий приріст ∆у шуканого розв'язку. Іншими словами, малі похибки вхідних даних спричинюють малі похибки розв'язку задачі. Якщо ця умова не виконується, то задача вважається нестійкою за вхідними даними. Це означає, що навіть незначні похибки вхідних даних можуть привести до як завгодно великих похибок розв'язку, тобто розв'язок може бути зовсім спотворений. Тому застосовувати безпосередньо до таких задач чисельні методи не можна, оскільки похибки округлень при застосуванні методу будуть катастрофічно нагромаджуватись у ході обчислень. Наведемо приклад нестійкої задачі, який належить Уілкінсону.

Введемо тепер поняття коректності задачі.

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

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

Програмна реалізація

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

Область:

Початкові умови:

Граничні умови:

Крок по осі Х: hx=0,1

Крок по осі Y: hy=0,05

Реалізуємов Pascal

Const

n = 10;

m = 10;

hx = 1/n;

hy = 0.05;

l = hy/hx;

Var

u:Array [0..n,0..m] of Real;

i,j:Integer;

fo:Text;

Function f(x:Real):Real;

begin

f:=(1-x)*cos(Pi*x/2);

end;

Function g(x:Real):Real;

begin

g:=2*x+1;

end;

Function fi(y:Real):Real;

begin

fi:=2*y+1;

end;

Function psi(t:Real):Real;

begin

psi:=0;

end;

Begin

For i:=1 to n-1 do begin

u[i,0]:=f(i*hx);

u[i,1]:=f(i*hx)+hy*g(i*hx);

end;

For j:=0 to m do begin

u[0,j]:=fi(j*hy);

u[n,j]:=psi(j*hy);

end;

For j:=1 to m-1 do

For i:=1 to n-1 do

u[i,j+1]:=2*(1-sqr(l))*u[i,j]+sqr(l)*(u[i+1,j]+u[i-1,j])-u[i,j-1];

Assign(fo,'result.txt');

ReWrite(fo);

For j:=m downto 0 do begin

Write(fo,j*hy:4:2,' |');

For i:=0 to n do Write(fo,u[i,j]:8:4);

WriteLn(fo);

end;

For j:=1 to 94 do Write(fo,'-');

WriteLn(fo);

Write(fo,' y/x |');

For j:=0 to n do Write(fo,j*hx:8:4);

Close(fo);

End.

RESULT.txt

0.50 | 2.0000 1.8693 1.7537 1.6381 1.5294 1.4450 1.2724 0.9448 0.6245 0.3283 0.0000

0.45 | 1.9000 1.7551 1.6251 1.4873 1.3910 1.3473 1.2499 0.9784 0.6246 0.3280 0.0000

0.40 | 1.8000 1.6447 1.4945 1.3467 1.2658 1.2361 1.1839 0.9914 0.6389 0.3198 0.0000

0.35 | 1.7000 1.5355 1.3646 1.2229 1.1533 1.1193 1.0828 0.9644 0.6616 0.3114 0.0000

0.30 | 1.6000 1.4248 1.2419 1.1171 1.0498 1.0019 0.9612 0.8913 0.6724 0.3127 0.0000

0.25 | 1.5000 1.3121 1.1338 1.0257 0.9511 0.8863 0.8323 0.7809 0.6480 0.3258 0.0000

0.20 | 1.4000 1.2018 1.0433 0.9427 0.8549 0.7734 0.7041 0.6502 0.5763 0.3380 0.0000

0.15 | 1.3000 1.1015 0.9672 0.8628 0.7602 0.6636 0.5797 0.5145 0.4635 0.3252 0.0000

0.10 | 1.2000 1.0172 0.8986 0.7834 0.6670 0.5569 0.4600 0.3823 0.3289 0.2658 0.0000

0.05 | 1.1000 0.9489 0.8308 0.7037 0.5754 0.4536 0.3451 0.2562 0.1918 0.1556 0.0000

0.00 | 1.0000 0.8889 0.7608 0.6237 0.4854 0.3536 0.2351 0.1362 0.0618 0.0156 0.0000

y/x | 0.0000 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Длядослідженнязбіжностірозв’язкуданоїзадачі, змінимокрокрозбиттясітки. Наприклад, візьмемо крок, в двічі менший, як по осі X, так і осі Y і знайдемо розв’язок за допомогою цієї ж програми.

Отримаємо:

0.50 | 2.0000 1.7347 1.5044 1.2505 0.6479 0.0000

0.40 | 1.8000 1.4766 1.2682 1.1311 0.6793 0.0000

0.30 | 1.6000 1.2472 1.0499 0.9330 0.6538 0.0000

0.20 | 1.4000 1.0568 0.8517 0.6944 0.5347 0.0000

0.10 | 1.2000 0.9008 0.6654 0.4551 0.3218 0.0000

0.00 | 1.0000 0.7608 0.4854 0.2351 0.0618 0.0000

-----------------------------------------------------------------

y/x | 0.0000 0.2000 0.4000 0.6000 0.8000 1.0000

Крок був взятий так, щоб можна було порівняти розв’язок в окремих вузлах, як в першому, так і в другому випадку. Методом порівняння можна побачити, що розв’язок в вузлах сітки дещо відрізняється. З цього можна зробити висновок, що на збіжність розв’язку також впливає такий фактор, як крок розбиття сітки.

Виконаємо також обчислення в середовищі Excel і порівняємо отримані дані.

З отриманого результату, що наведений дещо нижче, можна зробити висновок, що отримані дані співпадають, що свідчить о вірності розв’язку задачі, хоча і мають різну точність, що пов’язана з точністю обчислення (в Pascal точність залежить від типу змінної).



Узгодженість і збіжність

Різницева схема, що сходиться, повинна давати рішення, яке прагне істинного рішення ДР при подрібненні сітки. Порушення збіжності може бути обумовлено наступними причинами:

Неузгодженість PC з початковим ДР. При подрібненні сітки значення шуканої функції при заданих незалежних змінних прагне певної межі. але ця межа не співпадає з істинним рішенням.

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

Математичні основи питань збіжності добре розвинені тільки для лінійних ДР. Результати лінійної теорії використовуються у вигляді навідних міркувань для нелінійних задач, а їх застосовність перевіряється потім в ході обчислювального експерименту. Для лінійних ДУ в ЧП існує т.н, теорема Лакса, яка говорить, що за наявності стійкості апроксимація є необхідною і достатньою умовою збіжності PC.

апроксимація + стійкість => збіжність PC

У вживанні до нелінійних ДР в ЧП використовування теореми Лакса припускає використовування принципу "заморожених" коефіцієнтів. Під методом "заморожених" коефіцієнтів розуміють простий прийом, коли коефіцієнти в ДР замінюють деякими константами і аналізують одержане ДУ з постійними коефіцієнтами. Якщо аналіз показує нестійкість PC для "заморожених" коефіцієнтів, то таку схему виключають з розгляду. Якщо ж схема для рівняння з "замороженими" коефіцієнтами буде злагодженою і стійкою, тобто надія, що ця схема буде тією, що сходиться і для нелінійного ДР.

Так, щоб бути упевненим, що PC, що використовується, дає рішення, що сходиться при подрібненні сітки до істинного рішення початкового ДР, необхідно довести її узгодженість і стійкість.

Погрішність апроксимації

PC апроксимації ДР злагоджена з початковим ДР (або апроксимує ДР), якщо в межі, коли розміри осередків сітки прагнуть нуля, PC еквівалентна даному ДР в кожній з вузлових точок, тобто

PC і ДР при цьому записують, перекидаючи всі члени в одну сторону (щоб з другого боку залишився нуль).

Кількісною характеристикою узгодженості є погрішність (помилка) апроксимації ДР даної PC

Е=(РС-ДУ).

В термінах погрішності апроксимації: PC злагоджена з своїм ДР, якщо погрішність апроксимації у всіх вузлах сітки прагне нуля при будь-якому подрібненні кроків сітки.

Провідні члени погрішності називаються порядком апроксимації ДР даної PC.

Як правило:

• для тих PC, що сходяться помилка чисельного рішення зменшується подібно погрішності апроксимації;

• порядок апроксимації ДР (провідні члени погрішності апроксимації) визначається порядком точності формул, використаних для апроксимації похідних;

• для злагоджених явних PC можна встановити співвідношення між кроками сітки, при виконанні якого досягається більш високий порядок апроксимації.


Висновок

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

Стосовно самої теми курсової роботи, треба відзначити, що збіжність рішень ДРЧП досягається, в першу чергу через теорему Лакса – апроксимація + стійкість породжує збіжність. Також треба зазначити, що на збіжність також впливає, хоча і в меншій мірі, вибір кроку розбиття сітки, а також різноманітні похибки, хоча вони і не значно впливають на розв’язок, проте дещо спотворюють його. Тому, щоб досягти найбільш точного і оптимального рішення потрібно враховувати всі фактори, що можуть впливати на збіжність і точність даного розв’язку.


Література

Ляшенко М.Я., Головань М.С. Чисельні методи.-К.: Либідь, 1996.-288с.

http://www.software.unn.ac.ru/ccam/files/HTML_Version/index.html

http://www.arptek.ru/i18n

Лекції по чисельним методам Л.Д. Назаренко.

http://www.ict.nsc.ru/rus/texbooks/akhmerov/matmodel/2-4-7.html

http://www.nsc.ru/rus/textbooks/akhmerov/ode/s-33/s-33.html