Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
В методичних вказівках подано методи переходу в...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.7 Mб
Скачать

1. 3. Метод сіток (ідея методу)

Метод сіток чи метод кінцевих різниць є найбільш розповсюдженим і ефективним методом чисельного рішення для рівнянь математичної фізики. Сутність його полягає в наступному. Область D неперервної зміни аргументів у заданій (початковій) задачі заміняється кінцевою дискретною безліччю крапок , названих сіткою. Як і у випадку звичайних диференціальних рівнянь, диференціальне рівняння в частинних похідних замінюється кінцево-різницевим рівнянням. При цьому похідні шуканої функції в обраних вузлах сітки заміняються розділеними різницями відповідно до формул (1.5), (1.8) і (1.10). Початкові і граничні умови замінюються різницевими початковими і граничними умовами. Отриману в такий спосіб систему кінцево-різницевих (алгебраїчних) рівнянь вирішуємо будь-яким методом і визначаємо значення шуканої функції у вузлах сітки, тобто одержуємо чисельне рішення поставленої задачі.

Сітка може бути побудована по-різному з урахуванням конкретних умов розв'язуваної задачі. На площині найчастіше застосовують прямокутні сітки. Прямокутна сітка утвориться системою прямих:

.

Постійні позитивні числа h і l називаються кроком сітки по осі Ох і Оу відповідно. Крапки перетинання прямих називаються в у з л а м и сітки. Функція, визначена у вузлах сітки, називається сітковою функцією. Вузол сітки називається внутрішнім, якщо всі його чотири сусідніх вузла належать області D. Похибка, одержувана в методі сіток, складається з похибки заміни диференціального рівняння різницевим рівнянням і похибки наближеного розв’язку системи різницевих рівнянь. Різницева задача повинна мати властивості стійкості і збіжності.

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

Якщо різницева схема, яка апроксимує задачу з порядком р>0 відносно h і l і стійка, тоді вона буде такою, що сходиться, і порядок її збіжності збігатиметься з порядком апроксимації.

Іі. Розв’язок змішаної задачі для рівняння теплопровідності методом сіток

2.1. Постановка задачі

Розглянемо змішану задачу для однорідного рівняння теплопровідності. Завдання полягає у відшуканні функції и(х, t), що задовольняє в області рівнянню

, (2.12)

початковій умові (2.13)

і граничним умовам

(2.l4)

Крайові умови (2.13), (2.14) відносяться до типу крайових умов першого роду.

Задача (2.12)—(2.14) називається змішаною, оскільки вона містить як початкові, так і граничні умови.

Будемо вважати, що задача (2.12)—(2.14) має єдиний розв’язок и(х, t), неперервний разом зі своїми похідними

Побудуємо в області прямокутну рівномірну сітку з кроком h у напрямку х і кроком - у напрямку t.

Позначимо вузли сітки через а наближені значення функції в цих вузлах — через .

Тоді: де

2.2. Явна різницева схема. Проблема стійкості

Як говорилося вище, в основі кінцево-різницевого методу (методу сіток) лежить заміна похідних відповідними кінцево-різницевими відношеннями. Підставивши замість їхні різницеві аналоги (1.5) і (1.10),одержимо наступну кінцево-різницеву схему:

(2.15)

яку, при підстановці , можна привести до вигляду:

(2.16)

Граничні умови (2.14) матимуть значення

. (2.18)

З початкової умови (2.13) маємо

(2.19)

Р івняння (2.16) називають явною різницевою схемой. Сукупність вузлів, які використовують при розв’язку задачі (2.1) – (2.14), називають шаблоном.

Різницевій схемі (2.16) відповідає шаблон, представлений на рис 1.

По формулі (2.16) можна обчислити значення шуканої функції у вузлах (к+1)-го часового шару, якщо відомі її значення у вузлах к-го шару. При k=0, тобто при , значення функції одержуємо з початкових умов

За відомим значенням розв’язку на нульовому тимчасовому шарі, тобто за значеннями иi,o, формула (2.16) дозволяє обчислити всі значення ui,1 (i=1,2,…n-1) на першому часовому шарі, потім при к =1 усі значення иi,2 (i = 1,2,..., n-l) на другому тимчасовому шарі і т.д. при к = 3,4,..., m. У крайньому лівому і правому вузлах кожного шару (i=0, i=n) значення функції визначаються з граничних умов (2.18):

.

Формула (2.16) дозволяє в явному вигляді одержувати рішення иi,k (i =1,2,..n-1, k=1,2,...m-1), тому різницева схема (2.15) називається явною.

Яка ж точність обчисленого наближеного розв’язку? Строгий аналіз цього питання представляє складну проблему. Спробуємо одержати деяке представлення про точність, розглянувши два аспекти аналізу похибок. Нехай и(х, t) точне рішення рівняння (2.12) з початковими (2.13) і граничними (2.14) умовами. Якщо підставити це точне рішення в різницеве рівняння (2.15), то воно задовольняється не цілком, з деякою похибкою, називаною л о к а л ь н о ю п о х и б к о ю апроксимації (дискретизації). Позначаючи через ri,k(h) похибку апроксимації задачі (2.12)—(2.14) різницевою схемою (2.15), з урахуванням похибок апроксимації частинних похідних (1.6) і (1.11), маємо:

.

Позначивши одержимо для оцінки локальної похибки апроксимації наступну нерівність

. (2.20)

Той факт, що у вираження для локальної похибки апроксимації величина входить у першому ступені, а h — у другому, звичайно формулюють у вигляді твердження, що кінцево-різницевий метод (2.16) має перший порядок точності за часом, і другий порядок точності по змінній х. Записується це у вигляді

(2.21)

Однак було б неправильно робити висновок з (2.21), що похибка апроксимації наближеного рішення иik, отримана по формулі (2.16), прямує до нуля при прямуванні до нуля і h. Такий висновок був би необґрунтований, оскільки (2.20) дає оцінку похибки наближеного рішення тільки для одного кроку за часом. Доказ того, що похибка апроксимації прямує до нуля на усьому відрізку [0,Т], вимагає додаткових даних про характер прямування до нуля і h. Співвідношення (2.21), чи в більш загальному випадку твердження про те, що при і локальна похибка апроксимації прямує до нуля, є, власне кажучи, необхідною умовою прямування до нуля глобальної похибки апроксимації (похибки наближеного рішення иik ) і називається умовою погодженості різницевої схеми. Те, що з погодженості різницевого методу не обов'язково випливає збіжність наближеного рішення до точного, зв'язано з проблемою стійкості різницевих схем. Це випливає з загального принципу, відомого як теорема еквівалентності Лакса, яка для дуже широкого класу диференціальних рівнянь і погоджених різницевих схем стверджує, що глобальна похибка апроксимації (похибка наближеного рішення иik) буде прямувати до нуля в тому і тільки в тому випадку, якщо використовуваний різницевий метод стійкий.

Доведено, що явна різницева схема (2.15) стійка за умови

, (2.22)

тому вона називається умовно стійкою. Нерівність (2.22) називають умовою стійкості явної різницевої схеми (2.15). Але ця умова відноситься також і до питання про прямування до нуля глобальної похибки апроксимації (похибки апроксимації наближеного рішення) при прямуванні до нуля h і .

При виконанні умов стійкості різницеві рівняння (2.l6) при сходяться до точного рішення крайової задачі зі швидкістю, обумовленою порядком апроксимації рівняння і крайових умов. Має місце оцінка:

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

. (2.23)

ІІІ. РОЗВ’ЯЗОК ЯВНОЇ РІЗНИЦЕВОЇ СХЕМИ

3.1. Обчислювальна схема (алгоритм)

1. У системі координат x0t будуємо прямокутну сітку з кроком h по осі Ох і з кроком по осі Ot:

а)

б)

в)

2. Обчислюємо значення функції у вузлах, що лежать на прямих х=0 і x=L:

де к=1,2,3,...m

3. Обчислюємо .

4. Використовуючи (2.16) чи (2.23), знайдемо рішення для усіх внутрішніх вузлів:

3.2. Блок-схема алгоритму Структурна схема програми розв’язку першої крайової задачі для рівняння параболічного типу за явною різницевою схемою методом сіток

3.3. Програма рішення першої крайової задачі для рівняння параболічного типу методом сіток (за явною схемою)

program Method_setok;

uses Crt;

type Table=array[0..100,0..100] of Real;

var u: Table; k,i,n,m: Integer; L,h,tay: Real;

function F(x: Real): Real; {u(x,0)}

begin F:=sin(x+1) end;

function Fi(x: Real): Real; {u(0,k)}

begin

Fi:=x+0.8415

end;

function Psi(x: Real): Real; {u(n,k)}

begin

Psi:=4*x+0.9093

end;

begin

ClrScr;

WriteLn('введіть L, крок по осі x (h), кількість часових шарів:');

ReadLn(L,h,m);

tay:=h*h/6;

n:=Trunc(L/h+0.5);

for k:=1 to m do begin

u[0,k]:=Fi(k*tay);

u[n,k]:=Psi(k*tay);

end;

for i:=1 to n-1 do u[i,0]:=f(i*h);

for i:=1 to n-1 do

for k:=0 to m-1 do

u[i,k+1]:=(u[i-1,k]+4*u[i,k]+u[i-1,k])/6;

WriteLn('Результати обчислень:');

Write(' ');

for i:=0 to n do Write(' ', i:4,' ');

WriteLn;

Write(' ');

for i:=0 to n do Write (' ',i*h:1:3);

for k:=0 to m do begin

WriteLn;

Write(k:2,' ');

for i:=0 to n do Write(u[i,k]:1:3,' ');

end;

WriteLn;

WriteLn('кількість кроків по осі OX = ', n:2);

WriteLn('крок розбиття = ', h:1:5);

WriteLn('крок по часовому шару = ', tay:1:5);

WriteLn('кількість кроків = ', m:2);

ReadKey

end.