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

Страницы работы

Содержание работы

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

 (рівняння теплопровідності)

при заданих початкових умовах . Розв’язок  виконати при  по аргументу х та  по аргументу .

7.

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

При рішенні вихідної задачі:

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

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

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

4.  Використовуючи першу формулу з різницевої явної схеми  і, враховуючи, що , отримаємо. Так знайдемо розв’язок для всіх внутрішніх вузлів: , .

Опишемо алгоритм в середовищі програмування Turbo Pascal:

Program Laba_10;

Const

  n = 10;

  m = 10;

  hx = 0.1;

  ht = 0.01/6;

Var

  i,j:Integer;

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

  fo:Text;

Function g(x:Real):Real;

begin

  g:=cos(2*x);

end;

Function a(t:Real):Real;

begin

  a:=1-2*t;

end;

Function b(t:Real):Real;

begin

  b:=-0.4161+t;

end;

Procedure Javnaja_Shema;

Begin

  For j:=0 to m-1 do

   For i:=1 to n-1 do

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

  ReWrite(fo);

  WriteLn(fo,'Javnaja Shema:');

 For j:=m downto 0 do

   For i:=0 to n do

If i=n   then WriteLn(fo,u[i,j]:7:4)

else Write(fo,u[i,j]:7:4);

  Close(fo);

End;

begin

For j:=0 to m do begin

    u[0,j]:=a(j*ht);

    u[n,j]:=b(j*ht);

  end;

For i:= 1to n-1         do

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

  Assign(fo,'Lab10.txt');

  Javnaja_Shema;

end.

Отримали такий результат:

Javnaja Shema:

 0.9667 0.9290 0.8656 0.7731 0.6520 0.5055 0.3389 0.1587-0.0286-0.2165-0.3994

 0.9700 0.9334 0.8705 0.7780 0.6563 0.5088 0.3412 0.1598-0.0285-0.2174-0.4011

 0.9733 0.9378 0.8755 0.7829 0.6606 0.5122 0.3435 0.1610-0.0284-0.2182-0.4028

 0.9767 0.9424 0.8807 0.7880 0.6650 0.5157 0.3458 0.1621-0.0284-0.2191-0.4044

 0.9800 0.9471 0.8860 0.7931 0.6694 0.5191 0.3481 0.1633-0.0284-0.2201-0.4061

 0.9833 0.9519 0.8915 0.7983 0.6739 0.5226 0.3505 0.1644-0.0284-0.2210-0.4078

 0.9867 0.9569 0.8971 0.8036 0.6784 0.5261 0.3528 0.1655-0.0285-0.2221-0.4094

 0.9900 0.9621 0.9029 0.8090 0.6829 0.5296 0.3552 0.1666-0.0286-0.2232-0.4111

 0.9933 0.9676 0.9089 0.8144 0.6875 0.5331 0.3576 0.1677-0.0288-0.2244-0.4128

 0.9967 0.9736 0.9149 0.8199 0.6921 0.5367 0.3600 0.1688-0.0290-0.2257-0.4144

 1.0000 0.9801 0.9211 0.8253 0.6967 0.5403 0.3624 0.1700-0.0292-0.2272-0.4161

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
61 Kb
Скачали:
0