Содержание Назад

1 MAIN PART Parabol.
2 BEGIN
3       Wx : (i=1..M).
4       Wt : (j=1..K).
5       Wxt : (Wx;Wt).
6       Wx1 : Wx-LEFT(1)-RIGHT(1).
7       Wt1 : Wt-LEFT(1).
8       Wxt1 : (Wx1;Wt1).
9       Wxt2 : ((i=1); Wt1).
10       Wxt3 : ((i=M); Wt1).
11       VARIABLE u0, u1 DEFINED ON Wt1 DOUBLE.
12       VARIABLE u DEFINED ON Wxt DOUBLE.
13       DOMAIN PARAMETERS M=11, K=21.
14       EXTERNAL FUNCTION BOUND DOUBLE.
15       INPUT u0(FILE='parabol') ON Wt1.
16       INPUT u1(FILE='parabol') ON Wt1.
17       FOR Wxt2 ASSUME u=u0.
18       FOR Wxt3 ASSUME u=u1.
19       FOR Wxt/j=1 ASSUME u=BOUND(i,M).
20       FOR Wxt1 ASSUME u=(u[i+1,j-1]+u[i-1,j-1])/2.0.
21       OUTPUT u(FILE='parabol.out') ON Wxt.
22 END PART.
      
23 FUNCTION BOUND DOUBLE.
24       k1,k2
25 BEGIN
26       VARIABLE k1,k2 DOUBLE.
27       VARIABLE pi DOUBLE.
28       pi=3.1415.
29       BOUND=SIN(pi*k1/k2).
30 END PART.

 

Рассмотрим эту программу более подробно (используемые ниже номера совпадают с нумерацией строк программы).

(1) Заголовок главного раздела программы Parabol.

(2) Начало главного раздела.

(3-5) Определяются одномерные области Wx, Wt и многомерная область Wxt.

(6-7) Определяются одномерные области Wx1, Wt1 с помощью операций модификации области (исключаются границы областей Wx и Wt).

(8) Определяется многомерная область Wxt1 - область, на которой производится расчет (i=2..M-1; j=2..K).

(9-10) Определяются Wxt2, Wxt3 - области, на которых определены начальные значения задачи.

(11-12) Описание переменных u0, u1 и u. u0 - значения u(0,t), u1 - значения u(1,t), u - результат решения уравнения.

(13) Задание параметров областей (количество шагов по оси x - 10, по оси t - 20).

(14) Описание внешней функции пользователя.

(15-16) Ввод начальных данных u0 и u1 из файла parabol.dat, содержащего следующие строки:

u0(j=2..21)=20(0.0);
u1(j=2..21)=20(0.0);

(17-18) Задание значений u(0,t) и u(1,t).

(19) Задание значений u(x,0), происходит вызов функции пользователя BOUND.

(20) Вычисления u по соответствующей разностной схеме.

(21) Вывод результата в файл parabol.out

(22) Конец главного раздела.

(23) Заголовок внешней функции пользователя BOUND.

(24) Обозначение входных k1, k2 параметров функции.

(25) Начало функции пользователя.

(26) Описание переменных , являющихся параметрами функции - k1, k2.

(27-28) Описание переменной pi.

(29) Вычисление значения функции.

(30) Конец функции пользователя.

 


Содержание Назад