Файл: Mathematica для математиков. Часть Реализация основных понятий математического анализа.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 281
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Пример. Бесконечная плоскость. Начальная температура равна нулю везде,
кроме области квадрата
1
,
1 1
,
1
D
, в которой она равна единице.
Поскольку
y
x
y
x
2 1
,
, где
1
,
0 1
1
,
1
u
u
u
i
2
,
1
i
, то решение может быть представлено в форме (8). Имеем
????[????_] = ????????????????????????????????????[{{????, ???? ≤ −????}, {????, ???? < 1}}, ????];
???? =. ;
????[????_, ????_] = ????????????????????????????????????????????????[
????
????
????????????????????????????????????[????[???? + ???????? ????????]????????????[−????
????
],
????, −∞, ∞ , ???????????????????????????????????????????? ⧴ ???? > 0 && ???? > 0]]
1 2
Erf
1 − ????
2???? ????
+ Erf
1 + ????
2???? ????
Теперь построим анимацию решения. Вначале представим решение как поверхность (панель анимации показана на следующем рисунке слева).
???? = ????; ????[????_, ????_, ????_]: = ????[????, ????] ∗ ????[????, ????];
???? = ????????????????????????????????[????????????????[{????. ????????????}, ????????????????????[????. ???????? ∗ ????, {????, ????????}]]];
????????????????????????????[????????????????????????[????????????????????????????????[????[????, ????, ????]], {????, −????, ????}, {????, −????, ????},
???????????????????????????????????????? → ????????, ???????????????????????????????????? → ????, ???? , ???????????????? → ????????????????,
???????????????????????????????????? → ????], {????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
Во второй панели анимации представим решение контурным графиком (панель анимации показана на следующем рисунке справа).
????????????????????????????[{????????????????????????????????????????????[????[????, ????, ????], {????, −????, ????}, {????, −????, ????}, ???????????????????????????????? → ????????,
???????????????????????????????????????????????????? → ????????????, ???????????????????????????????????????????????????????????????????????????????? → ????????????????????,
???????????????????????????????????????? → ????????, ???????????????????????????????????? → ????????????????, ???????????????????????????????????? → ????],
????????????????????????????????????[{(????????????[#]&), {????, ????}}]},
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
163
□
3.8.3
Одномерные колебания
Поперечные колебания струны, продольные колебания упругого стержня и многие другие явления описываются одномерным волновым уравнением
t
x
f
u
a
u
x
x
t
t
,
2
(1)
Для однозначного определения решения необходимо задать начальные условия
x
x
u
0
,
,
x
t
x
u
t
,
'
(2) и граничные условия, если у колеблющегося объекта имеются границы.
Известно общее решение Даламбера задачи (1), (2) для неограниченной прямой [2]
t
t
a
x
t
a
x
at
x
at
x
d
d
f
a
d
a
at
x
at
x
t
x
u
0
,
2 1
)
(
2 1
2
)
(
)
(
)
,
(
(3)
0
,
t
x
. Формула (3) при любых функциях
x
x
,
и
t
x
f
,
дает решение уравнения (1).
Основная идея построения интегрального решения первой краевой задачи для одномерного волнового уравнения (1) на конечном отрезке [0,L] при начальных условиях
(2) и нулевых граничных условиях
0 0
)
,
(
,
0
)
,
0
(
t
t
L
u
t
u
состоит в следующем. В соответствии с методом продолжения выполняется нечетное периодическое продолжение начальных функций
x
x
,
и
t
x
f
,
на всю ось Ox [8]. Подстановка продолженных таким образом функций в (3) дает функцию u(x,t), являющуюся решением уравнения колебаний (1), удовлетворяющую на отрезке [0, L] начальным условиям (2) и обращающуюся в ноль на концах этого отрезка. Известно [8, 9], что результирующая формула может быть представлена в виде
))
2
,
(
(
)
1
(
))
2
,
(
(
)
1
(
2 1
)
,
(
L
at
x
stc
L
at
x
stc
t
x
u
L
t
a
x
L
t
a
x
t
L
t
a
x
stc
L
t
a
x
stc
L
t
a
x
stc
L
t
a
x
stc
d
f
d
a
d
a
0 2
,
2
,
2
,
2
,
,
2 1
2 1
0
,
0
t
L
x
(4) где квадратные скобки [z] используются для обозначения целой части числа z, а функция
w
x
stc ,
представляет периодическую пилообразную непрерывную кусочно-линейную функцию, определяемую формулой (2.6). Приведем ее здесь еще раз.
164
2 1
)
,
(
w
x
w
x
w
x
stx
или
w
x
w
w
x
stc
2
cos arccos
2
,
,
(5)
В части 2 п.2.4.5 мы рассмотрели несколько примеров, в которых полагали начальную скорость равной нулю
0
,
'
x
t
x
u
t
и
0
,
t
x
f
. Если положить начальное смещение и внешнее усилие равными нулю
0
x
и
0
,
t
x
f
, то решение примет вид
L
t
a
x
stc
L
t
a
x
stc
d
a
t
x
u
2
,
2
,
2 1
)
,
(
0
,
0
t
L
x
(6)
Во всех примерах этого пункта будем полагать скорость распространения колебаний равной единице
1
a
Пример. Конечная струна длины L=1, закрепленная на концах. Начальное
смещение ноль. Начальная скорость в форме ступеньки. Струна возбуждается ударом жесткого плоского молоточка, сообщающего ей начальное распределение скоростей
L
x
c
c
x
c
v
c
x
x
t
u
t
,
0
,
0
,
0 0
0
,
где с – координата середины точки удара, δ – полуширина ступеньки.
Пусть начальная скорость всюду ноль, кроме отрезка [0.4, 0.6], где она равна единице, т.е.
6 0
4 0
,
0 6
0 4
0
,
1 0
,
'
x
x
x
x
x
u
t
. Решение будем строить, используя формулу (6). Определим функцию
w
x
stc ,
????????????[????_, ????_] = ???????????? ???? − ???? ????????????????????
????
????
+
????
????
;
????????????????[????????????[????, ????], {????, −????, ????}, ???????????????????????????????????????????? → ????????????????????????????????????]
Создадим функцию начальной скорости
x
????[????_] = ????????????????????????????????????[{{????, ???? ≤ ????. ????}, {????, ???? < 0.6}}, ????];
????????????????[????[????], {????, ????, ????}]
Создаем функцию решения и строим анимацию.
???? =. ; ????[????_, ????_] =
????
????????
????????????????????????????????[????????????????????????????????????[????[????], {????, ????, ????},
???????????????????????????????????????????? ⧴ ???? > ???? && ???? > ????]]
????[????_, ????_] = ????[????, ????]/. {???? → ????????????[???? − ????????, ????????], ????−> ????????????[???? + ????????, ????????]};
???? = ????; ???? = ????;???? = ????????????????????[????, ????. ????????, ????. ????????];
165
????????????????????????????[
???????????????? ???? ????, ???? , ????, ????, ???? , ???????????????????????????????????? → −????. ????????, ????. ???????? , ???????????????????????????????????? → ???? ,
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На следующем рисунке показаны профили струны в некоторые последовательные моменты времени.
Для этой краевой задачи в литературе приводится решение в виде ряда Фурье
([2], стр. 156-157)
1 2
2 0
sin sin sin sin
1 4
)
,
(
k
L
t
a
k
L
x
k
L
k
L
c
k
k
a
L
v
t
x
u
Вод код для построения формы струны с помощью ряда.
???? = ????; ???? = ????; ???????? = ????; ???? = ????. ????; ???? = ????. ????;
????????[????_, ????_] =
????????????????
????
????
????
????????????[
????
????
????
????????????[
????????????
????
]????????????[
????????????
????
]????????????[
????????????
????
]????????????[
????????????????
????
], {????, ????, ????????}];
????????????????????????[????????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
???????????????????????????????????? → ????????????????, ???????????????????????????????????? → {????, ????}]
На предыдущем рисунке слева представлены профили струны в дискретные моменты времени
4 0
0
t
(период колебаний равен 2). Как видим, решения полученные обоими способами, совпадают. Но во втором решении мы ограничили сумму 50 – ю слагаемыми, и поэтому оно является приближенным.
Если построить график решения в близкий к нулевому момент времени, то осцилляции, создаваемые частичной суммой ряда Фурье, будут заметны.
????????????????[????????[????, ????. ????????????], {????, ????, ????}] (* предыдущий рисунок справа *)
Это связано с тем, что точное (обобщенное) решение принадлежит классу C
0
, а не
C , которому принадлежит частичная сумма ряда Фурье.
□
Пример. Конечная струна, закрепленная на концах. Начальное смещение ноль.
Внешнее усилие ноль. Начальная скорость в форме трапеции.
Создаем функцию
x
????????????????????[????, ????, ????, ????, ????, ????, ????, ????, ????];
???? ????_ = ???????? ????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}]
166
Поскольку функция Integrate умеет работать с кусочными функциями, то при построении решения будем использовать ее (а не NIntegrate).
????[????_, ????_] =
????
????????
????????????????????????????????[????????????????????????????????????[????[????], {????, ????, ????},
???????????????????????????????????????????? ⧴ ???? > 0 && ???? > 0]];
????[????_, ????_] = ????[????, ????]/. {???? → ????????????[???? − ????????, ????????], ????−> ????????????[???? + ????????, ????????]};
???? = ????; ???? = ????; ???? = ????????????????????[????, ????. ????????, ????. ????????];
????????????????????????????[
????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {−????. ????????, ????. ????????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На следующем рисунке показана панель анимации в некоторые последовательные моменты времени.
Здесь мы использовали код, создающий функцию stc, из предыдущего примера. Заметим, что при создании функции решения u(x,t) можно было бы использовать функцию NIntegrate, например так
????[????_, ????_] ≔ (???? = ????????????[???? − ????????, ????????]; ???? = ????????????[???? + ????????, ????????];
????
????????
????????????????????????????????????????[????[????], {????, ????, ????}]);
Однако в этом случае вычисления будут выполняться значительно дольше.
□
При решении одномерного волнового уравнения на конечном отрезке часто используется метод разделения переменных. Рассмотрим, к каким формулам приводит этот метод при решении 1 – й краевой задачи для конечной струны.
Пусть
0
,
t
x
f
, начальные условия имеют вид (2)
x
x
u
0
,
,
x
t
x
u
t
,
'
L
x
0
,
(2) граничные условия равны 0 (
0
,
,
0
t
L
u
t
u
) и согласованы с начальными условиями, т.е.
0 0
L
. Разложим функции
x
x
,
на отрезке [0,L] в ряд по синусам.
1
sin
n
n
L
x
n
x
, где
x
d
L
x
n
x
L
L
n
sin
2 0
1
sin
n
n
L
x
n
x
, где
x
d
L
x
n
x
L
L
n
sin
2 0
Тогда функция
167
L
t
a
n
L
x
n
a
n
L
L
t
a
n
L
x
n
t
x
u
n
n
n
sin sin cos sin
,
1
(7) будет представлять решение уравнения (1), удовлетворять начальным условиям
(2) и нулевым граничным условиям. То, что функция
t
x
u , удовлетворяет уравнению (1) и нулевым граничным условиям следует из того, что каждое слагаемое в (7) удовлетворяет уравнению и граничным условиям. Выполнение начальных условий проверяется подстановкой t=0 в выражение (7) и в ее производную по t. Действительно, из (7) при t=0 сразу получаем
1
sin
0
,
n
n
x
L
x
n
x
u
. Далее из (7) имеем
x
L
x
n
L
a
n
L
t
a
n
L
x
n
a
n
L
x
u
n
n
t
n
n
t
1 0
1
sin cos sin
0
,
'
Таким образом, алгоритм решения уравнения колебаний конечной струны с закрепленными концами и нулевым внешним усилием состоит в следующем.
Надо разложить начальные функции
x
x
,
на отрезке [0,L] в ряд по синусам и, зная коэффициенты
n
n
,
построить ряд (7). Напишем общую процедуру решения уравнения колебаний конечной струны с закрепленными концами, реализующую формулу (7). Имеем
????????????????????[????????????????????????????????????????]
???????????????????????????????????????? = ????????????????????????????????[{????, ????, ????, ????, ????, ????, ????}, ????????????????????[{????????, ????????, ????????, ????????},
???????? = ????????????????[????[????????????????????????????????????????????????????????????????[????[????], ????, ????,
???????????????????????????????????????????????????????????????????? → {????, ????/????}]]];
???????? = ????????????????[????[????????????????????????????????????????????????????????????????[????[????], ????, ????,
???????????????????????????????????????????????????????????????????? → {????, ????/????}]]];
???????? = ????????/. {????????????[????_] → ????????????[????]????????????[
????
????
????????]};
???????? = ????????/. {????????????[????_] → ????????????[????]????????????[
????
????
????????]/(????/????)};
???????? + ????????]];
Функция solFourier возвращает выражение частичной суммы (7), приближающей решение u(x,t). Она принимает следующие аргументы: идентификаторы/имена переменных x и t, значение параметра a из уравнения
(1), длину отрезка L, функции начального смещения φ и начальной скорости ψ
(не выражения), количество членов n
частичной суммы Фурье. Протестируем созданную функцию.
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме треугольника.
Создаем функцию смещения
x
????[????_] = ????????????????????????????????????[{{????, ???? ≤ ????. ????}}, ???? − ????];
????????????????[????[????], {????, ????, ????}]
168
Создаем функцию решения u(x,t) и строим график
????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&,50];
????????????????????????[????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
????????????????????????????????????−> ????????????????, ????????????????????????????????????−> {????, ????}]
Обратите внимание на то, как мы задаем нулевую скорость – в виде чистой функции 0&.
Сравните с решением этой задачи в п.2.4.5 (пример 5.4) предыдущей части. Решения идентичны, если не обращать внимание на то, что частичная сумма представляет приближенное решение. Выбор количества членов ряда равное 50 делает погрешность вычислений малой.
□
Пример. Конечная струна, закрепленная на концах. Начальное смещение ноль.
Начальная скорость в форме трапеции.
????[????_] = ????????????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????&, ????, ????????];
????????????????????????[????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
????????????????????????????????????−> ????????????????, ????????????????????????????????????−> {????, ????}]
Сравните с решением этой задачи, полученной нами в этом пункте ранее.
Решения идентичны.
□
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме кубической параболы.
????[????_] = ???? ????
????
(???? − ????);
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
169
???? = ????; ????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&,50];
???? = ????????????????????[????, ????. ????????????, . ????????????];
????????????????????????????[????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????????]},
???????????????????????????????????? → {−????. ????????, ????. ????????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На рисунке показана панель анимации в моменты времени t = 0.25, 0.4, 0.6, 0.7,
1.0.
□
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме трапеции.
????[????_] = ????????????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
???? = ????; ????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&, ????????];
???? = ????????????????????[????, ????. ????????????, . ????????????];
????????????????????????????[????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????????]},
???????????????????????????????????? → {−????. ????, ????. ????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На рисунке показана панель анимации в моменты времени t = 0, 0.05, 0.1,
0.125, 0.2. Обратите внимание на кадр в момент времени t=0. На графике видна некоторая рябь, что вызвано недостаточной точностью приближения решения частичной суммой с 50 – ю членами.
□
Выше мы рассмотрели несколько примеров, в которых полагали внешнее усилие равным нулю
0
,
t
x
f
. Если положить начальное смещение и скорость равным нулю
0
x
и
0
x
, то для конечного отрезка решение (4) примет вид
кроме области квадрата
1
,
1 1
,
1
D
, в которой она равна единице.
Поскольку
y
x
y
x
2 1
,
, где
1
,
0 1
1
,
1
u
u
u
i
2
,
1
i
, то решение может быть представлено в форме (8). Имеем
????[????_] = ????????????????????????????????????[{{????, ???? ≤ −????}, {????, ???? < 1}}, ????];
???? =. ;
????[????_, ????_] = ????????????????????????????????????????????????[
????
????
????????????????????????????????????[????[???? + ???????? ????????]????????????[−????
????
],
????, −∞, ∞ , ???????????????????????????????????????????? ⧴ ???? > 0 && ???? > 0]]
1 2
Erf
1 − ????
2???? ????
+ Erf
1 + ????
2???? ????
Теперь построим анимацию решения. Вначале представим решение как поверхность (панель анимации показана на следующем рисунке слева).
???? = ????; ????[????_, ????_, ????_]: = ????[????, ????] ∗ ????[????, ????];
???? = ????????????????????????????????[????????????????[{????. ????????????}, ????????????????????[????. ???????? ∗ ????, {????, ????????}]]];
????????????????????????????[????????????????????????[????????????????????????????????[????[????, ????, ????]], {????, −????, ????}, {????, −????, ????},
???????????????????????????????????????? → ????????, ???????????????????????????????????? → ????, ???? , ???????????????? → ????????????????,
???????????????????????????????????? → ????], {????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
Во второй панели анимации представим решение контурным графиком (панель анимации показана на следующем рисунке справа).
????????????????????????????[{????????????????????????????????????????????[????[????, ????, ????], {????, −????, ????}, {????, −????, ????}, ???????????????????????????????? → ????????,
???????????????????????????????????????????????????? → ????????????, ???????????????????????????????????????????????????????????????????????????????? → ????????????????????,
???????????????????????????????????????? → ????????, ???????????????????????????????????? → ????????????????, ???????????????????????????????????? → ????],
????????????????????????????????????[{(????????????[#]&), {????, ????}}]},
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
163
□
3.8.3
Одномерные колебания
Поперечные колебания струны, продольные колебания упругого стержня и многие другие явления описываются одномерным волновым уравнением
t
x
f
u
a
u
x
x
t
t
,
2
(1)
Для однозначного определения решения необходимо задать начальные условия
x
x
u
0
,
,
x
t
x
u
t
,
'
(2) и граничные условия, если у колеблющегося объекта имеются границы.
Известно общее решение Даламбера задачи (1), (2) для неограниченной прямой [2]
t
t
a
x
t
a
x
at
x
at
x
d
d
f
a
d
a
at
x
at
x
t
x
u
0
,
2 1
)
(
2 1
2
)
(
)
(
)
,
(
(3)
0
,
t
x
. Формула (3) при любых функциях
x
x
,
и
t
x
f
,
дает решение уравнения (1).
Основная идея построения интегрального решения первой краевой задачи для одномерного волнового уравнения (1) на конечном отрезке [0,L] при начальных условиях
(2) и нулевых граничных условиях
0 0
)
,
(
,
0
)
,
0
(
t
t
L
u
t
u
состоит в следующем. В соответствии с методом продолжения выполняется нечетное периодическое продолжение начальных функций
x
x
,
и
t
x
f
,
на всю ось Ox [8]. Подстановка продолженных таким образом функций в (3) дает функцию u(x,t), являющуюся решением уравнения колебаний (1), удовлетворяющую на отрезке [0, L] начальным условиям (2) и обращающуюся в ноль на концах этого отрезка. Известно [8, 9], что результирующая формула может быть представлена в виде
))
2
,
(
(
)
1
(
))
2
,
(
(
)
1
(
2 1
)
,
(
L
at
x
stc
L
at
x
stc
t
x
u
L
t
a
x
L
t
a
x
t
L
t
a
x
stc
L
t
a
x
stc
L
t
a
x
stc
L
t
a
x
stc
d
f
d
a
d
a
0 2
,
2
,
2
,
2
,
,
2 1
2 1
0
,
0
t
L
x
(4) где квадратные скобки [z] используются для обозначения целой части числа z, а функция
w
x
stc ,
представляет периодическую пилообразную непрерывную кусочно-линейную функцию, определяемую формулой (2.6). Приведем ее здесь еще раз.
164
2 1
)
,
(
w
x
w
x
w
x
stx
или
w
x
w
w
x
stc
2
cos arccos
2
,
,
(5)
В части 2 п.2.4.5 мы рассмотрели несколько примеров, в которых полагали начальную скорость равной нулю
0
,
'
x
t
x
u
t
и
0
,
t
x
f
. Если положить начальное смещение и внешнее усилие равными нулю
0
x
и
0
,
t
x
f
, то решение примет вид
L
t
a
x
stc
L
t
a
x
stc
d
a
t
x
u
2
,
2
,
2 1
)
,
(
0
,
0
t
L
x
(6)
Во всех примерах этого пункта будем полагать скорость распространения колебаний равной единице
1
a
Пример. Конечная струна длины L=1, закрепленная на концах. Начальное
смещение ноль. Начальная скорость в форме ступеньки. Струна возбуждается ударом жесткого плоского молоточка, сообщающего ей начальное распределение скоростей
L
x
c
c
x
c
v
c
x
x
t
u
t
,
0
,
0
,
0 0
0
,
где с – координата середины точки удара, δ – полуширина ступеньки.
Пусть начальная скорость всюду ноль, кроме отрезка [0.4, 0.6], где она равна единице, т.е.
6 0
4 0
,
0 6
0 4
0
,
1 0
,
'
x
x
x
x
x
u
t
. Решение будем строить, используя формулу (6). Определим функцию
w
x
stc ,
????????????[????_, ????_] = ???????????? ???? − ???? ????????????????????
????
????
+
????
????
;
????????????????[????????????[????, ????], {????, −????, ????}, ???????????????????????????????????????????? → ????????????????????????????????????]
Создадим функцию начальной скорости
x
????[????_] = ????????????????????????????????????[{{????, ???? ≤ ????. ????}, {????, ???? < 0.6}}, ????];
????????????????[????[????], {????, ????, ????}]
Создаем функцию решения и строим анимацию.
???? =. ; ????[????_, ????_] =
????
????????
????????????????????????????????[????????????????????????????????????[????[????], {????, ????, ????},
???????????????????????????????????????????? ⧴ ???? > ???? && ???? > ????]]
????[????_, ????_] = ????[????, ????]/. {???? → ????????????[???? − ????????, ????????], ????−> ????????????[???? + ????????, ????????]};
???? = ????; ???? = ????;???? = ????????????????????[????, ????. ????????, ????. ????????];
165
????????????????????????????[
???????????????? ???? ????, ???? , ????, ????, ???? , ???????????????????????????????????? → −????. ????????, ????. ???????? , ???????????????????????????????????? → ???? ,
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На следующем рисунке показаны профили струны в некоторые последовательные моменты времени.
Для этой краевой задачи в литературе приводится решение в виде ряда Фурье
([2], стр. 156-157)
1 2
2 0
sin sin sin sin
1 4
)
,
(
k
L
t
a
k
L
x
k
L
k
L
c
k
k
a
L
v
t
x
u
Вод код для построения формы струны с помощью ряда.
???? = ????; ???? = ????; ???????? = ????; ???? = ????. ????; ???? = ????. ????;
????????[????_, ????_] =
????????????????
????
????
????
????????????[
????
????
????
????????????[
????????????
????
]????????????[
????????????
????
]????????????[
????????????
????
]????????????[
????????????????
????
], {????, ????, ????????}];
????????????????????????[????????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
???????????????????????????????????? → ????????????????, ???????????????????????????????????? → {????, ????}]
На предыдущем рисунке слева представлены профили струны в дискретные моменты времени
4 0
0
t
(период колебаний равен 2). Как видим, решения полученные обоими способами, совпадают. Но во втором решении мы ограничили сумму 50 – ю слагаемыми, и поэтому оно является приближенным.
Если построить график решения в близкий к нулевому момент времени, то осцилляции, создаваемые частичной суммой ряда Фурье, будут заметны.
????????????????[????????[????, ????. ????????????], {????, ????, ????}] (* предыдущий рисунок справа *)
Это связано с тем, что точное (обобщенное) решение принадлежит классу C
0
, а не
C , которому принадлежит частичная сумма ряда Фурье.
□
Пример. Конечная струна, закрепленная на концах. Начальное смещение ноль.
Внешнее усилие ноль. Начальная скорость в форме трапеции.
Создаем функцию
x
????????????????????[????, ????, ????, ????, ????, ????, ????, ????, ????];
???? ????_ = ???????? ????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}]
166
Поскольку функция Integrate умеет работать с кусочными функциями, то при построении решения будем использовать ее (а не NIntegrate).
????[????_, ????_] =
????
????????
????????????????????????????????[????????????????????????????????????[????[????], {????, ????, ????},
???????????????????????????????????????????? ⧴ ???? > 0 && ???? > 0]];
????[????_, ????_] = ????[????, ????]/. {???? → ????????????[???? − ????????, ????????], ????−> ????????????[???? + ????????, ????????]};
???? = ????; ???? = ????; ???? = ????????????????????[????, ????. ????????, ????. ????????];
????????????????????????????[
????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {−????. ????????, ????. ????????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На следующем рисунке показана панель анимации в некоторые последовательные моменты времени.
Здесь мы использовали код, создающий функцию stc, из предыдущего примера. Заметим, что при создании функции решения u(x,t) можно было бы использовать функцию NIntegrate, например так
????[????_, ????_] ≔ (???? = ????????????[???? − ????????, ????????]; ???? = ????????????[???? + ????????, ????????];
????
????????
????????????????????????????????????????[????[????], {????, ????, ????}]);
Однако в этом случае вычисления будут выполняться значительно дольше.
□
При решении одномерного волнового уравнения на конечном отрезке часто используется метод разделения переменных. Рассмотрим, к каким формулам приводит этот метод при решении 1 – й краевой задачи для конечной струны.
Пусть
0
,
t
x
f
, начальные условия имеют вид (2)
x
x
u
0
,
,
x
t
x
u
t
,
'
L
x
0
,
(2) граничные условия равны 0 (
0
,
,
0
t
L
u
t
u
) и согласованы с начальными условиями, т.е.
0 0
L
. Разложим функции
x
x
,
на отрезке [0,L] в ряд по синусам.
1
sin
n
n
L
x
n
x
, где
x
d
L
x
n
x
L
L
n
sin
2 0
1
sin
n
n
L
x
n
x
, где
x
d
L
x
n
x
L
L
n
sin
2 0
Тогда функция
167
L
t
a
n
L
x
n
a
n
L
L
t
a
n
L
x
n
t
x
u
n
n
n
sin sin cos sin
,
1
(7) будет представлять решение уравнения (1), удовлетворять начальным условиям
(2) и нулевым граничным условиям. То, что функция
t
x
u , удовлетворяет уравнению (1) и нулевым граничным условиям следует из того, что каждое слагаемое в (7) удовлетворяет уравнению и граничным условиям. Выполнение начальных условий проверяется подстановкой t=0 в выражение (7) и в ее производную по t. Действительно, из (7) при t=0 сразу получаем
1
sin
0
,
n
n
x
L
x
n
x
u
. Далее из (7) имеем
x
L
x
n
L
a
n
L
t
a
n
L
x
n
a
n
L
x
u
n
n
t
n
n
t
1 0
1
sin cos sin
0
,
'
Таким образом, алгоритм решения уравнения колебаний конечной струны с закрепленными концами и нулевым внешним усилием состоит в следующем.
Надо разложить начальные функции
x
x
,
на отрезке [0,L] в ряд по синусам и, зная коэффициенты
n
n
,
построить ряд (7). Напишем общую процедуру решения уравнения колебаний конечной струны с закрепленными концами, реализующую формулу (7). Имеем
????????????????????[????????????????????????????????????????]
???????????????????????????????????????? = ????????????????????????????????[{????, ????, ????, ????, ????, ????, ????}, ????????????????????[{????????, ????????, ????????, ????????},
???????? = ????????????????[????[????????????????????????????????????????????????????????????????[????[????], ????, ????,
???????????????????????????????????????????????????????????????????? → {????, ????/????}]]];
???????? = ????????????????[????[????????????????????????????????????????????????????????????????[????[????], ????, ????,
???????????????????????????????????????????????????????????????????? → {????, ????/????}]]];
???????? = ????????/. {????????????[????_] → ????????????[????]????????????[
????
????
????????]};
???????? = ????????/. {????????????[????_] → ????????????[????]????????????[
????
????
????????]/(????/????)};
???????? + ????????]];
Функция solFourier возвращает выражение частичной суммы (7), приближающей решение u(x,t). Она принимает следующие аргументы: идентификаторы/имена переменных x и t, значение параметра a из уравнения
(1), длину отрезка L, функции начального смещения φ и начальной скорости ψ
(не выражения), количество членов n
частичной суммы Фурье. Протестируем созданную функцию.
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме треугольника.
Создаем функцию смещения
x
????[????_] = ????????????????????????????????????[{{????, ???? ≤ ????. ????}}, ???? − ????];
????????????????[????[????], {????, ????, ????}]
168
Создаем функцию решения u(x,t) и строим график
????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&,50];
????????????????????????[????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
????????????????????????????????????−> ????????????????, ????????????????????????????????????−> {????, ????}]
Обратите внимание на то, как мы задаем нулевую скорость – в виде чистой функции 0&.
Сравните с решением этой задачи в п.2.4.5 (пример 5.4) предыдущей части. Решения идентичны, если не обращать внимание на то, что частичная сумма представляет приближенное решение. Выбор количества членов ряда равное 50 делает погрешность вычислений малой.
□
Пример. Конечная струна, закрепленная на концах. Начальное смещение ноль.
Начальная скорость в форме трапеции.
????[????_] = ????????????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????&, ????, ????????];
????????????????????????[????[????, ????], {????, ????, ????}, {????, ????, ????. ????}, ???????????????? → {????, ????????}, ???????????????????????????????????????? → ????????,
????????????????????????????????????−> ????????????????, ????????????????????????????????????−> {????, ????}]
Сравните с решением этой задачи, полученной нами в этом пункте ранее.
Решения идентичны.
□
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме кубической параболы.
????[????_] = ???? ????
????
(???? − ????);
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
169
???? = ????; ????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&,50];
???? = ????????????????????[????, ????. ????????????, . ????????????];
????????????????????????????[????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????????]},
???????????????????????????????????? → {−????. ????????, ????. ????????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На рисунке показана панель анимации в моменты времени t = 0.25, 0.4, 0.6, 0.7,
1.0.
□
Пример. Конечная струна, закрепленная на концах. Начальная скорость 0.
Начальное смещение в форме трапеции.
????[????_] = ????????????????????????????????????????????[{{????, ???? ≤ ????. ????}, {???? − ????. ????, ???? < 0.7}, {????. ????, ???? ≤ ????. ????},
{????. ???? − ????, ???? ≤ ????. ????}}, ????];
????????????????[????[????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????]}]
???? = ????; ????[????_, ????_] = ????????????????????????????????????????[????, ????, ????, ????, ????, ????&, ????????];
???? = ????????????????????[????, ????. ????????????, . ????????????];
????????????????????????????[????????????????[????[????, ????], {????, ????, ????}, ???????????????????????????????????? → {????????????????????, ????????????????????????????????????[????. ????????????]},
???????????????????????????????????? → {−????. ????, ????. ????}, ???????????????????????????????????? → ????],
{????, ????}, ???????????????????????????????????????????????????????????????? → ????????????????????]
На рисунке показана панель анимации в моменты времени t = 0, 0.05, 0.1,
0.125, 0.2. Обратите внимание на кадр в момент времени t=0. На графике видна некоторая рябь, что вызвано недостаточной точностью приближения решения частичной суммой с 50 – ю членами.
□
Выше мы рассмотрели несколько примеров, в которых полагали внешнее усилие равным нулю
0
,
t
x
f
. Если положить начальное смещение и скорость равным нулю
0
x
и
0
x
, то для конечного отрезка решение (4) примет вид