Колебательное движение. Гармонические колебания
-$T = \Delta t / N$, $\nu = 1/T$, $\omega = 2\pi/T$, $x = A\cos(\omega t + \varphi_0)$
-diff --git a/frontend/js/phys-fx.js b/frontend/js/phys-fx.js
index 46f055f..5a53f6e 100644
--- a/frontend/js/phys-fx.js
+++ b/frontend/js/phys-fx.js
@@ -321,4 +321,72 @@ class Pendulum {
}
P.Pendulum = Pendulum;
+/* ============================================================ */
+/* EnergyView — превращения энергии при гарм. колебаниях */
+/* Показывает W_к, W_п, W_мех=const на одном графике */
+/* ============================================================ */
+
+class EnergyView {
+ constructor(container, opts){
+ opts = opts || {};
+ this.el = (typeof container === 'string') ? document.querySelector(container) : container;
+ this.W = opts.width || 560;
+ this.H = opts.height || 240;
+ this.pad = opts.pad || 36;
+ this.A = opts.A !== undefined ? opts.A : 1.0;
+ this.omega = opts.omega !== undefined ? opts.omega : 2 * Math.PI;
+ this.tWindow = opts.tWindow || 4;
+ this.paused = false;
+ this.t = 0;
+ this.history = []; // [t, Wk, Wp]
+ util.subscribe(this);
+ util.observe(this);
+ this.render();
+ }
+ setA(v){ this.A = v; this.history = []; }
+ setOmega(v){ this.omega = v; this.history = []; }
+ update(dt){
+ this.t += dt;
+ /* Для x = A cos(ωt): v = -Aω sin(ωt)
+ W_к = m v² / 2 = (1/2) m A² ω² sin²(ωt)
+ W_п = k x² / 2 = (1/2) m ω² · A² cos²(ωt) (k = m ω²)
+ В безразмерных: положим (1/2)mω²A² = 1 — тогда обе варьируются 0..1, сумма = 1 */
+ const c = Math.cos(this.omega * this.t);
+ const s = Math.sin(this.omega * this.t);
+ const Wp = c * c;
+ const Wk = s * s;
+ this.history.push([this.t, Wk, Wp]);
+ while (this.history.length && this.history[0][0] < this.t - this.tWindow) this.history.shift();
+ }
+ render(){
+ if (!this.el) return;
+ const W = this.W, H = this.H, pad = this.pad;
+ const tMin = Math.max(0, this.t - this.tWindow);
+ const yRange = [0, 1.1];
+ const ax = util.axes(W, H, pad, this.tWindow, yRange);
+ function path(idx, color, label){
+ if (this.history.length < 2) return '';
+ const pts = this.history.map(p => (ax.left + (p[0] - tMin) * (ax.right - ax.left) / this.tWindow).toFixed(1) + ',' + ax.toY(p[idx]).toFixed(1));
+ return '
Колебания — повторяющиеся движения вокруг положения равновесия. Изучаем гармонические колебания, маятники, превращения энергии, резонанс и распространение колебаний в виде волн (включая звук).
+Колебательное движение, гармонические колебания, маятники, превращения энергии, резонанс, продольные и поперечные волны, звук. Глава содержит 6 параграфов и финальный этап с боссами.
$T = \Delta t / N$, $\nu = 1/T$, $\omega = 2\pi/T$, $x = A\cos(\omega t + \varphi_0)$
-$T_{пр} = 2\pi\sqrt{m/k}$, $T_{мат} = 2\pi\sqrt{l/g}$
-$W_{мех} = kA^2/2 = m\omega^2 A^2/2$
-Затухание, диссипация, $\omega_{рез} \approx \omega_0$
-$\lambda = vT$
-16 Гц – 20 кГц, $v_{зв}^{возд} \approx 340$ м/с
-