Сохранен 87
https://2ch.hk/sci/res/322417.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

2D сеть из осцилляторов

 Аноним 31/12/15 Чтв 00:33:23 #1 №322417 
14515112032210.webm
Решил поиграться с осцилляциями. Для этого выбрал систему из NxN клеток, каждая из которых представляет собой грузик, соединенный с четырьмя соседями пружиной. У каждого грузика есть своя координата вдоль оси z, при этом константа жесткости пружины, умноженная dz, выражает силу растягивания пружины. Также есть вязкое трение, пропорциональное скорости.
Все грузики на краю пластины заморожены, а грузик в самом центре перемещается по закону 0.1sin(wt) - это источник возбуждения колебаний в пластинке.

Написал в питоне небольшой код для решения получившегося дифференциального уравнения. Вот, собственно, сами уравнения для клетки с координатами i,j:
a(i,j) = k(z(i-1,j) + z(i+1,j) + z(i,j-1) + z(i,j+1) - 4z(i,j)) - uv
v(i,j) = v(i,j) + a
dt
x(i,j) = x(i,j) + v*dt

Константы, которые я выбрал:
k = 1
u = 0.05
dt = 0.1

На видео показана пластинка (цвет обозначает координату z) с частотой вынуждающего колебания w=0.3.


Но вообще я менял частоту колебания от 0 до 2 по линейному закону со скоростью 0.000001. В основе лежит следующая идея: у моей двухмерной пластинки должны быть какие-то свои характеристические частоты. Когда частота вынуждающего колебания приблизится к характеристической частоты пластинки, то в результате резонанса амплитуда колебаний возрастет.
Поэтому в каждый данный конкретный момент времени я записывал w <z^2>, а в конце построил зависимость одного от другого. В результате получился "спектр".

/Продолжение в следующем посте с картинками/
Аноним 31/12/15 Чтв 00:44:52 #2 №322421 
14515118924020.png
/продолжение/

Для маленьких пластинок на "спектре" видны отдельные "полосы поглощения" (я не знаю, как это правильно назвать, буду использовать привычные мне термины). Я так понимаю, это и есть собственные характеристические частоты пластинки. Только я не понимаю, почему их именно столько: 2 для 3х3, 4 для 5х5, 6 для 7х7. С чем это связано? Не должно ли количество пиков в спектре равняться числу независимых координат (N*N - 1). Или в системе просто присутствует большая вырожденность?

Также мне непонятно, почему частоты пиков не стоят равноудаленно. Здесь же совершенно гармоническая система, поэтому обертона должны быть в целое число раз больше частоты первого перехода.

Другой вопрос - после каждого пика идут какие-то странные колебания?

Ну и главное - что вообще происходит с большими пластинками? Почему там нет четкой первой частоты и ее обертонов, а все просто превращается в кашу?


Недолгий гуглеж по моим вопросам мне никак не помог, реквестирую знатоков.
Аноним 31/12/15 Чтв 00:48:09 #3 №322422 
14515120894470.png
Так выглядит спектр пластинки 47х47. Полная каша.
Аноним 31/12/15 Чтв 02:23:59 #4 №322434 
>>322421
>Не должно ли количество пиков в спектре равняться числу независимых координат (N*N - 1). Или в системе просто присутствует большая вырожденность?
А ты не можешь посмотреть, что у тебя там за колебания возникают? Подозреваю вырожденность за счет того, что квадрат, повернутый на 90 градусов, дает тот же квадрат, плюс то, что ты не активизировал моды колебаний, в которых центральный грузик остается неподвижным, а они по идее должны быть.
Но я не уверен в своих предположениях, возможно, это бред.
Аноним 31/12/15 Чтв 17:36:54 #5 №322530 
Ну вот видите, да? Полтора дифура, полтора примитивных клеточных автомата. Полностью детерминированное поведение. И хуй проссышь откуда такие неоднозначные результаты симуляции, напрямую не выводимые из этих полутора дифуров. А теперь представим 100млрд нейронов, у каждого из которых может быть по паре тысяч синапсов, не считая внесинаптических контактов. Поведение как будто тоже можно описать неким набором дифуров, тут вопросов нет. Но очевидно же, что взаимодействия в такой системе - нечто большее чем свойства ее отдельных элементов и к таковым несводимо. Поэтому подобный подход (все эти коннектомы, проекты blue brain, вот это все вотетавот) по-сути, путь в никуда, т.к. оргпнизовать полноценную симуляцию все равно никаких гугловских кластеров не хватит, а по отдельности там что-то ковырять - бесполезно для объяснения свойств целой системы.
Аноним 02/01/16 Суб 12:22:10 #6 №322785 
Какие то цифры и буквы, как их складывать? У тебя какая то не правильная наука, распиши более понятным языком.
Аноним 02/01/16 Суб 16:45:45 #7 №322823 
>>322530
Действительно, занятное рассуждение.
Аноним 02/01/16 Суб 18:19:29 #8 №322912 
>>322530
Двачую, местные диваны и термодинамику воспринимают как данность.
Аноним 02/01/16 Суб 19:39:23 #9 №322983 
>>322421
Вероятно твой алгоритм неустойчив поэтому идет вот такое говно.
Аноним 03/01/16 Вск 22:06:41 #10 №323268 
>>322434
Я пытался смотреть на частотах пиков в спектре, но узоры разные возникают, но неподвижных узлов нет. Тоже не понимаю, почему, ведь на нормальных модах есть узлы.
Вырожденность действительно должна быть. Вообще я сейчас все переделываю, еще специально читаю про
численные методы, чтобы код получше сделать и вообще все до ума довести хоть какого-то.
Сейчас решил сделать всю пластинку свободной (в том числе и края), оставить только центральные 4 осциллятора "привязанными" и менять их координату с sin(wt). Вообще хочу попытаться получить то, что на видео.
http://www.youtube.com/watch?v=wvJAgrUBF4w

Сколько в принципе на спектре такой пластины NxN должно быть пиков? Должны ли они стоять друг от друга на одинаковом расстоянии?

>>322983
Поясни. Что тут может быть неустойчивым? Система же очень простая.

>>322785
Попробую вкратце по-другому объяснить. Есть пластинка из осцилляторов размером NxN. У каждого осциллятора есть дополнительная координата z, вдоль которой он может смещаться. Осциллятор действует на каждого из четырех своих соседей с силой, пропорциональной разности их координат z. Вот и все.

>>322530
Все упирается в вычислительные мощности. Сейчас мы еще далеки от этого, но в недалеком будущем дойдем до моделирования хотя бы простых мозгов.
Аноним 03/01/16 Вск 22:11:46 #11 №323270 
>>322417 (OP)
пили скрипт на гитхаб или пасторг
Аноним 03/01/16 Вск 22:46:27 #12 №323275 
>>323268
Как будет время, я попробую напрямую через матрицу порешать, но успеха не гарантирую.
Аноним 05/01/16 Втр 11:51:09 #13 №323696 
14519838699280.png
Переделал систему - теперь фиксируется координата только центрального осциллятора: z = sin(wt), а осцилляторы на границе остаются свободными (раньше я ставил рядом с ними соседей с z=0).
Еще точность расчета значительно усилил. Пики, правда, сливаются, но их можно разрешить, затратив больше времени.

>>323270
https://github.com/grogno/Oscillators-Net/
В файле spectrum код для спектра.

>>323275
Ну так у меня тоже координаты все в форме матрицы NxN записаны. Ты это имел ввиду?
Аноним 05/01/16 Втр 12:47:50 #14 №323711 
>>323696
>Ну так у меня тоже координаты все в форме матрицы NxN записаны. Ты это имел ввиду?
Я вот про это https://mipt.ru/education/chair/theoretical_mechanics/upload/ecd/posobie_sidorenko-arphs0b31mz.pdf
(разделы 1.1 - 1.3)
Аноним 05/01/16 Втр 13:29:49 #15 №323718 
>>322422
чередование резонансов и антирезонансов, выглядит легально.
Аноним 05/01/16 Втр 14:25:32 #16 №323728 
>>323696
ээ, ну ты там повырезал чтоли все, я тоже хочу такие картинки зажал короче, ясно все с тобой, матрицу я и сам крутить мог бы
плюс у тебя система размерностью 3 и ты ищешь в ней некоторую картину условий (твои узоры) но при этом сворачиваешь результат, и что ты при этом хочешь увидеть.
с этим песком там все дрожит и шевелится, и четких узлов может и не образоваться, главное для тех песчинок это наличие потенциальной ямы
если бы ты срез хотябы брал из этой мембраны. те тебе надо срез не по плоскости мембраны, а поперек.
Аноним 05/01/16 Втр 15:59:24 #17 №323747 
14519987642490.png
>>323711
Я попробовал решить, но видимо не дружу с матрицами. Для сети 3х3, k=1, m=1 и u=0 матрица A у меня получилась единичной, а C вот такая:
2 -1 0 -1 0 0 0 0 0
-1 3 -1 0 -1 0 0 0 0
0 -1 2 0 0 -1 0 0 0
-1 0 0 3 -1 0 -1 0 0
0 -1 0 -1 4 -1 0 -1 0
0 0 -1 0 -1 3 0 0 -1
0 0 0 -1 0 0 2 -1 0
0 0 0 0 -1 0 -1 3 -1
0 0 0 0 0 -1 0 -1 2
Квадратные корни ее собственных значений вообще никак с полученным спектром не соотносятся:

2.45
~0
1.41
1.73
2.0
1.0
1.0
2.0
1.7
Аноним 05/01/16 Втр 16:05:18 #18 №323751 
>>323747
Мда, ужасно матрица у меня выглядит, не знаю, как их нормально вставлять.

>>323728
Добавил строчки для картинок, там же их немного совсем.
Не понял, какой результат я сворачиваю?
Песок же останавливается в узлах стационарных волн. То есть на видео на каких-то резонансных частотах по пластинке бегут стационарные волны. А у меня стационарности не получается добиться (я смотрел в том числе и большие пластинки вплоть до 200х200). Может, это потому что я резонансные частоты достаточно точно не могу найти. Но можно попробовать и поперек поискать.
Аноним 05/01/16 Втр 17:54:18 #19 №323827 
14520056582840.webm
Как-то так выглядит колебание для сети 3x3 на частоте 0.343, которая соответствует первому пику на спектре.
Ничего особенного, никаких узловых точек - выглядит странно.
Аноним 05/01/16 Втр 18:10:39 #20 №323832 
>>323751
>Песок же останавливается в узлах стационарных волн.
не факт, он остается в потенциальной яме, которая образуется усредненными по времени колебаниями.
те узлы это колебания меньшей амплитуды, меньшей частоты

отличненько, хотя всеравно чтото не то http://paste.org.ru/?e3bo9h
Аноним 05/01/16 Втр 18:12:37 #21 №323833 
>>323832
меньшей частоты это я спизданул и не стер
но так в целом это комбинация частот и амплитуд

и эту штуку для того чтобы анимировать тоже запиливай>>323751
Аноним 05/01/16 Втр 18:20:48 #22 №323837 
>>323833
также вот это вот
z[centre, centre] = np.sin(w х t)
не корректно, вообщем то должно быть не абсолютное перемешение точки, не зависящее ни от чего - а сила воздействующая на эту часть, осцилирующая с заданной частотой и зависящая от координаты. хз насколько это существенно правда
Аноним 05/01/16 Втр 19:28:11 #23 №323858 
14520112911620.png
14520112911631.png
14520112911642.png
14520112911653.png
>>323827
при твоих параметрах система принимает квазистационарное состояние примерно за 1000 единиц времени.

я хз к чему это, но на этом сегодня останавлюсь
Аноним 05/01/16 Втр 19:57:25 #24 №323863 
>>323747
Извини, я все это проходил давно и плохо, а сейчас у меня сессия и я пытаюсь сюда вообще не заходить но блин , так что "посмотрю, когда будет время" может быть нескоро. Но посмотрю, ты заинтриговал.
Аноним 05/01/16 Втр 20:50:42 #25 №323872 
14520162421170.png
14520162421171.png
хм тоже забавно
Аноним 06/01/16 Срд 17:05:17 #26 №324119 
14520891176230.png
>>323833
Амплитуда действительно вряд ли будет совсем нулевой в этих узлах, но все же она должна быть очень маленькой по сравнению с другими точками, и на видео, значит, узлы должны быть почти белыми.
Скрипт для анимации попозже запилю, зато сейчас добавил скрипт для получения точного спектра (прикрепил картинку к посту). Я реально не предполагал, что стационарное состояние так медленно достигается. В новом скрипте он для каждой частоты w запускает симуляцию, дожидается стационарности (как раз t>1000 обычно) и только затем выдает максимальное отклонение от нулевой плоскости.
Как видно, спектр сильно отличается от предыдущего. Там две функции для получения спектра, одна в параллельном режиме работает с ipyparallel.

https://github.com/grogno/Oscillators-Net/blob/master/Steady-State%20Spectrum.py

>>323837
Думал над эти. Для маленьких пластинок (3х3 в частности) действительно будет большая разница, поскольку средний осциллятор фиксирован в каждый момент времени. Для больших вряд ли будет разница. С физической точки зрения прописывать z мне понравилось больше, ведь это как будто мы жестко прикрепляем к середине пластинки осциллятор.

Аноним 06/01/16 Срд 20:38:39 #27 №324212 
>>324119
>но все же она должна быть очень маленькой по сравнению с другими точками
не обязательно, очень, просто меньше (в два раза меньше или на 10 процентов и уже вроде как должно сидеть в яме), вообщем зависит от того, что можно счесть устойчивым состоянием.
Те отношение флуктуации энергии частицы к высоте барьера. Допустим она может неустойчиво находится на горбе высокочастотной моды и сваливаться, а по сторонам приходят в противофазе два фронта, сталкиваясь гдето в этой области, подкидывая частицу на место.

Те комбинации условий достаточно разнообразны.

надо мутить пробную частицу, эмулировать так эмулировать.

для больших возможно, но так конечно в принципе нормально что продольная жесткость стержня, выше поперечной жесткости мембраны. С другой стороны, пока явно достаточно постановки вопроса: есть ли наблюдаемое явление в данной системе.

Берем устоявшуюся систему, усредняем по модулю z по координате
получаем матрицу средних значений - смотрим - есть картина или нет
тащим это среднее за последние несколько циклов (в условных единицах времени), медленно меняем частоту - смотрим получается картинка или нет

Вообще для начала, без особенного ущерба, для понимания процесса, можно рассмотреть двумерный случай.
Самое простое это некоторая функция, не зависящая от времени, разложеная в ряд, на стоячие волны. Добавить потом вибратор. Дальше перейти к динамике, учитывая векторное поле действующее на частицу, с минимизацией среднеквадратичного отклонения положения частицы по одной из координат.
Те определиться со свойствами интересующих нас ситуаций, и искать уже их в модели.
но я приветствую, только хардкор, только скальпель
Но с другой стороны двумерный случай можно было бы и прописать, для ускорения процесса.
Аноним 06/01/16 Срд 22:28:30 #28 №324264 
14521085101370.webm
14521085101421.webm
Сделал видео на частотах для обоих пиков на cтационарном спектре 3x3 >>324119
Вот теперь действительно видно, что это резонанс. Во-первых, пластинка медленно раскачивается, амплитуда колебаний медленно растет и в итоге выходит на очень высокий уровень. Во-вторых, получившийся узор стационарен. Узлов, конечно, нет, но, видимо, пластинка просто слишком мала для их образования.
На других частотах узор нестационарен, а амплитуда колебаний почти моментально выходит на максимум.

Для меня остается загадкой, почему для системы из 9 осцилляторов (один из которых, правда, заморожен) находятся только две резонансные частоты: 0.662 и 2.135.
И ни одна из них не совпадает с результатом из матриц, который у меня получился >>323747.

Еще меня удивляет, почему система так медленно выходит на стационарный уровень. За 1000 виртуальных секунд при частоте колебаний 1 с-1/, как получилось у >>323858 и у меня.

>>323837
Сейчас опять попробовал делать колебания силы. У этого метода есть огромная проблема - если сама пластинка ничем ни за что не зацеплена, то эта сила бросает ее целиком вверх-вниз с огромнейшей амплитудой.

>>324212
Да, вероятно уже небольшого понижения амплитуды будет достаточно. Но оно должно быть постоянным, чтобы частица зависла в этой потенциальной яме и не прыгала постоянно туда-сюда. Хотя, как я понимаю, на резонансных частотах все-таки должны быть настоящие неподвижные узлы.
Можно попробовать частицы моделировать, но это будет сложно с точки зрения кода, и не факт, что полезно. Легче, как ты говоришь, будет посмотреть смотреть на среднюю амплитуду каждого осциллятора.
Поясни, что конкретно ты под двухмерным случаем понимаешь?

P.S. На гитхабе теперь весит код для видео.
Аноним 07/01/16 Чтв 00:18:05 #29 №324285 
14521150853450.webm
Для затравки 21x21 на частоте 0.44496
Аноним 07/01/16 Чтв 01:05:58 #30 №324292 
>>324264
>>324264
>почему система так медленно выходит на стационарный уровень. За 1000 виртуальных секунд при частоте колебаний 1 с-1/,
жесткость мала, увеличь на порядок

и задвинь немнго теории что ты считаешь (в том плане что в код я смотрю, вижу фигу, набрал в гугле но закрутился и забыл посмотреть)

>Сейчас опять попробовал делать колебания силы.
надо делать не абстрактный вектор силы меняющий свое направление, а также как с пластинками, только добавить как бы одну пластинку сверху-снизу по центру и от нее уже сила на саму мембрану.
Те по факту тоже самое что сейчас, просто добавить одну пластинку под.над мембраной, которую уже фиксированно колебать.

>Да, вероятно уже небольшого понижения амплитуды будет достаточно.
более того, если частица устойчиво прыгает между двух горбов, с разными фазами, по баллистической, то она тупо может перелетать стоячий горб, и ее вообще может мало затрагивать все что происходит под ее траекторией, и пики там могут быть и больше соседних горбов по амплитуде, до тех пор пока столкновение не происходит и они не мешают пролету частицы.
Возможно я все несколько переусложняю, но но.

Но можно попробовать сначала средние значения по модулю.

>резонансных частотах все-таки должны быть настоящие неподвижные узлы.
Стоячие волны там должны образовываться.
Но в общем случае, мы видим интерференционную картину всего множества этих возможных волн, из того спектра который возбудил осцилятор, и тут еще один момент что осцилятор не обязательно гармонический (хз к чему это но так заметка) и он может возбуждать разные спектры возможных волн.

Не надо моделировать частицы, надо моделировать одну частицу, задав ей правила взаимодействия с пластинами, точно также как и с осцилятором.
Свалилась закинул в рандомное место новую, перестала двигаться - ок чтото интересное.
Сложность в ней добавляется - она находится в грав поле, и ее упругость (те маленький резиновый мячик или кусок пластелина).

Двумерный случай
Вместо мембраны, у тебя есть нитка-резинка, в остальном все тоже. (те высота и координата)
Те у тебя сейчас используется двумерный массив содержащий высоту, так будет одномерный. Это упрощает саму систему, но думаю подобные эффекты там тоже должны быть.
Количество твоих оциляторов, по сечению ограничивает возможное количество самих мод.
те 3 это в принципе две волны - с полупериодами в 1 и три клетки.(вроде), что в принципе на твоих видюшках и есть.
На нитке при томже количестве элементов что и в квадрате их будет больше.

Я не очень посмотрел связность, и не понял диагонали связаны или нет, если есть, то в принципе могла бы быть еще третья мода с полупериодом когда противоположные стороны выгибаются в противофазе (ввер и вниз), но чето подумал и вроде не складывается да и стартовые условия не те и внешней силы (к примеру сопростивления среды) которая могла бы перекосоебить в эту ситуацию нет.
Но я не истина в последней инстанции как ты понимаешь, с питоновскими этими обращениями к массивам не очень и с numpy тоже. (не посмотрел еще)
Аноним 07/01/16 Чтв 01:07:39 #31 №324293 
>>324285
круто, и в принципе тут картина видна без проблем, или ты другого мнения
Аноним 07/01/16 Чтв 01:10:16 #32 №324294 
14521182165370.png
>>324293
собственно картина
Аноним 07/01/16 Чтв 10:52:52 #33 №324353 
>>324285 Запили на частоте 0.611 и 0.6666, если будет что-то интересное, запости.
Аноним 07/01/16 Чтв 22:09:37 #34 №324600 
>>323747
У меня получилось то же самое. Мда.
Аноним 07/01/16 Чтв 22:35:52 #35 №324606 
>>324285
Интересно, что грузик-инициатор не синхронизировался с остальными, причем не просто с резко выделяющейся амплитудой (она даже меньше, чем на максимумах пластинки), а, похоже, на π/2 сдвинут по фазе.
Аноним 08/01/16 Птн 11:17:30 #36 №324690 
>>324292
Жесткость k/m хочется мне единицей оставить, чтобы не было так много разных параметров. Я боюсь, для большей жесткости нужны будут большие точности (ведь скорость распространения деформации тоже увеличится, нужно шаг поменьше).
Ты конкретно про код в петле спрашиваешь? Это просто метод численного решения диффуров, который дает ошибку поменьше, чем просто z(n+1) = z(z) + v*dt.

>только добавить как бы одну пластинку сверху-снизу по центру и от нее уже сила на саму мембрану
Можно попробовать, но главная пластинка может начать очень сильно раскачиваться (в резонансе уж точно начнет) и "врезаться" в пластинку.

>более того, если частица устойчиво прыгает между двух горбов, с разными фазами, по баллистической,
Вот думаю, что это маловероятно. Какие-то очень специфические условия должны быть. Да и на реальных видео песчинки не летают, а просто немного дрожат в узлах.

>Вместо мембраны, у тебя есть нитка-резинка, в остальном все тоже
Да, я так уже делал. Мне двухмерная пластинка интереснее показалась, поэтому я почти сразу к ней перешел.

>Вместо мембраны, у тебя есть нитка-резинка, в остальном все тоже
Да, похоже не то.

>не понял диагонали связаны или нет,
Нет, по диагонали они свободны.

>>324293
Да, картина видна. Впервые удалось добиться стационарного рисунка. Вывод простой - надо было спектры снимать на стационарном режиме, потому что просто изменение w во времени дает что-то очень далекое от истинного спектра.

>>324606
Ну он как раз и должен на п/2 сдвинутым быть. Когда маятник раскачиваешь, для резонанса тоже надо внешнюю силу на п/2 сдвинуть.
Амплитуда у него очень маленькая, потому что у него фиксированные координаты, а вся остальная пластинка ОЧЕНЬ сильно раскачалась. Она так только в резонансе раскачивается, на других частотах амплитуды сравнимы.
Аноним 08/01/16 Птн 12:12:47 #37 №324705 
14522443674020.webm
14522443674711.webm
14522443675392.png
>>324353
Похоже на стационарное что-то. Но на спектре я этих частот не видел, да и ампилитуда маленькая у колебаний. Непонятно, стационарное ли или нет.

>>324600
Это что-то очень странное. Может попробовать без центрального посчитать, вдруг получится. Хотя сомневаюсь
Аноним 08/01/16 Птн 14:09:56 #38 №324738 
14522513965210.png
14522513965221.png
>>324690
>Да и на реальных видео песчинки не летают, а просто немного дрожат в узлах.
от страха чтоли дрожат ?)
они движутся по какимто траекториям, то что с нашей точки зрения они микроскопические, не отменяет факта.

чето с видео не докрутил ты, по мимо отступа там
в начале явно ничего не видно, что печалька, так как ждать по 20 минут чтобы выяснить будет не будет тоже не фонтан

может заюзаешь чтото в таком духе https://github.com/Zulko/gizeh
и квадратики рисовать можно и подписи и в moviepy лезет вроде
нормировать входящие значения надо
Аноним 08/01/16 Птн 15:14:03 #39 №324771 
>>324705
>Это что-то очень странное. Может попробовать без центрального посчитать, вдруг получится.
У меня, кажется, получилось.
Поскольку амплитуда блока-инициатора все мала по сравнению с остальными, да еще и рассинхрон этот, можно принять, что центральный блок закреплен.
Тогда матрица C получается
2 -1_0_0_0_0_0 -1
-1 3 -1 0 0 0 0 0
0 -1 2 -1 0 0 0 0
0 0 -1 3 -1 0 0 0
0 0 0 -1 2 -1 0 0
0 0 0 0 -1 3 -1 0
0 0 0 0 0 -1 2 -1
-1 0 0 0 0 0 -1 3
(у меня тоже не вышло нормально вставить матрицу)
а корни из собственных значений
1
1
1.41
2
2
1.73
2.135
0.662

Собственные векторы (показывают относительные амплитуды, как я понимаю)
для 0.662:
-0.781а
а
-0.781а
а
-0.781а
а
-0.781а
а

для 2.135:
1.281а
а
1.281а
а
1.281а
а
1.281а
а
Вроде это совпадает с наблюдениями.
Грузики нумеровались вот так
1 2 3
8 _ 4
7 6 5

(все искалось программой https://matrixcalc.org/vectors.html )

Почему есть только эти колебания, все равно не понятно.
Аноним 08/01/16 Птн 18:39:00 #40 №324858 
>>324738
>чето с видео не докрутил ты
при этом кудато просирается столько памяти что прям страшно
51x51 20 гигов в пике
еще и массивы копируются при вызове, жесть
Аноним 08/01/16 Птн 20:43:55 #41 №324926 
14522750357650.webm
>>324858
есть ощущение что кроме резонансных вариантов тоже есть интересные
не то чтобы нашел, просто наводит на мысль
ci2000os_99x99_3.000Hz_25fps_1lapse_100sec_0.10dtk.webm
Аноним 08/01/16 Птн 21:10:51 #42 №324930 
>>324738
Посмотрю на эту библиотеку сейчас.
>нормировать входящие значения надо
Я думал над этим, но не знаю, как это сделать. Чтобы нормировать, надо смотреть на стационарные режим, но сейчас я перепишу и оптимизирую код для быстроты таким образом, что кадр будет прорисосываться сразу после расчета, в таком случае норму наперед не узнать.

>при этом кудато просирается столько памяти что прям страшно
Мой код на гитхабе совершенно не годится для больших пластинок. Он сначала просчитывает весь временной интервал, попутно записывая необходимые значения, а только потом все это визуализирует. Поэтому фактически вся история (то есть количество шагов, деленное на lapse) хранится это время в оперативке.
А она может быть весьма большой.

Еще я думаю из соображений симметрии рассчитывать только четверть всей пластинки. Это не ускоряет расчет маленьких пластинок, но на больших уже заметно.

У меня есть наработки и фрагменты кода для все этого, постараюсь сейчас в порядок все привести.
Аноним 08/01/16 Птн 22:18:13 #43 №324971 
>>324930
>Еще я думаю из соображений симметрии рассчитывать только четверть всей пластинки.
Теоретически можно и одной восьмой обойтись.
Аноним 08/01/16 Птн 22:23:20 #44 №324975 
>>324771
Вот ты >>324930 сказал про симметрию, и я, кажется, понял, почему только эти две моды работают: из всех решений только они достаточно симметричны.
Аноним 08/01/16 Птн 22:42:55 #45 №324982 
>>324971
Можно, но матрицы прямоугольные все же, у меня нет идей, как с треугольником работать.

>>324975
Интересная мысль. Возможно, если сделать источник возбуждения несимметричным, то проявятся другие моды? Тогда это чем-то похоже на ИК и Рамановскую спектроскопию.
Аноним 08/01/16 Птн 23:00:51 #46 №324988 
14522832518780.webm
>>324930
>Посмотрю на эту библиотеку сейчас.
Для мелких это было возможно актуально, и возможно если ты поменяешь квадратики на треугольнички или квадраты с усеченными углами станет актуально опять, но при картинках 100х100 или 300х300 там в принципе квадратик это пиксель, такчто не актуально.

самый главный тормаз везде, это шаг вычислений, 0.1 вполне устойчиво работает при частотах ниже 3, и разницы визуально нет, также как и по картине.
Те для видео значение в dt=0.1 вполне норм

>Я думал над этим, но не знаю, как это сделать.
можно просто скользящее среднее максимума, я не стал заморачиватся и просто смотрю максимум на каждом кадре и поднимаю планку (но мелкие дрожания на не резонансах так конечно видно не будет)

>Мой код на гитхабе совершенно не годится для больших пластинок
ты там синтаксис поправь, и я чето ума не приложу, только у меня ругается чтоли

видео стартует на частоте 1, каждые 10 сек частота повышается на 0.05 (кольца такие пошире начинают идти)
fbw_civar0.10_os_301x301_1.000Hz_50fps_1lapse_100sec_0.10dtk.webm
Аноним 09/01/16 Суб 13:12:46 #47 №325228 
>>322417 (OP)
Анон, возьми любую книжку по физике твёрдого тела и прочитай про нормальные моды кристалла. Это один в один что ты делаешь.
Аноним 09/01/16 Суб 18:48:07 #48 №325375 
>>324988
>ты там синтаксис поправь, и я чето ума не приложу, только у меня ругается чтоли
У меня ругается и не запускается, но я полный нуб, который только что ради этих пластинок скачал питон, так что, может, я просто недоустановил чего.
Аноним 09/01/16 Суб 21:34:24 #49 №325726 
>>325375
>>324988
Я переписал код, теперь он шустрый. Кстати, сохранять можно сразу в webm, но тогда он прорисовывает немного медленнее, и качество не очень. Это на ваш вкус.
https://github.com/grogno/Oscillators-Net/blob/master/Make%20Video

Попробуйте еще сравнить с результатами, полученным на предыдущей версии кода. Тут я уже учел симметрию, вроде результаты такие же, но я мог что-то где-то упустить.

>Те для видео значение в dt=0.1 вполне норм
Наверное, так и есть. Вообще я пробовал для 9х9 проводить симуляцию про разных dt, и при dt = 0.001 через 100 виртуальных секунд результаты от истинных отличались где-то на 0,1%. Но dt = 0.001 медленный очень.

>можно просто скользящее среднее максимума, я не стал заморачиватся и просто смотрю максимум на каждом кадре и поднимаю планку
Сделал как ты. Вроде нормально выглядит. Вариант с скользящей, я боюсь, может паразитную осцилляцию интенсивностей вызвать.
Твое видео интересно выглядит. Вообще, чем больше, там красивей. Не представляю, сколько ты со старым кодом времени на нее потратил.

>>325375
Если у тебя и сейчас будет ругаться, напиши сюда ошибку.
Аноним 09/01/16 Суб 22:23:23 #50 №325828 
>>324738
да, кстати
>может заюзаешь чтото в таком духе https://github.com/Zulko/gizeh

Я много продолбался с этим gizeh, но он у меня так и не заработал. Он требует библиотеку cairocffi, которая при загрузке выдает ошибку
dlopen() failed to load a library: cairo / cairo-2

Долго с этим провозился, качал разные dll, прописывал переменные среды, но ничего не помогло.

У тебя все работает? Если да, ты с Windows сидишь?
Аноним 09/01/16 Суб 23:39:32 #51 №325869 
>>325726
>Если у тебя и сейчас будет ругаться, напиши сюда ошибку.
File "Spectrum.py", line 82
plt.title(str(N)+'x'+str(N)' Net Spectrum')
Syntax Error: invalid syntax

File "Steady-StateSpectrum.py", line 111
plt.title('{}x{} Steady-State Spectrum'.format(N,N)')
SyntaxError: EOL while scanning string literal

И можешь, если не сложно, пояснить за модули: какие нужны? Я не понял, как их ставить (полный, полный нуб), психанул и скачал сборку Anaconda, но там, кажется, все равно есть не все.
Аноним 09/01/16 Суб 23:47:59 #52 №325875 
>>325869
Какая у тебя версия питона? У меня 3.5, и все нормально.
Сейчас ты можешь просто удалить эту строку или поставить перед ней знак #.
Для визуализации еще нужен moviepy, которого нет в Анаконде. Просто зайду в командную строку Windows и вбей pip install moviepy.

Аноним 09/01/16 Суб 23:51:26 #53 №325876 
>>325869
Хотя это вроде я в коде на гитхабе накосячил. Сейчас проверю и переделаю, если что.
Аноним 10/01/16 Вск 00:06:15 #54 №325884 
>>325875
У меня тоже 3.5
Спасибо, moviepy вроде загрузился.
Спектр и должен сначала весь считаться, это нормально, что у меня проценты в командной строке ползут, а картинки пока нет?
Аноним 10/01/16 Вск 00:37:20 #55 №325905 
>>325884
Я скорректировал код с гитхаба, вроде все работает теперь.
Да, картинка только в самом конце рендерится.
Аноним 10/01/16 Вск 01:22:13 #56 №325926 
14523781339510.jpg
>>325905
О, график построился! %пока набирал сообщение, построился и второй%
Попробовал записать видео, получилась странная постоянно меняющаяся фигня пикрелейтед, причем если отматывать видео на начало, каждый раз получаются разные картинки сам по себе прикольный эффект. Пробовал смотреть Виндоус-Плеером и Риал-Плеером, надо чем-то другим?
нуб
Аноним 10/01/16 Вск 02:33:54 #57 №325946 
14523824349500.webm
14523824350001.webm
>>325726
>Не представляю, сколько ты со старым кодом времени на нее потратил.
я переписал примерно также как и ты сделал сейчас, он чтото в духе 11 фреймов в сек делает, со старой процедурой подсчета
твой сейчас делает 20 на 305х305 (на 0.1 dt)
это уже годно и работает уже из коропки, что радует
к стати, не используй пробелы в именах файлов, очень не удобно для скриптов.
также я бы добавил жесткость (точнее добавил, хм как мне кажется) как параметр, результат разный.

первое на частоте 1, жесткость 1 - твой текущий вариант (305x305_at_1.webm)
второе на частоте 1, жесткость 20 (или наоборот не жесткость) - то что у меня f9fbb_civar0.10_os_305x305_1.000Hz_50fps_10lapse_100sec_0.10dtk.webm

>gizeh
забей, по факту он не нужен, это была мысль, пока я не собразил почему у меня видос не генерился.
я на линуксе сижу

>>325926
файл видео коряво записался или ты начал его смотреть пока он не догенерился
он там в шапку данные тоже записывает в конце
и это обламывает так как не посмотреть видос в процессе его генерации, в принципе скорость генерации позволяет.
можешь попробовать в строчке
animation.write_videofile(file_name+'.mp4', fps=fps, codec='png')
Аноним 10/01/16 Вск 02:42:45 #58 №325950 
>>325946
хотя нет, походу эта разница артефакт подсчета, шаг маловат и расходится
осталось только понять как получить это в модели которая не расходится
Аноним 10/01/16 Вск 12:37:11 #59 №326088 
>>325926
Где-то через двадцать минут после того как я залил на гитхаб новую версию кода для видео, я исправил в нем ошибку. Может, ты сейчас старой пользуешься? Там как раз цвет неправильно определялся. Вообще тут есть только синий и красный цвета, других быть не может.

>>325946
На что в принципе жесткость может влиять? По-моему, она только на скорость распространения возмущения влияет. Того же самого можно добиться, влияя на скорость воспроизведения видео.
Или я что-то упускаю из вида? Ведь твое второе видео выглядит интересно.
Аноним 10/01/16 Вск 13:02:53 #60 №326096 
14524201732490.png
14524201732501.webm
14524201732562.webm
14524201732623.webm
Я тут попробовал менять все-таки не координату центрального осциллятора, а его ускорение. Трансляционное движение вдоль оси z убрал, вычтя из координат осцилляторов координату центра масс.
И тут уже получились предсказанные аналитически значения (>>323747 >>324600).

Правда, 1.41, 2.0, 2.0, 1.0, 1.0 так и не появились. В чем дело, как их возбудить?

Частоты на видео по порядку: 1.7081, 1.732 и 2.450. Разницы между первыми двумя не вижу.
Аноним 10/01/16 Вск 13:45:44 #61 №326119 
>>326088
не, на втором видео, там шаг вычисления слишком большой, поэтому разошлось, посмотрел на меньшем, там таких эффектов нет.

надо какой то критерий забубенить для коэффициента, чтобы не много и не мало, и не надо было его каждый раз подбирать.

Аноним 10/01/16 Вск 20:25:26 #62 №326409 
>>326096
Там две частоты на самом деле, 2.449 (√6) и 1.732 (√3). Третья "частота" - 0, она соответствует прямолинейному полету пластинки в пространстве, и понятно, почему у тебя на графике ее нет. Независимых координат, если что, тоже три, остальные можно найти за счет симметрии.
Матрица с учетом симметрии будет такая
8-4λ -8   0
-8  12-4λ -4
0    -4   4-λ
и это для удобства можно "сократить" (поделив соответствующие строки и столбцы на 2) до
2-λ -2   0
-2  3-λ -2
0   -2  4-λ

Чтобы возбудить больше частот, можешь попробовать взять пластинку с четными сторонами и возбуждать центральные четыре разными способами, ну там
++
++
или
++
– –
или
+–
–+

ЗЫ А как ты делаешь, чтобы на графике подписывались пики?
нуб
Аноним 10/01/16 Вск 23:06:15 #63 №326572 
>>326409
Можешь пояснить, почему независимых координат три?

Чтобы подписать, перед plt.show() поставь строку:
plt.text(x, y, 'твой текст')
x, y - положение текста на графике
Аноним 10/01/16 Вск 23:39:51 #64 №326600 
14524583910900.png
>>326572
См. пикрелейтед. Из-за симметрии (т. е. в случае симметричного возбуждения) все квадратики, помеченные единичками, всегда будут на одинаковой высоте. То же и для двоек.

>Чтобы подписать, перед plt.show() поставь строку:
>plt.text(x, y, 'твой текст')
>x, y - положение текста на графике
А, спасибо. Я думал, что у тебя там есть автораспознавание пиков, а я тупой, что не могу его включить
Аноним 11/01/16 Пнд 20:43:46 #65 №326811 
(подумав) Вообще-то и двумя независимыми координатами можно обойтись, а третью выводить, исходя из того, что центр тяжести неподвижен.
Аноним 11/01/16 Пнд 22:09:00 #66 №326840 
>>322417 (OP)
Знаешь, как это выглядит со стороны?
Представь ситуацию. Господа в смокингах и цилиндрах сидят в обедне и пьют чай, обсуждая решения уравнений Эйнштейна для идеальной жидкости, сходимость рядов постньютоновского формализма, D-браны, задачу трех тел наконец. Тут к ним вползает пьяный вдрызг кучер Ванька. Отплевывая лошадиный навоз, он ссыт под себя, одновременно блюя на пол несвежим портвешком. Затем достает ATX системник с двухъядерным Skylake, найденный на помойке. "BSSN-формализм, слияние черных дыр - вот где мыслЯ, блеать, вот где красота и свежесть!". Смеясь, господа растегивают ширинки и мочатся быдлу в рот. Зовут дворника Адольфа - местного фурье-задрота, он спускает числопетуха с лестницы. Он делает это с удовольствием - хоть зачем-то сгодился элите. Поднимаясь за похвалой, он начинает зациклено бормотать про существование и единственность. Господа для острастки ссут на него, после чего возвращаются к своим светским беседам.
Аноним 11/01/16 Пнд 22:13:13 #67 №326843 
>>322912
Как что плохое
Аноним 12/01/16 Втр 17:32:45 #68 №327197 
>>326840
к чему это ?
Аноним 12/01/16 Втр 17:40:17 #69 №327202 
>>322530
бро, нужны другие методы. вот есть 1 млрд китайцев все люди со сложными характерами и мотивациями итд итп. есть политика этого китая. политика не учитывает все элементы а только значимые. а из намного меньше чем 1 млрд. понимаешь? всю систему не нужно считать. нужно считать только значимые и актуальные прямо сейчас.
Аноним 12/01/16 Втр 17:44:18 #70 №327204 
>>324926
выглядит как картинка поляризации света в некоторых не помню каких материалах.
Аноним 12/01/16 Втр 17:47:01 #71 №327206 
>>325946
вторая вэбэмка выглядит как большой взрыв.
Аноним 12/01/16 Втр 18:04:37 #72 №327222 
>>327204
кольца ньютона ты наверно их вспомнил
Аноним 12/01/16 Втр 18:05:19 #73 №327223 
>>327206
так и есть по факту, взрыв ошибки вычилсения
Аноним 12/01/16 Втр 18:36:15 #74 №327235 
>>327222
похоже на то. почему то еще вот это напомнило. https://ru.wikipedia.org/wiki/%D0%A5%D1%80%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8F%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
Аноним 12/01/16 Втр 18:38:54 #75 №327236 
>>327223
я про другое. мне показалось что отдельные локализованные участки как бы частицы. они то группируются то разгруппируются за счет частоты.
Аноним 12/01/16 Втр 19:40:49 #76 №327269 
>>327197
on numerical physics
Аноним 12/01/16 Втр 19:55:18 #77 №327275 
>>327236
хм ну собственно за это тред и есть, по сути

>>327269
ну так и есть в принципе, пока еще этих в шляпах дождешься, если вообще аналитические решения существуют
Аноним 13/01/16 Срд 01:15:16 #78 №327395 
Вот стоило скачать питон...
В общем, от меня тоже код, считает (вот по этой >>323711 методе) резонансные частоты для системы NxN, вибрация в которую накачивается за счет изменения координаты центра (надо бы для случая с силой тоже сделать).
МойПервыйКод% в школе был Паскаль, но давно и мало%, можете ругать и все такое.
Аноним 13/01/16 Срд 01:16:31 #79 №327396 
А, да, ссылка.
https://github.com/ungverd/oscillators
Аноним 13/01/16 Срд 01:17:39 #80 №327397 
Точнее даже вот так
https://github.com/ungverd/oscillators/blob/master/res_freq
Извините
Аноним 19/01/16 Втр 05:10:40 #81 №330068 
14531694401000.webm
Если кому еще интересно, пытаюсь воспроизвести видео из поста >>323268, в прикрепленном (если оно прикрепилось) - прогон пластины 15х15 через все 35 теоретических резонансных частот (по 10 секунд на частоту). Самые низкие и самые высокие частоты выглядят относительно красиво, причем последние похожи на первые, только "в клеточку" и почему-то с неподвижным контуром пластины (не из-за трения, если его понизить, это не изменится). То, что посередине (бОльшая часть видео) выглядит, ээ, не настолько красиво, местами полная каша.
нуб
Аноним 19/01/16 Втр 22:13:04 #82 №330512 
>>330068
ну в принципе норм, кроме квадратно гнездовых узоров тут ничего больше и не должно быть
по диагоналям связей нет, колво элементов тоже не велико
такчто в рамках этой модели походу все сделано
кроме отображения собственно картины, вместо самой пластины.
ну и пробника. (частицы).
Аноним 19/01/16 Втр 23:54:19 #83 №330546 
>>323268
Ребята, это ж пиздец. Такая хуйня происходит в атомах и молекулах. Насколько сложно расчитать форму вот этих узоров?
Аноним 20/01/16 Срд 03:09:25 #84 №330579 
>>330546
Да не сложно, есть методика (в нашем случае было бы через собственные векторы той же матрицы, собственные значения которой - квадраты частот). У нас тут очень простая модель - все грузики одинаковые, могут двигаться только по одной координате, потенциал задается просто пружинками.
С молекулами - сначала нужно найти потенциал взаимодействий между атомами, это по-хорошему делается через квантмех и тут есть свои методы численного моделирования. А так - тоже считается это всё.
Аноним 20/01/16 Срд 03:16:32 #85 №330580 
>>330579
Нихуя не считается. Я потому вопрос и задал. Ну то есть считается оно в теории, но в теории я могу и на альфа центавру слетать.
Аноним 20/01/16 Срд 18:07:26 #86 №331161 
>>330580
Что не считается? Резонансные частоты молекул точно считаются, у нас только что лаба по этому была (программа GAMESS).
Аноним 25/01/16 Пнд 00:07:29 #87 №332446 
а если ко всему этому добавить электрический заряд на пластинке
мм будет ли интересней
comments powered by Disqus

Отзывы и предложения