Рассмотрим задачу о малых колебаниях натянутой струны с распределенной по длине нагрузкой f(x, t) (рис. 8.1):
utt = c2uxx + f(x, t), 0 < x < a, 0 < t < T, (8.11)
u(x, 0) = μ(x), ut(x, 0) = μ0(x), 0 < x < a, (8.12)
u(0, t) = μ1(t), u2(a, t) = μ2(t), 0 £ t £ T. (8.13)
Рис. 8.1
Струна совершает плоскиеколебания, т. е. точки струны перемещаются параллельно плоскости t = 0.
Функция u(х, t) выражает смещение точки х струны в момент времени t от прямолинейной формы.
Начальные условия (8.12) означают следующее. Форма струны в начальный момент времени t = 0 выражается функцией μ(x). Скорость перемещения точки х струны в момент времени t = 0 равна значению функции μ0(х).
Краевые условия (8.13) говорят о том, что левый конец струны с течением времени совершает смещение μ1(t), a правый конец – смещение μ2(t).
Если концы струны закреплены, то μ1(t) = μ2(t) = 0.
При этом предполагается, что начальные условия (8.12) и краевые условия (8.13) должны быть согласованы между собой в угловых точках, т. е. выполнены условия u(0, 0) = μ(0) = μ1(0), u(а, 0) = μ(a) = μ2(a).
Введем сеточную область (рис. 8.2, а). В прямоугольной области 0 £ x £ a,
0 £ t £ T зададим точки
(xi, tk), xi = ih, i = l,..., N;
tk = kτ, k = 0, 1, ... , M; τ = (8.14)
Рассмотрим уравнение (8.11) в точках (xi, tk), i = 1,..., N - 1, k = 1,..., М - 1, и заменим производные разностными формулами
utt(xi, tk)=
(8.15)
uxx(xi, tk)=
Обозначим через ui,k приближенные значения искомой (функции в точках (xi, tk). Тогда из уравнения (8.11) получим разностное уравнение (разностную схему), которое аппроксимирует уравнение (8.11) с порядком О(h2 + τ2):
(8.16)
i = 1,..., N - 1; k = 1,..., M - 1.
На рис. 8.2, б изображен шаблон «крест» разностного уравнения (8.16). Разностное уравнение (8.16) связывает значения неизвестной функции на трех слоях (k – 1, k, k + 1)
На слое k = 0 заданы начальные условия (8.12), из которых следует, что
ui,0 = μ(xi), i = 1, 2, ... , N - 1. (8.17)
Чтобы найти значения неизвестной функции на слое k = 1, используем условие для производной ut(x, 0) из (8.12). Для этого построим разложение в ряд Тейлора:
С учетом (8.13) окончательно получим для приближенных значений искомой функции на первом слое формулы
ui,1 = μ(xi) + μ0(xi)τ +
i = 1, 2,..., N - 1; u0,1 = μ1(t1), uN,1 = μ2(t1). (8.21)
Учитывая граничные условия (8.13), из (8.16) выводим формулы для вычисления значений на слоях k = 2,..., М:
u0,k = μ1(tk), uN,k = μ2(tk).
ui,k = 2ui,k-1 - ui,k-2 +
i = 1, 2,..., N - 1. (8.22)
Таким образом, получены явные формулы (8.17), (8.21), (8.22) решения разностной задачи.
Разностная схема называется устойчивой, если она имеет единственное решение и малым изменениям исходных данных отвечают малые изменения решения.
Известен следующий факт: для выполнения условия устойчивости разностной схемы (8.16) необходимо и достаточно, чтобы выполнялось условие Курантасτ < h.
Говорят, что решение разностной схемы (8.16) сходится к решению исходной задачи (8.11) – (8.13), если выполняется условие
при h ® 0 и τ ® 0.
Если разностная схема устойчива и аппроксимирует исходную задачу, решение разностной схемы сходится к решению задачи.
Сформулируем алгоритм решения задачи о колебаниях струны (8.11) –(8.13) с помощью явной разностной схемы (8.16).
1. Построить сеточную область
(xi, tk), xi = ih, i = 0, l,..., N;
tk = kτ, k = 0, 1, ... , M; τ =
выбирая шаги h и τ так, чтобы выполнялось условие устойчивости (условие Куранта) сτ < h.
2. Вычислить значения ui,k искомой функции для k = 0,1:
ui,0 = μ(xi), i = 0, 1, ... , N,
ui,1 = μ(xi) + μ0(xi)τ +
i = 1,..., N - 1; u0,1 = μ1(t1), uN,1 = μ2(t1). (8.23)
3. Вычислить значения ui,kдля k = 2,..., M:
u0,k = μ1(tk), uN,k = μ2(tk).
ui,k = 2ui,k-1 - ui,k-2 +
i = 1, 2,..., N - 1. (8.24)
Построим неявную схему для уравнения колебаний струны (8.11):
=
(8.25)
i = 1,..., N – 1; k = 1,..., M; .
Для устойчивости схемы (8.25) параметры с, h, τ, σ должны удовлетворять условию:
Если 1/4 £ σ £ 1/2, схема (8.25) безусловно устойчива.
Шаблон схемы (8.25) изображен на рис. 8.4
Значения решения на нулевом и первом слоях вычисляют по формулам (8.23). На каждом k-м слое (k = 2, 3, ... , М) решают методом прогонки систему уравнений относительно ui,k+1 i = 1, 2, ... , N - 1:
(8.26)
Алгоритм решения неявной разностной схемы для уравнения колебаний струны:
0. Построить сеточную область, выбирая шаги h, τ и параметр σ так, чтобы выполнялось условие устойчивости
Если 1/4 £ σ £ 1/2, можно выбирать h, τ произвольно.
1. Вычислить значения ui,k искомой функции для k = 0, 1:
ui,0 = μ(xi), i = 0, 1,..., N; (8.27)
ui,1 = μ(xi) + μ0(xi)τ + , (8.28)
i = 1,..., N – 1; u0,1 = μ1(t1), uN,1 = μ2(t2)
2. Значения ui,k+1 для каждого k > 0 находим методом прогонки.
2.1. Вычислим правые части (8.26):
(8.29)
i = 1,..., N – 1.
2.2. Вычислим прогоночные коэффициенты;
(8.30)
(8.31)
. (8.32)
2.3. Вычислим решение ui,k+1 :
u0, k + 1 = μ1(tk + 1), uN, k + 1 = μ2(tk + 1),
uN – 1, k + 1 = βN – 1, (8.33)
ui, k + 1 = αiui + 1, k + 1 + βi,
i = N – 2, N – 3,..., 1. (8.34)
Рассмотрим задачу для уравнения колебаний однородной прямоугольной мембраны:
utt = c2(uxx + uyy) + f(x, у, t), (8.35)
0 < x < a, 0 < y < b, 0 < t < T.
u(x, у, 0) = μ(x, у), 0 < х < a, 0 < у < b. (8.36)
ut(x, у, 0) = μ0(x, у), 0 < х < a, 0 < у < b. (8.37)