Смешанная задача для уравнения гиперболического типа
Категория реферата: Рефераты по математике
Теги реферата: реферат по физике, реферат по философии
Добавил(а) на сайт: Adelina.
Предыдущая страница реферата | 1 2
u2 - массив из n действительных чисел, содержащий значение решений на j - м временном слое, j = 1, 2, ... ;
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 ).
Пример:
Решить задачу о колебании струны единичной длины с закрепленными концами, начальное положение которой изображено на рисунке. Начальные скорости равны нулю. Вычисления выполнить с шагом 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. Программа, и результаты вычисления приведены далее. { ************************************************************* } { Приложение 3 ( выполнения лабораторной работы. Вариант 12) } { ------------ } { Программа решения смешанной задачи для уравнения гиперболи- } { ческого типа методом сеток. } { Выполнил студент гр. МС-2136 Осинцев А.В. } { ************************************************************* } Program Laboratornaya_rabota_43_variant_12; Const hx = 0.1 ; { Шаг по x - hx } ht = 0.05 ; { Шаг по t - ht } n = 11 ; { Количество узлов } Function f(x : Real) : Real; { Данная функция } { вычисляющая решение при t=0 } Begin f := sin(pi * x) * cos(x); End; Function g(x : Real) : Real; { Данная функция } { вычисляющая производную решения при t=0 } Begin g := 0; End; Var xp : Array[1..n] of Real; i,j,n1 : Word; x,t,a1,b1 : Real; u1,u2,u3 : Array[1..n] of Real; Begin n1 := n; WriteLn('Приложение 4'); WriteLn('------------'); WriteLn('Результат, полученный при вычислении программы :'); WriteLn; xp[1] := 0; xp[n] := 1; For i := 2 to ( n - 1 ) do Begin x := (i-1) * hx; xp[i] := x; u1[i] := f(x); { u(x,0) на 0 слое } u2[i] := u1[i] + ht * g(x); { u(x,ht) на 1 слое } End; { /// Задание граничных условий } u1[1] := 0 ; { u(0,0) } u1[n] := 0 ; { u(1,0) } u2[1] := 0 ; { u(0,ht) } u2[n] := 0 ; { u(1,ht) } u3[1] := 0 ; { u(0,2ht) } u3[n] := 0 ; { u(1,2ht) } { /// Печать заголовка } Write(' '); For i := 1 to n do Write(' x=', xp[i]:1:1); WriteLn; t := 0; { /// Печать решения на нулевом слое } Write('t=',t:2:2,' '); For i := 1 to n do If u1[i] >= 0 then Write(' ',u1[i]:3:3) else Write(u1[i]:3:3) ; t := t + ht; { /// Печать решения на первом слое } WriteLn; Write('t=',t:2:2,' '); For i := 1 to n do If u2[i] >= 0 then Write(' ',u2[i]:3:3) else Write(u2[i]:3:3); For j := 1 to 15 do Begin {Subroutine GIP3 Begin} n1 := n1-1; {Вычисление параметра сетки для проверки условия Куранта} a1 := ht/hx; if a1 > 1 then WriteLn('Нарушено условие Куранта') else Begin b1 := a1 * a1; a1 := 2 * ( 1 - b1); {Вычисление решения на очередном слое} For i := 2 to n do u3[i] := a1*u2[i] + b1 * (u2[i+1] + u2[i-1]) - u1[i]; For i := 2 to n do Begin u1[i] := u2[i]; u2[i] := u3[i] End; End; u1[n] := 0; u2[n] := 0; u3[n] := 0; {Subroutine GIP3 End} t := t + ht; WriteLn; Write('t=',t:2:2,' '); For i := 1 to n do {Вывод результатов} If u2[i] >= 0 then Write(' ',u2[i]:3:3) else Write(u2[i]:3:3); End; WriteLn; WriteLn; End.Скачали данный реферат: Gribov, Iljuhin, Лосевский, Левченко, Дырбов, Регина.
Последние просмотренные рефераты на тему: диплом купить, сочинение 7, охрана труда реферат, тесты онлайн.
Предыдущая страница реферата | 1 2