<jupyter_start><jupyter_text>Биения  Простые гармонические функции Вернемся к предыдущему занятию. Попробуем создать графики простейших гармонических функций - синусоиды и косинусоиды.<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 1.0
t = linspace(0,17,num=300)
x1 = a1 * sin(w1 * t)
x2 = a2 * cos(w2 * t)
plt.plot(t,x1)
plt.plot(t,x2)<jupyter_output><empty_output><jupyter_text>Проведем несколько наглядных изменений частот и амплитут синусоид:<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 3.0
t = linspace(0,17,num=300)
x1 = a1 * sin(w1 * t)
x2 = a2 * cos(w2 * t)
plt.plot(t,x1)
plt.plot(t,x2)
from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 2.0
w1 = 1.0
w2 = 1.0
t = linspace(0,17,num=300)
x1 = a1 * sin(w1 * t)
x2 = a2 * cos(w2 * t)
plt.plot(t,x1)
plt.plot(t,x2)<jupyter_output><empty_output><jupyter_text>Далее изобразим кривую, которая является суммой двух гармоник:<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 1.0
t = linspace(0,17,num=300)
x1 = a1 * cos(w1 * t)
x2 = a2 * cos(w2 * t)
y = x1 + x2
plt.plot(t,y)
plt.plot(t,x1)
plt.plot(t,x2)<jupyter_output><empty_output><jupyter_text>Пока гармоники совпадают по фазе - график суммарной функции просто удваивает амплитуду. Что произойдет, если фазы гармоник разойдутся на 180 градусов?<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 1.0
ph1 = 3.1415196
ph2 = 0
t = linspace(0,17,num=300)
x1 = a1 * cos(w1 * t + ph1)
x2 = a2 * cos(w2 * t + ph2)
y = x1 + x2
plt.plot(t,y)
plt.plot(t,x1)
plt.plot(t,x2)<jupyter_output><empty_output><jupyter_text>Что произойдет, если фазы гармоник разойдутся на 90 градусов?<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 1.0
ph1 = 3.1415196 / 2
ph2 = 0
t = linspace(0,17,num=300)
x1 = a1 * cos(w1 * t + ph1)
x2 = a2 * cos(w2 * t + ph2)
y = x1 + x2
plt.plot(t,y)
plt.plot(t,x1)
plt.plot(t,x2)<jupyter_output><empty_output><jupyter_text>Вернем на место фазы, при этом поменяем отношение частот слагаемых гармоник. Также для наглядности увеличим масштаб времени:<jupyter_code>from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 1.2
ph1 = 0
ph2 = 0
t = linspace(0,90,num=300) # масштаб времени был увеличен до 60 единиц
x1 = a1 * cos(w1 * t + ph1)
x2 = a2 * cos(w2 * t + ph2)
y = x1 + x2
plt.plot(t,y)
plt.plot(t,x1)
plt.plot(t,x2)
from numpy import *
import matplotlib.pyplot as plt

a1 = 1.0
a2 = 1.0
w1 = 1.0
w2 = 2
ph1 = 0
ph2 = 0
t = linspace(0,90,num=300) # масштаб времени был увеличен до 60 единиц
x1 = a1 * cos(w1 * t + ph1)
x2 = a2 * cos(w2 * t + ph2)
y = x1 + x2
plt.plot(t,y)<jupyter_output><empty_output><jupyter_text>Задания для самостоятельного выполнения.Дайте ответы на следующие вопросы, обосновав их соответствующими скриптами на Питоне. Включите в отчет словесные выводы, исходники скриптов на Питоне, а также полученные графики.**Задание 1.** В прошлой работе вы строили фигуры Лиссажу с использованием следующих соотношений частот:$$ \frac{ω1}{ω2} = 1.25 $$$$ \frac{ω1}{ω2} = 1.75 $$$$ \frac{ω1}{ω2} = 2 $$Постройте графики биений для данных соотношений частот и сравните их с фигурами Лиссажу.**Задание 2.**Частота биений при сложении двух гармонических колебаний равна разности их частот. Повторится ли через период биений после наибольшего максимума в одном всплеске биений наибольший максимум в следующем?**Задание 3.** Будет ли синусоидой «огибающая максимумов» при неравных друг другу амплитудах складываемых колебаний?**Задание 4.** Другого вида биения можно наблюдать при ω1 << ω2 . Для того чтобы увидеть, как действительно выглядят колебания в этом случае, желательно увеличить время вывода биений (т.е. диапазон изменения переменной t) примерно в 10-20 раз.**Задание 5.** Определите, как изменятся фигуры Лиссажу для задания 4.<jupyter_code>%history -p<jupyter_output>>>> %pylab inline
>>> from numpy import *
... import matplotlib.pyplot as plt
... 
... a1 = 1.0
... a2 = 1.0
... w1 = 1.0
... w2 = 1.0
... t = linspace(0,17,num=300)
... x1 = a1 * sin(w1 * t)
... x2 = a2 * cos(w2 * t)
... plt.plot(t,x1)
... plt.plot(t,x2)
...
>>> from numpy import *
... import matplotlib.pyplot as plt
... 
... a1 = 1.0
... a2 = 1.0
... w1 = 1.0
... w2 = 3.0
... t = linspace(0,17,num=300)
... x1 = a1 * sin(w1 * t)
... x2 = a2 * cos(w2 * t)
... plt.plot(t,x1)
... plt.plot(t,x2)
...
>>> from numpy import *
... import matplotlib.pyplot as plt
... 
... a1 = 1.0
... a2 = 2.0
... w1 = 1.0
... w2 = 1.0
... t = linspace(0,17,num=300)
... x1 = a1 * sin(w1 * t)
... x2 = a2 * cos(w2 * t)
... plt.plot(t,x1)
... plt.plot(t,x2)
...
>>> from numpy import *
... import matplotlib.pyplot as plt
... 
... a1 = 1.0
... a2 = 1.0
... w1 = 1.0
... w2 = 1.0
... t = linspace(0,17,num=300)
... x1 = a1 * cos(w1 * t)
... x2 = a2 * cos(w2 * t)
... y = x1 + x2
... plt.plot(t,y)
... plt.plot(t,x1)
...[...]
{'fraction_non_alphanumeric': 0.15513794482207116, 'fraction_numerical': 0.0785685725709716, 'mean_word_length': 3.495058400718778, 'pattern_counts': {'":': 0, '<': 30, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '103161', 'license': 'Unlicense', 'n_tokens_mistral': 2567, 'n_tokens_neox': 2632, 'n_words': 598, 'path': 'visualisation_matplotlib/.ipynb_checkpoints/04_beats-checkpoint.ipynb', 'repo_name': 'boykoatwork/jupyter', 'size': '5002'}