11.6.1. Визуализация волн от источника звука
Рассмотрим хорошо известный физический эффект Доплера, возникающий при движении источника звука с частотой fu, относительно приемника звука. При этом меняется частота звука, воспринимаемая приемником
Будем считать приемник звука неподвижным, т.е.
Ниже представлена процедура позволяющая создавать анимационные эффекты перемещения источника звука (маленькая окружность) с разной скоростью и наблюдать картину создания и распространения звуковых волн:
> restart:with(plots):with(plottools):
> wave := proc(n, initSpeed, finalSpeed)
local i, li, j, circles, se, source, slope:
slope := (finalSpeed - initSpeed) / n:
for i from 0 to n*4 do
li := NULL:
for j from 1 to n do
if i > (j-1)*4 then
circles[j][i] := circle([initSpeed * (j-1) + 0.5 * slope*(j-1)^2, 0], (i-(j-1)*4) / 4):
li := circles[j][i], li:
end if:
end do:
source := point([initSpeed * i/4 + 0.5 * slope * (1/4)^2, 0], @KOD = color=blue, symbol=circle, symbolsize=12):
animation||i := display([li, source]):
end do:
se := animation || (0..n*4):
end proc:
В этой процедуре n задает число отображаемых волн, initSpeed и finalSpeed — начальная и конечная скорость движения источника звука. Разумеется, наблюдаемая на экране скорость движения звуковых волн намного меньше реальной с тем, чтобы мы могли воспринять это движение и осознать смысл представленных кадров анимации.
11.6.2. Звуковые волны от неподвижного источника
Для наблюдения эффекта создания и движения звуковых волн при неподвижном источнике звука исполним команды:
> wave1 := wave(10,0,0):
> display(wave1,insequence=true,scaling=constrained, axes=none);
Мы увидим рисунок в виде маленького кружка в центре — это источник звука. Пустив анимацию можно наблюдать эффект создания звуковых волн в виде ряда концентрических окружностей с увеличивающимся диаметром — рис. 11.56.
Рис. 11.56. Картина звуковых волн от неподвижного источника звука
11.6.3. Случай движения источника звука со скоростью, меньшей скорости звука
Теперь рассмотрим случай, когда источник звука перемещается со скоростью, меньшей скорости звука:
> wave2 := wave(10,0.5,0.5):
> display(wave2,insequence=true,scaling=constrained, axes=none);
В этом случае мы наблюдаем разрежение звуковых волн после источника звука и их сжатие перед источником — рис. 11.57. Это означает изменение длины волны звуковых колебаний — случай, который многие из нас наблюдали, когда поезд с включенной сиреной проносится мимо нас и удаляется.
Рис. 11.57. Картина звуковых волн от источника звука, перемешаемого со скоростью меньше скорости звука
11.6.4. Случай движения источника звука со скоростью звука
Современные реактивные самолеты легко достигают скорости звука и могут даже превысить ее. Это делает интересным случай движения источника звука со скоростью звука. Для наблюдения анимации в этом случае достаточно исполнить команды:
> wave3 := wave(10,1,1):
> display(wave3,insequence=true,scaling=constrained, axes=none);
В данном случае картина распространения звуковых волн представлена на рис. 11.58. Видно, что перед источником звука происходит наслоение фронтов волн — создается так называемый звуковой барьер.
Рис. 11.58. Картина звуковых волн от источника звука, перемещаемого со скоростью звука
11.6.5. Случай движения источника звука со скоростью, большей скорости звука
Если источник звука движется со скоростью, превышающей скорость звука, то для имитации этого эффекта надо задать команды:
> wave4 := wave(10,1.5,1.5):
> display(wave4, msequence=true, sealirtg=constrained, axes=none);
В этом случае (рис. 11.59) волны звука как бы отрываются от источника и образуют в пространстве характерный конус с вершиной в области источника звука.
Рис. 11.59. Картина звуковых волн от источника звука, перемещаемого со скоростью, превышающей