Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММФ_Гиперболические_уравнения.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
545.79 Кб
Скачать

1.3. Особенности построения разностной схемы для уравнения, записанного в цилиндрической системе координат.

Рассмотрим следующее гиперболическое уравнение, записанное в цилиндрической системе координат:

(2.15)

При построении разностной схемы будем использовать следующий шаблон (рис.6):

Рис.6.

Производная по времени записывается также как и п.2.1, а производная по пространству:

.

Здесь .

Тогда разностная схема для уравнения (2.15) будет иметь вид:

,

На первом шаге по времени: (k=0)

Граничные условия реализуются по аналогии с п.2.2, за исключением того случая, когда левая граница есть центр симметрии, т.е. . На такой границе должно быть задано условие симметрии: . Для нахождения решения на верхнем временном слое в узле i = 0, уравнение (1.11) нельзя применять, как это делалось в п.1.2 с уравнением (1.2), поскольку в данном случае существует особенность при .

Для устранения этой особенности перепишем уравнение (1.10) в виде . Устремляя к нулю и раскрывая по Лопиталю неопределенность , получим следующее уравнение в точке :

(2.16)

Записывая разностную схему для (2.16) и для граничного условия , получим следующее уравнения для нахождения функции на верхнем временном слое в узле i = 0:

, (2.17)

,

Условие устойчивости

Для краевых условий 2-го рода:

, k > 0

, k = 0

1.4. Пример решения гиперболического уравнения методом конечных разностей.

Решить краевую задачу

НУ: ; .

ГУ: ; .

Вывести график функции в точке .

Для решения данной задачи используем разностную схему (2.3), (2.6) и (2.8).

Ниже приведены примеры программ для численного решения поставленной задачи, реализованной для системы Mathcad, и написанной на языке Паскаль.

1.4.1. Программа на языке Паскаль.

Program Vibration;

uses crt,gra1;

Const

time_end=6.0;

{Задание числа отрезков разбиения области решения}

N=200;

{Расчет шага интегрирования по пространству}

h=1/N;

{Задание числа Куранта}

C=1.0;

{Расчет шага по времени из условия устойчивости}

tau=C*h;

Var

i,nt:integer;

U1,U,U0,X:array [0..N] of real;

time:real;

FirstStep:Boolean;

Begin

{Расчет координат узлов по пространству разностной сетки}

for i:=0 to N do X[i]:=h*i;

{Задание начального смещения}

for i:=0 to N do U[i]:=sin(Pi*X[i]);

time:=0; nt:=1;

{Построение координатных осей}

CoordOs(0,time_end,10,-1,1,10,'Time','U');

{Установление графического курсора в начальную точку}

FirstRis; Ris(time,U[N div 2],13);

FirstStep:=true;

while time<=time_end do begin

{Вычисление смещения в граничных точках на верхнем временном слое}

U1[0]:=0.0;

If FirstStep Then

U1[N]:=C*C*U[N-1]+(1.0-C*C)*U[N]

Else

U1[N]:=-U0[N]+2*C*C*U[N-1]+2*(1.0-C*C)*U[N];

{Вычисление смещений во внутренних точках на верхнем временном слое}

for i:=1 to N-1 do

If FirstStep Then

U1[i]:=0.5*C*C*U[i-1]+(1.0-C*C)*U[i]+0.5*C*C*U[i+1]

Else

U1[i]:=-U0[i]+C*C*U[i-1]+2*(1.0-C*C)*U[i]+C*C*U[i+1];

{Присвоение переменным U, хранящим значения функции

на старом временном слое, значений функции на новом временном слое}

for i:=0 to N do begin U0[i]:=U[i];U[i]:=U1[i] end;

time:=time+tau;

{Графический вывод смещений в середине струны}

Ris(time,U[N div 2],13);

FirstStep:=false;

end;

repeat

until keypressed;

end.

Результат решения приведен на рис.7.

Рис.7.