Примеры волн
Убедившись, что это сомнительное на вид сооружение хоть на чём-то но работает, можно посмотреть как это новый «агрегат» отработает на других примерах, которые уже были изучены. Из бесконечности:
http://akostina76.ucoz.ru/blog/2017-03-10-3936
… я буду брать пока 5 слагаемых в надежде на то, что точность будет приемлемой.
Здесь у меня был пример аккуратно бегущей волны (в виде косинуса):
http://akostina76.ucoz.ru/blog/2017-02-17-3863
Чтобы побежала такая волна мне потребовались такие начальные условия:
Начальная форма волны φ(x)=cos(2*x)
Скорость в начальный момент: ψ(x) = 6 sin(2x).
Константа волнового уравнения a=2. Промежуток «x» (т.е длина «струны») у меня был взят от 0 до 6.
Получилось так:
Это похоже на то, что было:
.. но не то.
Если посмотреть чуть дальше, т.е за две первые секунды а не за одну, то будет так:
Похоже на то, что самая большая волна отразилась и пошла обратно.
На 10 секундах это видно особо хорошо:
При этом довольно логичен вопрос, откуда тут вообще взялась самая большая волна. Ведь начальные условия, конкретно начальная форма волны это косинус.
Самое время посмотреть, что приближение 5-ю слагаемыми сотворило с видом волны в начальный момент времени.
Это так:
Синим у меня нарисован косинус заданного начального условия φ(x), а красным та форма, которая посчитана как начальная. Отклонение в начале и в конце большое, и это очень здорово потому, что в начальных условия у меня задана откровенная чушь. Ведь струна закреплена и отклонений в начале и конце быть не может, а по начальным условиям получается, что они есть. Вычисленный начальный вид функции похож на форму φ(x) но не имеет этой проблемы, т.е по краям то самое нулевое отклонение которое и должно быть.
Из чего вывод: в этот «агрегат» можно засунуть даже явную чушь; что можно он сделает и нарисует нечто настолько похожее насколько это возможно.
Можно немного подправить начальные условия чтобы сделать их элементарно корректными.
Я возьму начальное значение φ(x) такое: φ(x) = cos(2*x)* sin(x*Pi/6). И получу такое:
… т.е сходство уже более чем достаточное. Зелёным нарисован тот синус, на который умножен старый вариант φ(x). Это позволяет плавно снизить до нуля амплитуду на концах струны, что мне и нужно было.
Теперь то, как всё это считалось:
Тексты:
L:=6:
a:=2:
fi_0:=unapply(cos(2*y)*sin(y*Pi/6),y);
psi_0:=unapply(6*sin(2*y),y);
a_1:=int(psi_0(y)*sin(1*Pi*y/L),y=0..L)/(1*Pi*a);
a_2:=int(psi_0(y)*sin(2*Pi*y/L),y=0..L)/(2*Pi*a);
a_3:=int(psi_0(y)*sin(3*Pi*y/L),y=0..L)/(3*Pi*a);
a_4:=int(psi_0(y)*sin(4*Pi*y/L),y=0..L)/(4*Pi*a);
a_5:=int(psi_0(y)*sin(5*Pi*y/L),y=0..L)/(5*Pi*a);
b_1:=2*int(fi_0(y)*sin(1*Pi*y/L),y=0..5)/L;
b_2:=2*int(fi_0(y)*sin(2*Pi*y/L),y=0..5)/L;
b_3:=2*int(fi_0(y)*sin(3*Pi*y/L),y=0..5)/L;
b_4:=2*int(fi_0(y)*sin(4*Pi*y/L),y=0..5)/L;
b_5:=2*int(fi_0(y)*sin(5*Pi*y/L),y=0..5)/L;
u_1:=(x,t)->a_1*sin(1*Pi*a*t/L)*sin(1*Pi*x/L)+a_2*sin(2*Pi*a*t/L)*sin(2*Pi*x/L)+a_3*sin(3*Pi*a*t/L)*sin(3*Pi*x/L)+a_4*sin(4*Pi*a*t/L)*sin(4*Pi*x/L)+a_5*sin(5*Pi*a*t/L)*sin(5*Pi*x/L);
u_2:=(x,t)->b_1*cos(1*Pi*a*t/L)*sin(1*Pi*x/L)+b_2*cos(2*Pi*a*t/L)*sin(2*Pi*x/L)+b_3*cos(3*Pi*a*t/L)*sin(3*Pi*x/L)+ b_4*cos(4*Pi*a*t/L)*sin(4*Pi*x/L)+b_5*cos(5*Pi*a*t/L)*sin(5*Pi*x/L);
u:=(x,t)->u_1(x,t)+u_2(x,t);
plot3d(u(x,t),x=0..6,t=0..10,axes=boxed,style=patch);
plot([u_1(x,0)+u_2(x,0),fi_0(x),sin(x*Pi/6)],x=0..6,axes=boxed,color=[red,blue,green],scaling=constrained);
Никакие константы у меня с ростом номера слагаемого не обнуляются, но все интегралы как-то берутся в аналитическом виде и определённые интегралы в коэффициентах A_n, B_n считаются.
Пусть теперь у меня пример единственной волны в начале струны, т.е самый первый, из того, что было тут:
http://akostina76.ucoz.ru/blog/2017-02-16-3862
Все коэффициенты A_n равны нулю потому что ψ(x)=0. А вот интегралы в B_n оказались неберущимися:
Площадь под графиком такой функции конечно есть, а вот функции, производная которой даёт такую функцию (которая в интеграле) в природе не существует. Значит посчитать значение интеграла аналитически не получится, только численно. А это не проблема (функция evalf):
Посчитал Maple как-то эту площадь. Наверное не прямоугольниками, как показано тут:
http://akostina76.ucoz.ru/blog/2017-02-22-3882
… а хотя бы трапециями, но этот численный расчёт точно дело не хитрое.
Различие начальных условий (заданного от рассчитанного):
А вот это мне совсем не нравиться. И даже не потому, что приближение (красная функция) получило аж два лишних «горба». Уж очень просится сдвинуть начальное значение φ(x) (показанное синим) вправо хотя бы на единицу. Ведь начальный импульс похож скорее на то, что получилось при приближении. Его вершина должна быть чуть правее начала «струны».
Сдвигаю функцию на единицу вправо, чуть меняя её аргумент:
Начальное отклонение:
Уже лучше во всяком случае.
Я могу и больше слагаемых взять. Например 10. А чтобы убрать отклонение в начале струны я могу сжать φ(x) точно таким же синусом как в прошлом примере. Получится так:
… т.е сама картина отклонения заданного (синее) от расчетного никуда не ушла. Интерпретировать я это не возьмусь, только констатировать. Если у меня тут нигде не наврано, то это означает, что не бывает воздействия, вызывающего такую начальную форму струны.
Показанное объясняет, почему всё это требует осторожности и стыковки с хоть какой-то известной информацией (чем чаще тем лучше). Это только в давно известные формулы может пролезть опечатка, которую при подозрениях легко устранить просто проверив формулу в других источниках. Обычно же исследуется что-то новое и решаются задачи, которое не решались раньше. Вот получила я какой-то результат. Это что? Ошибка в формулах, засунутых в Maple или «закон», утверждающий, что волны по одной не ходят?
Но что есть, то есть.
Картина похожа на то, что было раньше:
… т.е явно волна болтается туда-сюда.
А если посмотреть на всё это сильно сбоку:
… и посчитать, что большие положительные значения это, например, волна сжатия при ударе по горлышку бутылки, а большие отрицательные значения это волна растяжения, возникающая при отражении волны от донышка бутылки, то видно, что только возле донышка (справа) бывают очень большие волны растяжения (те самые, которые могут оторвать дно, особенно если там в конкретном месте максимума подпил, а в бутылке увеличивающая вес вода). Волны сжатия там тоже бывают, но они меньше тех, что бывают слева (где, в свою очередь не бывают таких больших волн растяжения). Из чего вывод: если порвётся, то скорее у всё того же донышка, потому укреплять конструкцию от разрыва при ударных нагрузках надо там, а не возле горлышка этой «условной бутылки».
Проверять подобные «смелые утверждения» экспериментом вовсе не обязательно сразу на подводной лодке. Можно и на описанной бутылке.
Тексты:
L:=6:
a:=2:
fi_0:=unapply(sin(y*Pi/6)/exp((y-1)*(y-1)),y);
psi_0:=unapply(0*y,y);
b_1:=2*evalf(int(fi_0(y)*sin(1*Pi*y/L),y=0..5)/L);
b_2:=2*evalf(int(fi_0(y)*sin(2*Pi*y/L),y=0..5)/L);
… остальное как в предыдущем примере.
p/s
Там-таки, была ошибка в формуле. Начальные условия совпадают до неотличимого состояния:
Всё остальное не поменялось (т.е вид решения не поменялся). А вот не проверь я эти начальные условия (чего никто формальное не требует) и не возникло бы повода искать, что происходит.
|