Реферат: Решение смешанной задачи для уравнения гиперболического типа методом сеток
u3 - рабочий массив из k действительных чисел.
Выходные параметры :
u1 - массив из n действительных чисел, содержащий значение решения из j - м временном слое, j = 1, 2, ... ;
u2 - массив из n действительных чисел, содержащий значение решения из ( j +1) - м временном слое, j = 1, 2, ... .
К части программы, обозначенной как Subroutine GIP3 Begin ... End происходит циклическое обращение, пеоред первым обращением к программе элементам массива u2 присваиваются начальные значения, а элементам массива u1 - значения на решения на первом слое, вычислинные по формулам (6). При выходе из подпрограммы GIP3 в массиве u2 находится значение решения на новом временном слое, а в массиве u1 - значение решения на предыдущем слое.
Порядок работы программы:
1) описание массивов u1, u2, u3;
2) присвоение фактических значений параметрам n, hx, ht, облюдая условие Куранта;
3) присвоение начального значения решения элементам массива и вычисленное по формулам (6) значение решения на первом слое;
4) обращение к GIP3 в цикле k-1 раз, если требуется найти решение на k-м слое ( k ³ 2 ).
Пример:
1 0.5 0.5 |
Решить задачу о колебании струны единичной длины с закрепленными концами, начальное положение которой изображено на рисунке. Начальные скорости равны нулю. Вычисления выполнить с шагом h по x, равным 0.1, с шагом t по t, равным 0.05, провести вычисления для 16 временных слоев с печатью результатов на каждом слое. Таким образом, задача имеет вид
( ¶ 2 u/ ¶ t2 ) = ( ¶ 2 u/ ¶ x 2 ) , x Î [0,1] , tÎ[0,T] ,
u (x,0)=f (x) , xÎ[0,a], ¶u(x,0)/¶ t=g(x), xÎ[0,a],
u ( 0 , t ) = 0, u ( 1 , t ) = 0, t Î [ 0 , 0.8 ],
æ 2x , x Î [0,0.5] ,
f(x) = í g( x ) = 0
î 2 - 2x , x Î [0.5,1] ,
Строим сетку из 11 узлов по x и выполняем вычисления для 16 слоев по t. Программа, и результаты вычисления приведены далее.
Приложение 1
(пример выполнения лабораторной работы)
Программа решения смешанной задачи для уравнения гиперболического типа методом сеток.
Program Laboratornaya_rabota_43;
Const
hx = 0.1 ; { Шаг по x - hx }
ht = 0.05 ; { Шаг по t - ht }
n = 11 ; { Количество узлов }
Function f(x : Real) : Real; { Данная функция }