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

9. 2 . Обчислювальна схема рішення задачі

1. Вибираємо крок сітки h по осі х і крок по осі t, з урахуванням (передбачається, що усі величини задачі виміряються в сумісних одиницях).

2. Привласнюємо .

3. Обчислюємо за формулою (9.36) значення рішення на нульовому шарі (k=0): i=1,2,3,…n-1...

4. Обчислюємо за формулою (9.38) значення рішення на першому шарі (k=l): .

5. З граничних умов знаходимо значення функції u(x,t) у граничних вузлах: .

6. Знаходимо рішення на (k+1)-м шарі, виходячи зі значень на k-м і (k-l)-м шарах за формулою (9.35):

де i=1,2,…(n-1); k=1,2,…(m-1).

(no «к » — зовнішній цикл, по «і» — внутрішній цикл).

9.3. Структурна схема програми рішення змішаної задачі для хвильового рівняння методом сіток

9. 4. Программа рішення змішаної задачі для хвильового рівняння методом сіток

program metod_Sіtoc_for_Wave_Equ;

uses Crt;

type

Matrix=array [0..20,0..20] of real;

Vector=array [0..20] of real;

const

L=1; h=0.1; tay=0.05; m=10;

var

u: Matrix;

p,q: Vector;

k,i,n:integer;

lambda,ld:real;

function F(x:real):real; {u[i,0]}

begin F:=x*(1-x) end;

function G(x:real):real; {u[i,1]}

begin G:=cos(x); end;

function Fi(x:real):real; {u[0,k]}

begin Fi:=0; end;

function Psi(x:real):real; {u[n,k]}

begin Psi:=2*(x+1);end;

begin

ClrScr;

n:=trunc(L/h+0.5); {клькість точок по осі х задання початкових значень вузлів}

for k:=0 to m do begin

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

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

for i:=1 to (n-1) do begin

u[i,0]:=f(i*h);u[i,1]:=u[i,0]+tay*G(i*h);

end;

{основна обчислювальна процедура}

for k:=1 to m-1 do begin

for i:=1 to n-1 do begin

u[i,k+1]:=2*(1-sqr(lambda))*u[i,k]+sqr(lambda)*(u[i+1,k]+u[i-1,k])-

u[i,k-1];

end;

end;

{вивід результатів}

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

Write(' ');

for i:=0 to n do

write(' ',i:2,' ');

writeln;

Write(' ');

for i:=0 to n do

write(' ',i*h:1:2,' ');

for k:=0 to m do begin

writeln;

write(k:2,' ');

for i:=0 to n do begin

write(u[i,k]:1:3,' ');

end;

end;

writeln;

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

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

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

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

ReadKey

end.

X. Лабораторна робота 4

РІШЕННЯ ЗМІШАНОЇ ЗАДАЧІ ДЛЯ ХВИЛЬОВОГО РІВНЯННЯ МЕТОДОМ СІТОК

Завдання. Методом сіток вирішити змішану задачу для хвильового рівняння

в області з початковими умовами і граничними умовами

Рішення виконати з h=0,1, .

Варіанти індивідуальних завдань

варі

анту

1

2

3

4

5

1

2х +1

2t+1

0

2

0,5x(x+1)

Xcosx

2t2

1

3

0,5(x2+1)

1-x2

0,5+3t

1

4

1-x2

0,5t

2

5

(1+x)x2

0,5t

t-1

6

2x+0,6

1+0,4t

0

7

(x+0,5)2

0,5(0,5+t)

2,25

8

1,5x-x2

0

0,5+2t

9

(x+0,5)(x+1)

0,5

3-3t

10

0,5(x+1)2

0,5

2-3t

11

x(x+1)

Cos x

0

2(t+1)

12

x(2-x)

2t

-1

13

x2

1+2t

0

14

(x+0,5)(x-1)

t-0,5

3t

15

2x(x+1)+0,3

2sint

0,3

4,3+t

16

1+x2

0

1,2(t+1)

17

(x+1)2

2t

0

18

3x(1-x)

2t

0

19

x(2x-0,5)

cos2x

t2

1,5

20

x+x2

0

0,5t

21

(x+1)2

0,5t

0

22

(x+0,6)2

0,5t

0

23

2x2

0

t2

24

0,3(1+x2 )

0,4

1,2t

25

x+1-x2

2sin(x+0,4)

1

(1+t)2

Варіанти індивідуальних завдань(закінчення )

26

0,4(x+0,5)2

xsin(x+0,5)

0,1+0,5t

0,9+t

27

(x+0,5)2

0,5

2t-1,5

28

(x+2)(0,5x+1)

2cosx

2

4,5-3t

29

(1+x2)(1-x)

1-sinx

1

0,5t

30

1+x2

0,6t

1,5t