2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Круги на воде
Сообщение12.09.2019, 15:09 


05/09/16
11461
Xmas в сообщении #1414675 писал(а):
Частичное воссоздание "картины мира" с помощью крохотного датчика, который может видеть лишь запоздалые волновые отклики в углу бассейна, и нигде больше - это очень крепкая задача.

Ну ещё бы. Задачу конечно надо доформулировать. Потому что "плавающие люди" это не когерентные точечные источники, глубина не бесконечная, и т.д. и т.п.

Наверное, есть очень отдаленная аналогия с астрономами. Они сидят на Земле (максимум искусственно созданной "апертуры" -- это Вояджер в 16 световых часах от Земли), и наблюдают "бассейн" Галактики и море Вселенной, делают расчеты и выводы что где находится и куда движется...

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 16:00 
Аватара пользователя


18/12/17
126
wrest, я буду рад, если Вы присоединитесь. На мне сейчас висит тяжёлый груз курсовой. Вам, может, слово "курсовая" покажется несерьёзным, но это смотря, как делать. Отписку можно навалить и без всякого гугла, предки подтвердят. Но это очень плохо. К каждой задаче (как меня учат) нужно относиться с полной ответственностью и полной отдачей.

Решает не возраст. Решает человек. Либо он уже может решить задачу, либо не может. Остальное не имеет значения.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 16:06 


12/08/15
167
Stockholm
С моей точки зрения, это несложная задача (пока дело не дойдет до реальных волн на воде), и я вижу несложное решение и для жука, сидящего хоть углу, хоть где-то на стенке. Проще всего задача будет выглядеть для одиночного импульса (всплеска).
Вот всем желающим ссылка на достаточно реалистичную симуляцию (если сразу не пойдет, попытайтесь обновить с помощью F5). Это прямоугольный бассейн с точечным источников где-то посередине, в углу стоит детектор волн, сигнал которого выведен в отдельное окошко. Источник, после запуска, производит периодические колебания, которые вскоре заполняют стоячей волной весь бассейн и детектор начинает давать постоянную синосоиду - на этой стадии задача уже не решается. Лучше рассматривать одиночный импульс. Для этого симуляцию надо приостановить, мышкой передвинуть источник за пределы бассейна, и запустить снова, посмотрев распространение короткого импульса. С коротким импульсом задача имеет решение.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 16:28 
Аватара пользователя


18/12/17
126
Gleb1964, вот щёрт... А мне пришлось добавить крохотную действительную альфу, чтобы волна хоть немного ослабевала. Это частный случай. Если потерь нуль, то девки в бассейне устроят цунами за одно получасовое плавание.

У меня просто преподаватель по ТФКП был люто харизматичный Теперь-то я, конечно, морщу нос, что преобразования Лапласа/Меллина/Бесселя мне всю жизнь были известны, и я их умею, но на деле я ещё пару лет назад о них не слышал.

Насчёт синусоиды, заполнившей всё пространство - я, возможно, знаю чужое решение для этого случая. И знаю автора решения - К.Ф.Гаусс, а этот человек знал толк в математике.

Мой интерес, я не навязываю - был в том, чтобы сознательно лишить себя запасных костылей. Фаза колебаний случайна, амплитуда источника случайна, размеры бассейна неизвестны, но он вроде прямоугольный. Интерес - сколько можно извлечь информации при остальных условиях. Это уже не детские игрушки, а серьёзное дело.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 17:13 


05/09/16
11461
Gleb1964 в сообщении #1414687 писал(а):
стоячей волной

А значит ваш жук может попасть просто в узел и не зафиксировать вообще никаких колебаний (в устоявшемся, ессно, режиме) :mrgreen:

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 17:39 


12/08/15
167
Stockholm
На самом деле, не все так плохо. Если нет ослабления волн (damping), то стоячая волна не установиться никогда, потому что все время будут приходить новые переотражения, меняя картинку на приемнике. Если дэмпинг есть, стоячая волна установится за конечное время (?), но пока она устанавливается, задачу можно решить. Если источник волн непереодический, с модуляцией амплитуды и сбоями фаз, то задача должна решаться в любой момент.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение12.09.2019, 18:46 
Аватара пользователя


18/12/17
126
Так а разве "альфа" (множитель затухания) для того была названа?

Такое чувство, что у кое-кого свербит повозражать. Забейте. Возражалово к науке не относится никаким местом. Давайте лучше о задачке поговорим.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение13.09.2019, 05:31 
Аватара пользователя


18/12/17
126
Добавлю, раз уж так. Переходной процесс - это раздолье для решений. В нём уйма частот, и это сразу бы облегчило задачу до уровня 1-2 курса. После того, как студенту расскажут после преобразования Фурье ещё про Лапласа и Меллина (и другие), и когда студент узнает, что шестиконечная звёздочка - это символ свёртки, а вовсе не символ "скалярного умножения в Ворде", студент это уже умеет.

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

 Профиль  
                  
 
 Re: Круги на воде
Сообщение13.09.2019, 20:33 
Аватара пользователя


18/12/17
126
Я признаю, что виноват в своём хамстве. Это чисто моя вина. Признаю прямо и открыто, без тени подтекста. Буду признателен, если вернёмся к задаче.

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

При одном источнике:
Изображение

При трёх источниках:

Изображение

Спойлер с кодом (на всякий случай)

(Оффтоп)

Код:
// Полный бассейн с волнами

settings.tex = "pdflatex";

import unicode;
bool cochineal = true;

if (cochineal) {
    texpreamble("
    \usepackage{amsmath,amstext,mathrsfs}
    %\usepackage[garamond]{mathdesign}
    \usepackage{cochineal}
    \usepackage[varqu,varl,var0]{inconsolata}
    \usepackage[scale=.95,type1]{cabin}
    \usepackage[cochineal,bigdelims,vvarbb]{newtxmath}
    % Каллиграфия и рукопись
    % pxtx - простые и даже брутальные
    % euler - тоже простой, но аккуратнее и прямостоящий
    % rsfso - с завитушками, тонкий
    % boondoxo - с завитушками, но жирнее
    \usepackage[cal=pxtx,scr=rsfso]{mathalfa}
    \usepackage{dcomma}
    ");
} else {
    texpreamble("
    \usepackage{amsmath,amstext,amssymb}
    \usepackage[T2A,T1]{fontenc}
    \usepackage{dcomma}
    \usepackage{mathptmx}
    \usepackage{tempora}
    ");
}

import babel;
babel("russian");
import x11colors;
import markers;

import graph;
import palette;

size(6inches,0);

// Размеры бассейна

real a=3;
real b=2;

// Источники

pair[] src = {(2,1.5),(1.6,1),(2.7,1.1)};

// Функция, возвращающая амплитуду колебаний в запрошенной точке
int kmn = 5; // количество учитываемых отражений
pair gama = (0,4pi);

real amp(real x, real y) {
   
    pair u = (0,0); // накопитель
    real dist;

    for (pair p : src) {

   for (int n=-kmn; n<=kmn; n+=1) {
       for (int m=-kmn; m<=kmn; m+=1) {
      dist = sqrt((2*m*a+p.x-x)^2+(2*n*b+p.y-y)^2);
      u += exp(-gama*dist)/dist;
      dist = sqrt((2*m*a-p.x-x)^2+(2*n*b+p.y-y)^2);
      u += exp(-gama*dist)/dist;
      dist = sqrt((2*m*a-p.x-x)^2+(2*n*b-p.y-y)^2);
      u += exp(-gama*dist)/dist;
      dist = sqrt((2*m*a+p.x-x)^2+(2*n*b-p.y-y)^2);
      u += exp(-gama*dist)/dist;
       }
   }
    }
    return log10(abs(u));
}

real amp2(real x, real y) {
    return x+y;
}

pen[] pal = Gradient(8, black, MidnightBlue, SteelBlue, Cyan, WhiteSmoke);

int kk = 200; // количество точек
bounds img = image(amp,-(a,b)*0,(a,b),pal,nx=(int)a*kk,ny=(int)b*kk);

picture pic;
palette(pic,"Логарифм амплитуды, $\log_{10} u$",img,(0,0),(2mm,6.5cm),Right,pal,PaletteTicks("$%+#.1f$"));
add(pic.fit(),point(E),30E);

fill(circle((0,0),0.02),black+5pt);
draw((0,0)-- (-0.05*(a,b)),BeginArrow(2mm));
label("Жук", (-0.05*(a,b)),SW);
draw((0,0)--(a,0)--(a,b)--(0,b)--cycle);

for (pair p : src) {
   draw(circle(p,0.04),red);
    fill(circle(p,0.02),red);
}


//-----------------
shipout(bbox(2pt,nullpen));


Корявое слово "gama" в коде потому, что "gamma" занята гамма-функцией. "gama" - коэффициент распространения. Первое число в скобках - коэффициент затухания, неперы на единицу длины. Второе - волновое число, радианы на единицу длины.

Если кто будет пробовать - число отражений до пары сотен на скорость расчёта не влияет. А вот число точек в картинке сильно замедляет. При 50 точках картинка создается за пару секунд, а при 200 точках (int kk=200) около 3 минут на 2 ГГц процессоре.

 Профиль  
                  
 
 Re: Круги на воде
Сообщение14.09.2019, 12:47 


12/08/15
167
Stockholm
Xmas в сообщении #1414924 писал(а):
А вот число точек в картинке сильно замедляет.

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

 Профиль  
                  
 
 Re: Круги на воде
Сообщение14.09.2019, 13:27 


05/09/16
11461
Xmas в сообщении #1414924 писал(а):
если вернёмся к задаче.

Так надо задачу сформулировать.
Вот вы рассчитали (не знаю правильно или нет, но это и не важно пока) зависимость амплитуды колебаний от координат (при одном и трех монохромных источниках). И? В этом задача?
Все жуки, которые будут сидеть на одном и том же цвете на картинках, увидят одно и тоже, верно? А некоторые окажутся в узлах, где вообще колебаний не будет...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2, 3

Модераторы: photon, whiterussian, profrotter, Jnrty, Aer, Парджеттер, Eule_A, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Dmitriy40


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group