音乐的数学原理:从振动弦到现代乐理

本文从一根弦出发,首先推导了描述其振动的偏微分方程,再用行波法逐步求得通解,之后继续考虑初始条件和边界条件得到特解,并用傅里叶级数对结果进行了展开。 接着,本文讨论了驻波的性质,用传递函数对声音传播过程进行了建模,并介绍了人的听觉系统,解释了基频决定音高、拨弦位置影响音色的原因。 再之后,本文研究了乐理知识背后的数学原理,包括调律、和弦和节奏。 全文很长,可以挑感兴趣的阅读。 振动弦 众所周知,声音用振动产生。对于大多的乐器,这种振动都是弦的振动。如果要探究音乐的数学原理,首先就要研究弦的振动。 波动方程 不过,弦的振动毕竟较点的振动更为复杂,因此,我们要对问题进行简化:振动只能是竖直方向的。 该假设使得弦上每一点的横坐标被固定。于是,我们可用函数 $u(x, t)$ 来表示弦的振动,其中 $t$ 为时间,$x$ 为点的横坐标,$u$ 为点的纵位移。下图展示了某一时刻的 $u(x)$,其中弦的两端被固定 \begin{tikzpicture}[x=1pt, y=1pt, font=\normalsize] \draw[gray, thin, ->] (0,0) -- (0,250) node[above] {$u(x)$}; \draw[gray, thin, ->] (0,0) -- (500,0) node[right] {$x$}; \node[gray] at (0,-10) {$0$}; \node[gray] at (400,-10) {$L$}; \draw[black, thick] (0,0) .. controls (150,220) and (300,60) .. (400,0); \coordinate (P) at (60,70); \filldraw[black] (P) circle (3pt) node[above] {$P$}; \draw[gray, dashed] (60, 70) -- (60, 0); \coordinate (Q) at (120,105); \filldraw[black] (Q) circle (3pt) node[above] {$Q$}; \draw[gray, dashed] (120, 105) -- (120, 0); \draw[black, <->] (60,20) -- (120,20) node[above, midway] {$\Delta x$}; \draw[blue, line width=2pt] (P) .. controls (80,85) and (100,98) .. (Q); \draw[red, thick, ->] (P) -- ++(-28,-28) node[below right] {$\mathbf{T}_1$}; \draw[red, thick, ->] (Q) -- ++(36,10) node[above right] {$\mathbf{T}_2$}; \draw[black, thin, dashed] (60,70) -- (110,70); \draw[purple, thin] (70,70) arc (0:-130:10) node[pos=0, below right] {$\theta_1$}; \draw[black, thin, dashed] (120,105) -- (170,105); \draw[purple, thin] (130,105) arc (0:18:10) node[pos=0, below right] {$\theta_2$}; \end{tikzpicture} 现在我们对弦上一小段平衡时的长度为 $\Delta x$ 的弧进行受力分析。显然 $\frac{\partial^2 u}{\partial t^2}$ 就是弦的加速度。若用 $\mu$ 表示弦的线密度,则据牛顿第二定理,可得 ...

2026年4月4日 · 25 分钟 · 10217 字 · 冯玉

特征方程的本质:用矩阵求解微分方程和差分方程

如果一个数学问题要用到特征方程,那么这个问题一定可以用矩阵进行描述和求解,并且答案往往会和矩阵的任意正整数次幂有关。 而为了计算矩阵幂,我们需要对角化或约旦标准化矩阵。特征方程就是此时出现的。所有数学问题中出现的特征方程本质上都是矩阵的特征方程。 后文将以常系数线性微分方程和常系数线性差分方程这两个问题为例阐明上述的话究竟是什么意思。为了不偏离主题,我们只讨论齐次的情况。 常系数线性齐次微分方程 用矩阵描述常系数线性齐次微分方程 任意高阶的线性齐次微分方程,都可通过下述方法转化为等价的一阶线性齐次微分方程组。 以三阶线性齐次微分方程为例 已知 $x(0)$、$x'(0)$、$x''(0)$,求 $x(t)$ 满足 $$x'''(t) = ax(t) + bx'(t) + cx''(t)$$ 可令 $$\begin{align*} x_0(t) &= x(t) \\ x_1(t) &= x'(t) \\ x_2(t) &= x''(t) \end{align*}$$从而将问题改写为如下形式 已知 $x_0(0)$、$x_1(0)$、$x_2(0)$,求 $x_0(t)$、$x_1(t)$、$x_2(t)$ 满足 $$\begin{align*} x_0'(t) &= x_1(t) \\x_1'(t) &= x_2(t) \\ x_2'(t) &= ax_0(t) + bx_1(t) + cx_2(t) \end{align*}$$ 因此一阶线性齐次微分方程组是比高阶线性齐次微分方程更一般的情况,我们先重点讨论前者,最后再专门讲下后者。 现在用矩阵来描述我们要讨论的问题 已知 $\mathbf{x}(0)$,求 $\mathbf{x}(t)$ 满足如下方程 $$\mathbf{x}'(t) = \mathbf{A} \mathbf{x}(t)$$其中 $\mathbf{x}(t) = \begin{bmatrix} x_0(t)\\ x_1(t) \\ \dots \\ x_{n-1}(t) \\ \end{bmatrix}$ 称为向量值函数,对每一个确定的 $t$,$\mathbf{x}(t)$ 为一个 $n\times1$ 的列向量;$\mathbf{x}'(t) = \begin{bmatrix} x_0'(t) \\ x_1'(t) \\ \dots \\ x_{n-1}'(t) \\ \end{bmatrix}$ 表示对 $\mathbf{x}(t)$ 的每一个分量分别求导;$\mathbf{A} = \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \dots & \dots & \dots & \dots\\ a_{n1} & a_{n2} & \dots & a_{nn} \end{bmatrix}$ 称为系数矩阵,大小为 $n\times n$ ...

2025年3月20日 · 21 分钟 · 8529 字 · 冯玉