Архитектурная акустика/Интеграл Релея (версия Кулигина): различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показано 8 промежуточных версий 3 участников)
Строка 8: Строка 8:
<math>\varphi\left(\theta, \varphi, r\right) = \frac{1}{2\pi}\iint\limits_{\sigma}\frac{\partial\varphi_1}{\partial\stackrel{\to }{n}}\frac{e^{-i k r}}{r}d\sigma</math>
<math>\varphi\left(\theta, \varphi, r\right) = \frac{1}{2\pi}\iint\limits_{\sigma}\frac{\partial\varphi_1}{\partial\stackrel{\to }{n}}\frac{e^{-i k r}}{r}d\sigma</math>


на сфере <math>r=0</math>, где:
на сфере <math>r=1</math>, где:
* <math>\varphi(\theta, \varphi, r)</math> - потенциал колебательной скорости в точке, заданной в сферической системе координат, в которой <math>\theta = 0, \varphi = 0, r = 1</math> - единичный вектор сонаправленный главной оси источника.
* <math>\varphi(\theta, \varphi, r)</math> - потенциал колебательной скорости в точке, заданной в сферической системе координат, в которой <math>\theta = 0, \varphi = 0, r = 1</math> - единичный вектор сонаправленный главной оси источника.
* <math>\sigma</math> - [[Архитектурная акустика/Поверхность|поверхность]] или ее часть, которая колеблется как поршень.
* <math>\sigma</math> - [[Архитектурная акустика/Поверхность|поверхность]] или ее часть, которая колеблется как поршень.
Строка 25: Строка 25:
# <tt>SC = M.Множество [[Архитектурная акустика/Первичный источник|источников]]()</tt>;
# <tt>SC = M.Множество [[Архитектурная акустика/Первичный источник|источников]]()</tt>;
# <tt>PC = M.Множество [[Архитектурная акустика/Объемный геометрический объект|отражающих элементов]]()</tt>
# <tt>PC = M.Множество [[Архитектурная акустика/Объемный геометрический объект|отражающих элементов]]()</tt>
# <tt>PlC = M.Множество [[Архитектурная акустика/Секущая плоскость вывода результатов|контрольных точек]]()</tt> - множество плоскостей вывода результатов.
# <tt>PlC = M.Множество [[Архитектурная акустика/Секущая плоскость вывода результатов|множество секущих плоскостей]]()</tt> - множество плоскостей вывода результатов.
# <tt>расстояние(точка1, точка2)</tt> - функция расстояния между двумя точками.
# <tt>расстояние(точка1, точка2)</tt> - функция расстояния между двумя точками.
# Пусть <math>dx(\lambda)=\lambda\cdot c</math>, где <math>\lambda</math> - длина волны, <math>c</math> - входной параметр-коэффициент.
# Пусть <math>dx(\lambda)=\lambda\cdot c</math>, где <math>\lambda</math> - длина волны, <math>c</math> - входной параметр-коэффициент.
Строка 35: Строка 35:
#<math>SC' \gets SC</math> - временное множество источников, для хранения первичных и вторичных источников SC'
#<math>SC' \gets SC</math> - временное множество источников, для хранения первичных и вторичных источников SC'
#Для всех источников <math>s_j\in SC'</math> (цикл):
#Для всех источников <math>s_j\in SC'</math> (цикл):
#<math>SC' \gets SC'  \setminus\left\{s_j\right\}</math>
##<math>SC' \gets SC'  \setminus\left\{s_j\right\}</math>
## <math>s_j</math> создает лучи во все отражающие элементы - источники следующего порядка.
## <math>s_j</math> создает лучи во все отражающие элементы - источники следующего порядка.
##для всех k от 0 до <math>s_j</math> <tt>.[[Архитектурная акустика/Источник с характеристикой направленности| Ширина полосы частот()]]</tt> -1
##для всех k от 0 до <math>s_j</math> <tt>.[[Архитектурная акустика/Источник с характеристикой направленности| Ширина полосы частот()]]</tt> -1
###<math>\omega \gets s_j</math><tt>.[[Архитектурная акустика/Источник с характеристикой направленности|Частота(k)]]</tt>
###<math>\omega \gets s_j</math><tt>.[[Архитектурная акустика/Источник с характеристикой направленности|Частота(k)]]</tt>
##Для всех <math>Pl \in PlC</math>
###Для всех  <math>\stackrel{\to}{P_t}\in \stackrel{\to}{Pl}</math>. Множество контрольных точек <math>\omega</math>
###<math>\stackrel{\to}{D_1}=\stackrel{\to}{P_t}-s_j</math><tt>. Позиция()</tt>
###<math>I_0\gets s_j</math><tt>.Интенсивность(азимут(<math>\stackrel{\to}{D_1}</math>), зенит(<math>\stackrel{\to}{D_1}</math>), <math>\omega</math></tt>)
###<math>Pl </math>. Зарегистрировать звук <math>(\stackrel{\to}{P_t},I_0,\omega)</math>
##Пусть <math>F \gets PC</math><tt>[[Архитектурная акустика/Поверхность|.множество поверхностей]]</tt> (<math>dx(\omega)</math>)
##Пусть <math>F \gets PC</math><tt>[[Архитектурная акустика/Поверхность|.множество поверхностей]]</tt> (<math>dx(\omega)</math>)
##Для всех  <math>\Delta x \in F</math>
###Для всех  <math>\Delta x \in F</math>
## <math>\stackrel{\to}{D}=\stackrel{\to}{\Delta x}-s_j</math><tt>.Позиция()</tt> <math>P_s\gets s_j</math><tt>.Позиция()</tt>
### <math>\stackrel{\to}{D}=\stackrel{\to}{\Delta x}-s_j</math><tt>.Позиция()</tt>
##<math>I_0\gets s_j</math><tt>.Интенсивность(азимут(<math>\stackrel{\to}{D}</math>), зенит(<math>\stackrel{\to}{D}</math>), <math>\omega</math></tt>)
###<math>I_0\gets s_j</math><tt>.Интенсивность(азимут(<math>\stackrel{\to}{D}</math>), зенит(<math>\stackrel{\to}{D}</math>), <math>\omega</math></tt>)
## Пусть <math>r_i</math> - луч на основе <math>\stackrel{\to}{D},\omega,I_0,\beta</math>
### Пусть <math>r_i</math> - луч на основе <math>\stackrel{\to}{D},\omega,I_0,\beta</math>
###Если интенсивность луча <math>r_i</math>  меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
###Если интенсивность луча <math>r_i</math>  меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
####Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
####Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
####Каждый излученный луч пересекается с контрольной плоскостью. Фиксируется характеристика в комплексном виде и записывается в буфер, связанный с точкой.
####Луч пересекает отражающий элемент, возбуждая колебания с определенной фазой в зависимости от того, с какой фазой на него упал луч. В формуле (1) имеем: <math>\frac{\partial\varphi}{\partial\stackrel{\to}{n}}=(grad \varphi_1,\stackrel{\to}{n})=-ike^{i(\omega t-\stackrel{\to}{k}\stackrel{\to}{r_1})}\cos \widehat{\stackrel{\to}{r_1},\stackrel{\to}{n}}</math>
####Луч пересекает отражающий элемент, возбуждая колебания с определенной фазой в зависимости от того, с какой фазой на него упал луч. В формуле (1) имеем: <math>\frac{\partial\varphi}{\partial\stackrel{\to}{n}}=(grad \varphi_1,\stackrel{\to}{n})=-ike^{i(\omega t-\stackrel{\to}{k}\stackrel{\to}{r_1})}\cos \widehat{\stackrel{\to}{r_1},\stackrel{\to}{n}}</math>
####Каждый отражающий элемент становится источником <math>s'_i</math> с определенными характеристиками (объемной скоростью колебаний), т.е. <math>SC' \gets SC' \cup\left\{s'_i\right\}</math>.  
####Каждый отражающий элемент становится источником <math>s'_i</math> с определенными характеристиками (объемной скоростью колебаний), т.е. <math>SC' \gets SC' \cup\left\{s'_i\right\}</math>.  
Строка 53: Строка 57:


=Свойства алгоритма=
=Свойства алгоритма=
 
==Сложность==
Оценим сложность алгоритма.
Пусть <math>S</math> - множество первичных источников (см. свойство <tt>множество источников()</tt> [[Архитектурная акустика/Среда распространения звука|среды распространения звука]]).
Пусть <math>S</math> - множество первичных источников (см. свойство <tt>множество источников()</tt> [[Архитектурная акустика/Среда распространения звука|среды распространения звука]]).
 
[[Архитектурная акустика/Интеграл Релея (версия Кулигина)/Шаг 3.2.2|Шаг 3.2.2]]
Пусть <math>R_s = \sum\limits_{i=1}^{|S|}|s_i.</math><tt>Излучаемый звук()</tt><math>|</math> - суммарное количество лучей от всех первичных источников.
Пусть <math>R_s = \sum\limits_{i=1}^{|S|}|s_i.</math><tt>Излучаемый звук()</tt><math>|</math> - суммарное количество лучей от всех первичных источников.


Тогда сложность: <math>O\left(R_s^{\frac{\max\limits_{i=1,N_s}\left(I(s_i)\right)}{I_0}}\right)</math>, где <math>I\left(s\right) = \max\limits_{\forall\omega\in B\left(s\right)}</math><tt>(s.Интенсивность(0, 0, <math>\omega</math>))</tt> - максимальное значение характеристики звука, излучаемого источником <math>s</math> по частотам <math>B\left(s\right)</math>, на которых определена его АЧХ, <math>I_0</math> - пренебрежимый уровень звука (свойство [[Архитектурная акустика/Среда распространения звука|среды распространения]]).
Тогда сложность: <math>O\left(R_s^{\frac{\max\limits_{i=1,N_s}\left(I(s_i)\right)}{I_0}}\right)</math>, где <math>I\left(s\right) = \max\limits_{\forall\omega\in B\left(s\right)}</math><tt>(s.Интенсивность(0, 0, <math>\omega</math>))</tt> - максимальное значение характеристики звука, излучаемого источником <math>s</math> по частотам <math>B\left(s\right)</math>, на которых определена его АЧХ, <math>I_0</math> - пренебрежимый уровень звука (свойство [[Архитектурная акустика/Среда распространения звука|среды распространения]]).
==Возможности распараллеливания==
<graphviz size=1670px>
digraph relay_kuligin_parallel_run{
rankdir=TB;
node[fontsize=14];
edge[fontsize=14];
G0[label="ВХОД"];
G1[label="1"];
G2[label="2"];
G3[label="3"];
G3_1_s[label="3.1"];
G3_1_f[label="3.1"];
G3_2_s[label="3.2"];
G3_2_f[label="3.2"];
G3_2_s_1_s[label="3.2.1", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.1"];
G3_2_s_1_f[label="3.2.1", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.1"];
G3_2_s_2_s[label="3.2.2", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.2"];
G3_2_s_2_f[label="3.2.2", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.2"];
G3_2_f_1_s[label="3.2.1", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.1"];
G3_2_f_1_f[label="3.2.1", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.1"];
G3_2_f_2_s[label="3.2.2", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.2"];
G3_2_f_2_f[label="3.2.2", URL="https://www.chusov.org/w/index.php?title=Архитектурная_акустика/Интеграл_Релея_(версия_Кулигина)/Шаг_3.2.2"];
G3_2_s_1_s_1_s[shape="diamond", label="3.2.1.1"];
G3_2_s_1_s_1_f[shape="diamond", label="3.2.1.1"];
G3_2_s_1_f_1_s[shape="diamond", label="3.2.1.1"];
G3_2_s_1_f_1_f[shape="diamond", label="3.2.1.1"];
G3_2_s_2_s_1_s[label="3.2.2.1"];
G3_2_s_2_s_1_f[label="3.2.2.1"];
G3_2_s_2_f_1_s[label="3.2.2.1"];
G3_2_s_2_f_1_f[label="3.2.2.1"];
G3_2_f_1_s_1_s[shape="diamond", label="3.2.1.1"];
G3_2_f_1_s_1_f[shape="diamond", label="3.2.1.1"];
G3_2_f_1_f_1_s[shape="diamond", label="3.2.1.1"];
G3_2_f_1_f_1_f[shape="diamond", label="3.2.1.1"];
G3_2_f_2_s_1_s[label="3.2.2.1"];
G3_2_f_2_s_1_f[label="3.2.2.1"];
G3_2_f_2_f_1_s[label="3.2.2.1"];
G3_2_f_2_f_1_f[label="3.2.2.1"];
G3_2_s_1_s_1_s_1[label="3.2.1.1.1"];
G3_2_s_1_s_1_f_1[label="3.2.1.1.1"];
G3_2_s_1_f_1_s_1[label="3.2.1.1.1"];
G3_2_s_1_f_1_f_1[label="3.2.1.1.1"];
G3_2_s_2_s_1_s_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_s_1_s_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_s_1_f_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_s_1_f_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_f_1_s_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_f_1_s_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_f_1_f_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_s_2_f_1_f_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_f_1_s_1_s_1[label="3.2.1.1.1"];
G3_2_f_1_s_1_f_1[label="3.2.1.1.1"];
G3_2_f_1_f_1_s_1[label="3.2.1.1.1"];
G3_2_f_1_f_1_f_1[label="3.2.1.1.1"];
G3_2_f_2_s_1_s_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_s_1_s_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_s_1_f_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_s_1_f_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_f_1_s_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_f_1_s_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_f_1_f_1_s[shape="diamond", label="3.2.2.1.1"];
G3_2_f_2_f_1_f_1_f[shape="diamond", label="3.2.2.1.1"];
G3_2_s_1_s_1_s_2[label="3.2.1.1.2"];
G3_2_s_1_s_1_f_2[label="3.2.1.1.2"];
G3_2_s_1_f_1_s_2[label="3.2.1.1.2"];
G3_2_s_1_f_1_f_2[label="3.2.1.1.2"];
G3_2_s_2_s_1_s_1_s_1[label="3.2.2.1.1.1"];
G3_2_s_2_s_1_s_1_f_1[label="3.2.2.1.1.1"];
G3_2_s_2_s_1_f_1_s_1[label="3.2.2.1.1.1"];
G3_2_s_2_s_1_f_1_f_1[label="3.2.2.1.1.1"];
G3_2_s_2_f_1_s_1_s_1[label="3.2.2.1.1.1"];
G3_2_s_2_f_1_s_1_f_1[label="3.2.2.1.1.1"];
G3_2_s_2_f_1_f_1_s_1[label="3.2.2.1.1.1"];
G3_2_s_2_f_1_f_1_f_1[label="3.2.2.1.1.1"];
G3_2_f_1_s_1_s_2[label="3.2.2.1.1.1"];
G3_2_f_1_s_1_f_2[label="3.2.2.1.1.1"];
G3_2_f_1_f_1_s_2[label="3.2.2.1.1.1"];
G3_2_f_1_f_1_f_2[label="3.2.2.1.1.1"];
G3_2_f_2_s_1_s_1_s_1[label="3.2.2.1.1.1"];
G3_2_f_2_s_1_s_1_f_1[label="3.2.2.1.1.1"];
G3_2_f_2_s_1_f_1_s_1[label="3.2.2.1.1.1"];
G3_2_f_2_s_1_f_1_f_1[label="3.2.2.1.1.1"];
G3_2_f_2_f_1_s_1_s_1[label="3.2.2.1.1.1"];
G3_2_f_2_f_1_s_1_f_1[label="3.2.2.1.1.1"];
G3_2_f_2_f_1_f_1_s_1[label="3.2.2.1.1.1"];
G3_2_f_2_f_1_f_1_f_1[label="3.2.2.1.1.1"];
G3_2_s_2_s_1_s_1_s_2[label="3.2.2.1.1.2"];
G3_2_s_2_s_1_s_1_f_2[label="3.2.2.1.1.2"];
G3_2_s_2_s_1_f_1_s_2[label="3.2.2.1.1.2"];
G3_2_s_2_s_1_f_1_f_2[label="3.2.2.1.1.2"];
G3_2_s_2_f_1_s_1_s_2[label="3.2.2.1.1.2"];
G3_2_s_2_f_1_s_1_f_2[label="3.2.2.1.1.2"];
G3_2_s_2_f_1_f_1_s_2[label="3.2.2.1.1.2"];
G3_2_s_2_f_1_f_1_f_2[label="3.2.2.1.1.2"];
G3_2_f_2_s_1_s_1_s_2[label="3.2.2.1.1.2"];
G3_2_f_2_s_1_s_1_f_2[label="3.2.2.1.1.2"];
G3_2_f_2_s_1_f_1_s_2[label="3.2.2.1.1.2"];
G3_2_f_2_s_1_f_1_f_2[label="3.2.2.1.1.2"];
G3_2_f_2_f_1_s_1_s_2[label="3.2.2.1.1.2"];
G3_2_f_2_f_1_s_1_f_2[label="3.2.2.1.1.2"];
G3_2_f_2_f_1_f_1_s_2[label="3.2.2.1.1.2"];
G3_2_f_2_f_1_f_1_f_2[label="3.2.2.1.1.2"];
{ rank = same; "G2"; "ВЫХОД";}
{ rank = same; "G3_1_s"; "G3_1_f";}
{ rank = same; "G3_2_s"; "G3_2_f";}
{ rank = same; "G3_2_s_1_s"; "G3_2_s_2_s"; "G3_2_s_1_f"; "G3_2_s_2_f"; "G3_2_f_2_f"; "G3_2_f_1_f";"G3_2_f_2_s"; "G3_2_f_1_s";}
G3_2_s_1_s->G3_2_s_2_s->G3_2_s_1_f->G3_2_s_2_f[color="white"];
G3_2_f_2_f->G3_2_f_1_f->G3_2_f_2_s->G3_2_f_1_s[color="white"];
G0->G1->G2->ВЫХОД;
G2->G3[label="ложь"];
G3->G3_1_s[label=<s<sub>1</sub>>];
G3->G3_1_f[label=<s<sub>|SC|</sub>>];
G3_1_s->G3_2_s;
G3_1_f->G3_2_f;
G3_2_s->G3_2_s_1_s[label=<ω<sub>1</sub>>];
G3_2_s->G3_2_s_2_s[label=<ω<sub>1</sub>>];
G3_2_s->G3_2_s_1_f[label=<ω<sub>|W|</sub>>];
G3_2_s->G3_2_s_2_f[label=<ω<sub>|W|</sub>>];
G3_2_f->G3_2_f_1_s[label=<ω<sub>1</sub>>];
G3_2_f->G3_2_f_2_s[label=<ω<sub>1</sub>>];
G3_2_f->G3_2_f_1_f[label=<ω<sub>|W|</sub>>];
G3_2_f->G3_2_f_2_f[label=<ω<sub>|W|</sub>>];
G3_2_s_1_s->G3_2_s_1_s_1_s[label=<ρ<sub>1</sub>>];
G3_2_s_1_s->G3_2_s_1_s_1_f[label=<ρ<sub>|REG|</sub>>];
G3_2_s_2_s->G3_2_s_2_s_1_s[label=<f<sub>1</sub>>];
G3_2_s_2_s->G3_2_s_2_s_1_f[label=<f<sub>|F|</sub>>];
G3_2_s_1_f->G3_2_s_1_f_1_s[label=<ρ<sub>1</sub>>];
G3_2_s_1_f->G3_2_s_1_f_1_f[label=<ρ<sub>|REG|</sub>>];
G3_2_s_2_f->G3_2_s_2_f_1_s[label=<f<sub>1</sub>>];
G3_2_s_2_f->G3_2_s_2_f_1_f[label=<f<sub>|F|</sub>>];
G3_2_f_1_s->G3_2_f_1_s_1_s[label=<ρ<sub>1</sub>>];
G3_2_f_1_s->G3_2_f_1_s_1_f[label=<ρ<sub>|REG|</sub>>];
G3_2_f_2_s->G3_2_f_2_s_1_s[label=<f<sub>1</sub>>];
G3_2_f_2_s->G3_2_f_2_s_1_f[label=<f<sub>|F|</sub>>];
G3_2_f_1_f->G3_2_f_1_f_1_s[label=<ρ<sub>1</sub>>];
G3_2_f_1_f->G3_2_f_1_f_1_f[label=<ρ<sub>|REG|</sub>>];
G3_2_f_2_f->G3_2_f_2_f_1_s[label=<f<sub>1</sub>>];
G3_2_f_2_f->G3_2_f_2_f_1_f[label=<f<sub>|F|</sub>>];
G3_2_s_1_s_join[label="join"];
G3_2_s_1_f_join[label="join"];
G3_2_f_1_s_join[label="join"];
G3_2_f_1_f_join[label="join"];
G3_2_s_2_s_1_s_join[label="join"];
G3_2_s_2_s_1_f_join[label="join"];
G3_2_s_2_f_1_s_join[label="join"];
G3_2_s_2_f_1_f_join[label="join"];
G3_2_f_2_s_1_s_join[label="join"];
G3_2_f_2_s_1_f_join[label="join"];
G3_2_f_2_f_1_s_join[label="join"];
G3_2_f_2_f_1_f_join[label="join"];
G3_2_s_2_s_join[label="join"];
G3_2_s_2_f_join[label="join"];
G3_2_f_2_s_join[label="join"];
G3_2_f_2_f_join[label="join"];
G3_2_s_s_join[label="join"];
G3_2_s_f_join[label="join"];
G3_2_f_s_join[label="join"];
G3_2_f_f_join[label="join"];
G3_2_s_join[label="join"];
G3_2_f_join[label="join"];
G3_join[label="join"];
G3_2_s_1_s_1_s->G3_2_s_1_s_1_s_1->G3_2_s_1_s_1_s_2->G3_2_s_1_s_join;
G3_2_s_1_s_1_f->G3_2_s_1_s_1_f_1->G3_2_s_1_s_1_f_2->G3_2_s_1_s_join;
G3_2_s_2_s_1_s->G3_2_s_2_s_1_s_1_s[label=<p<sub>1</sub>>];
G3_2_s_2_s_1_s->G3_2_s_2_s_1_s_1_f[label=<p<sub>|f|</sub>>];
G3_2_s_2_s_1_f->G3_2_s_2_s_1_f_1_s[label=<p<sub>1</sub>>];
G3_2_s_2_s_1_f->G3_2_s_2_s_1_f_1_f[label=<p<sub>|f|</sub>>];
G3_2_s_1_f_1_s->G3_2_s_1_f_1_s_1->G3_2_s_1_f_1_s_2->G3_2_s_1_f_join;
G3_2_s_1_f_1_f->G3_2_s_1_f_1_f_1->G3_2_s_1_f_1_f_2->G3_2_s_1_f_join;
G3_2_s_2_f_1_s->G3_2_s_2_f_1_s_1_s[label=<p<sub>1</sub>>];
G3_2_s_2_f_1_s->G3_2_s_2_f_1_s_1_f[label=<p<sub>|f|</sub>>];
G3_2_s_2_f_1_f->G3_2_s_2_f_1_f_1_s[label=<p<sub>1</sub>>];
G3_2_s_2_f_1_f->G3_2_s_2_f_1_f_1_f[label=<p<sub>|f|</sub>>];
G3_2_f_1_s_1_s->G3_2_f_1_s_1_s_1->G3_2_f_1_s_1_s_2->G3_2_f_1_s_join;
G3_2_f_1_s_1_f->G3_2_f_1_s_1_f_1->G3_2_f_1_s_1_f_2->G3_2_f_1_s_join;
G3_2_f_2_s_1_s->G3_2_f_2_s_1_s_1_s[label=<p<sub>1</sub>>];
G3_2_f_2_s_1_s->G3_2_f_2_s_1_s_1_f[label=<p<sub>|f|</sub>>];
G3_2_f_2_s_1_f->G3_2_f_2_s_1_f_1_s[label=<p<sub>1</sub>>];
G3_2_f_2_s_1_f->G3_2_f_2_s_1_f_1_f[label=<p<sub>|f|</sub>>];
G3_2_f_1_f_1_s->G3_2_f_1_f_1_s_1->G3_2_f_1_f_1_s_2->G3_2_f_1_f_join;
G3_2_f_1_f_1_f->G3_2_f_1_f_1_f_1->G3_2_f_1_f_1_f_2->G3_2_f_1_f_join;
G3_2_f_2_f_1_s->G3_2_f_2_f_1_s_1_s[label=<p<sub>1</sub>>];
G3_2_f_2_f_1_s->G3_2_f_2_f_1_s_1_f[label=<p<sub>|f|</sub>>];
G3_2_f_2_f_1_f->G3_2_f_2_f_1_f_1_s[label=<p<sub>1</sub>>];
G3_2_f_2_f_1_f->G3_2_f_2_f_1_f_1_f[label=<p<sub>|f|</sub>>];
G3_2_s_2_s_1_s_1_s->G3_2_s_2_s_1_s_1_s_1->G3_2_s_2_s_1_s_1_s_2->G3_2_s_2_s_1_s_join;
G3_2_s_2_s_1_s_1_f->G3_2_s_2_s_1_s_1_f_1->G3_2_s_2_s_1_s_1_f_2->G3_2_s_2_s_1_s_join;
G3_2_s_2_s_1_f_1_s->G3_2_s_2_s_1_f_1_s_1->G3_2_s_2_s_1_f_1_s_2->G3_2_s_2_s_1_f_join;
G3_2_s_2_s_1_f_1_f->G3_2_s_2_s_1_f_1_f_1->G3_2_s_2_s_1_f_1_f_2->G3_2_s_2_s_1_f_join;
G3_2_s_2_f_1_s_1_s->G3_2_s_2_f_1_s_1_s_1->G3_2_s_2_f_1_s_1_s_2->G3_2_s_2_f_1_s_join;
G3_2_s_2_f_1_s_1_f->G3_2_s_2_f_1_s_1_f_1->G3_2_s_2_f_1_s_1_f_2->G3_2_s_2_f_1_s_join;
G3_2_s_2_f_1_f_1_s->G3_2_s_2_f_1_f_1_s_1->G3_2_s_2_f_1_f_1_s_2->G3_2_s_2_f_1_f_join;
G3_2_s_2_f_1_f_1_f->G3_2_s_2_f_1_f_1_f_1->G3_2_s_2_f_1_f_1_f_2->G3_2_s_2_f_1_f_join;
G3_2_f_2_s_1_s_1_s->G3_2_f_2_s_1_s_1_s_1->G3_2_f_2_s_1_s_1_s_2->G3_2_f_2_s_1_s_join;
G3_2_f_2_s_1_s_1_f->G3_2_f_2_s_1_s_1_f_1->G3_2_f_2_s_1_s_1_f_2->G3_2_f_2_s_1_s_join;
G3_2_f_2_s_1_f_1_s->G3_2_f_2_s_1_f_1_s_1->G3_2_f_2_s_1_f_1_s_2->G3_2_f_2_s_1_f_join;
G3_2_f_2_s_1_f_1_f->G3_2_f_2_s_1_f_1_f_1->G3_2_f_2_s_1_f_1_f_2->G3_2_f_2_s_1_f_join;
G3_2_f_2_f_1_s_1_s->G3_2_f_2_f_1_s_1_s_1->G3_2_f_2_f_1_s_1_s_2->G3_2_f_2_f_1_s_join;
G3_2_f_2_f_1_s_1_f->G3_2_f_2_f_1_s_1_f_1->G3_2_f_2_f_1_s_1_f_2->G3_2_f_2_f_1_s_join;
G3_2_f_2_f_1_f_1_s->G3_2_f_2_f_1_f_1_s_1->G3_2_f_2_f_1_f_1_s_2->G3_2_f_2_f_1_f_join;
G3_2_f_2_f_1_f_1_f->G3_2_f_2_f_1_f_1_f_1->G3_2_f_2_f_1_f_1_f_2->G3_2_f_2_f_1_f_join;
G3_2_s_1_s_1_s->G3_2_s_1_s_join[label="ложь"];
G3_2_s_1_s_1_f->G3_2_s_1_s_join[label="ложь"];
G3_2_s_1_f_1_s->G3_2_s_1_f_join[label="ложь"];
G3_2_s_1_f_1_f->G3_2_s_1_f_join[label="ложь"];
G3_2_f_1_s_1_s->G3_2_f_1_s_join[label="ложь"];
G3_2_f_1_s_1_f->G3_2_f_1_s_join[label="ложь"];
G3_2_f_1_f_1_s->G3_2_f_1_f_join[label="ложь"];
G3_2_f_1_f_1_f->G3_2_f_1_f_join[label="ложь"];
G3_2_s_2_s_1_s_1_s->G3_2_s_2_s_1_s_join[label="ложь"];
G3_2_s_2_s_1_s_1_f->G3_2_s_2_s_1_s_join[label="ложь"];
G3_2_s_2_s_1_f_1_s->G3_2_s_2_s_1_f_join[label="ложь"];
G3_2_s_2_s_1_f_1_f->G3_2_s_2_s_1_f_join[label="ложь"];
G3_2_s_2_f_1_s_1_s->G3_2_s_2_f_1_s_join[label="ложь"];
G3_2_s_2_f_1_s_1_f->G3_2_s_2_f_1_s_join[label="ложь"];
G3_2_s_2_f_1_f_1_s->G3_2_s_2_f_1_f_join[label="ложь"];
G3_2_s_2_f_1_f_1_f->G3_2_s_2_f_1_f_join[label="ложь"];
G3_2_f_2_s_1_s_1_s->G3_2_f_2_s_1_s_join[label="ложь"];
G3_2_f_2_s_1_s_1_f->G3_2_f_2_s_1_s_join[label="ложь"];
G3_2_f_2_s_1_f_1_s->G3_2_f_2_s_1_f_join[label="ложь"];
G3_2_f_2_s_1_f_1_f->G3_2_f_2_s_1_f_join[label="ложь"];
G3_2_f_2_f_1_s_1_s->G3_2_f_2_f_1_s_join[label="ложь"];
G3_2_f_2_f_1_s_1_f->G3_2_f_2_f_1_s_join[label="ложь"];
G3_2_f_2_f_1_f_1_s->G3_2_f_2_f_1_f_join[label="ложь"];
G3_2_f_2_f_1_f_1_f->G3_2_f_2_f_1_f_join[label="ложь"];
G3_2_s_2_s_1_s_join->G3_2_s_2_s_join;
G3_2_s_2_s_1_f_join->G3_2_s_2_s_join;
G3_2_s_2_f_1_s_join->G3_2_s_2_f_join;
G3_2_s_2_f_1_f_join->G3_2_s_2_f_join;
G3_2_f_2_s_1_s_join->G3_2_f_2_s_join;
G3_2_f_2_s_1_f_join->G3_2_f_2_s_join;
G3_2_f_2_f_1_s_join->G3_2_f_2_f_join;
G3_2_f_2_f_1_f_join->G3_2_f_2_f_join;
G3_2_s_1_s_join->G3_2_s_s_join;
G3_2_s_1_f_join->G3_2_s_f_join;
G3_2_f_1_s_join->G3_2_f_s_join;
G3_2_f_1_f_join->G3_2_f_f_join;
G3_2_s_2_s_join->G3_2_s_s_join;
G3_2_s_2_f_join->G3_2_s_f_join;
G3_2_f_2_s_join->G3_2_f_s_join;
G3_2_f_2_f_join->G3_2_f_f_join;
G3_2_s_s_join->G3_2_s_join;
G3_2_s_f_join->G3_2_s_join;
G3_2_f_s_join->G3_2_f_join;
G3_2_f_f_join->G3_2_f_join;
G3_2_s_join->G3_join;
G3_2_f_join->G3_join;
G3_join->"Переход на шаг 2";
}
</graphviz>
Граф параллельного выполнения алгоритма.

Текущая версия на 20:28, 7 сентября 2017

Архитектурная акустика\Интеграл Релея (версия Кулигина)

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

Является вариантом реализации модели расчета акустического поля, в котором, в отличие от исходной версии вся поверхность помещения разбивается на элементы Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma малой площади. В модели анализируется влияние каждого имеющегося источника звука на каждый возможный элемент излучения Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma . Каждый источник Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s оказывает влияние на каждый элемент Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma , если только Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma не находится в тени источника Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s , и влияние этого источника на поверхность не падает ниже пренебрежимого уровня звука модели среды распространения. Если влияние действительно имеется, элемент Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma сам становится источником отраженного звука. Направленность такого источника рассчитывается с помощью интеграла Релея:

Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \varphi\left(\theta, \varphi, r\right) = \frac{1}{2\pi}\iint\limits_{\sigma}\frac{\partial\varphi_1}{\partial\stackrel{\to }{n}}\frac{e^{-i k r}}{r}d\sigma

на сфере , где:

  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \varphi(\theta, \varphi, r) - потенциал колебательной скорости в точке, заданной в сферической системе координат, в которой Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \theta = 0, \varphi = 0, r = 1 - единичный вектор сонаправленный главной оси источника.
  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \sigma - поверхность или ее часть, которая колеблется как поршень.
  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): d\sigma - малый элемент поверхности в окрестности некоторой точки Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (x, y) , принадлежащей поверхности и заданной в системе координат поверхности, в которой аппликата сонаправлена главной оси источника.
  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \frac{\partial\varphi}{\partial\stackrel{\to}{n}}=v_n - проекция градиента потенциала колебательной скорости Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \varphi на нормаль Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{n} к Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \sigma . Фактически является нормальной составляющей колебательной скорости источника
  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): i = \sqrt{-1} .
  • Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): r'\left(\theta, \varphi, r\right)=\sqrt{\left(r\sin\varphi\cos\theta-x\right)^2 + \left(r\sin\varphi\sin\theta-y\right)^2+\left(r\cos\varphi\right)^2} .


Алгоритм

Предусловия:

  1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \beta - коэффициент ослабления
  2. N - порядок источника, принимает значения от 1 для первичного источника и до бесконечности
  3. Пусть M - среда распространения звука
  4. SC = M.Множество источников();
  5. PC = M.Множество отражающих элементов()
  6. PlC = M.Множество множество секущих плоскостей() - множество плоскостей вывода результатов.
  7. расстояние(точка1, точка2) - функция расстояния между двумя точками.
  8. Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): dx(\lambda)=\lambda\cdot c , где Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \lambda - длина волны, Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): c - входной параметр-коэффициент.

Течение алгоритма:

  1. Задаются полигоны всех поверхностей помещения.
  2. Разбитие всех полигонов поверхностей помещения на элементы (источники) с некоторыми линейными размерами, которое зависит от частоты рассчитываемого тона.
  3. Задаются контрольные плоскости вывода результата.
  4. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): SC' \gets SC - временное множество источников, для хранения первичных и вторичных источников SC'
  5. Для всех источников Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s_j\in SC' (цикл):
    1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): SC' \gets SC' \setminus\left\{s_j\right\}
    2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s_j создает лучи во все отражающие элементы - источники следующего порядка.
    3. для всех k от 0 до Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s_j . Ширина полосы частот() -1
      1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega \gets s_j .Частота(k)
    4. Для всех Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): Pl \in PlC
      1. Для всех Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{P_t}\in \stackrel{\to}{Pl} . Множество контрольных точек Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega
      2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D_1}=\stackrel{\to}{P_t}-s_j . Позиция()
      3. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I_0\gets s_j .Интенсивность(азимут(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D_1} ), зенит(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D_1} ), Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega )
      4. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): Pl . Зарегистрировать звук Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (\stackrel{\to}{P_t},I_0,\omega)
    5. Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): F \gets PC .множество поверхностей ()
      1. Для всех Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \Delta x \in F
      2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D}=\stackrel{\to}{\Delta x}-s_j .Позиция()
      3. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I_0\gets s_j .Интенсивность(азимут(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D} ), зенит(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D} ), Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega )
      4. Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): r_i - луч на основе Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \stackrel{\to}{D},\omega,I_0,\beta
      5. Если интенсивность луча Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): r_i меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
        1. Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
        2. Луч пересекает отражающий элемент, возбуждая колебания с определенной фазой в зависимости от того, с какой фазой на него упал луч. В формуле (1) имеем: Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \frac{\partial\varphi}{\partial\stackrel{\to}{n}}=(grad \varphi_1,\stackrel{\to}{n})=-ike^{i(\omega t-\stackrel{\to}{k}\stackrel{\to}{r_1})}\cos \widehat{\stackrel{\to}{r_1},\stackrel{\to}{n}}
        3. Каждый отражающий элемент становится источником Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s'_i с определенными характеристиками (объемной скоростью колебаний), т.е. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): SC' \gets SC' \cup\left\{s'_i\right\} .
  1. Конец цикла

Свойства алгоритма

Сложность

Оценим сложность алгоритма. Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): S - множество первичных источников (см. свойство множество источников() среды распространения звука). Шаг 3.2.2 Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): R_s = \sum\limits_{i=1}^{|S|}|s_i. Излучаемый звук()Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): | - суммарное количество лучей от всех первичных источников.

Тогда сложность: Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): O\left(R_s^{\frac{\max\limits_{i=1,N_s}\left(I(s_i)\right)}{I_0}}\right) , где Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I\left(s\right) = \max\limits_{\forall\omega\in B\left(s\right)} (s.Интенсивность(0, 0, Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega )) - максимальное значение характеристики звука, излучаемого источником Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s по частотам Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): B\left(s\right) , на которых определена его АЧХ, - пренебрежимый уровень звука (свойство среды распространения).

Возможности распараллеливания

Граф параллельного выполнения алгоритма.