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

本文从一根弦出发,首先推导了描述其振动的偏微分方程,再用行波法逐步求得通解,之后继续考虑初始条件和边界条件得到特解,并用傅里叶级数对结果进行了展开。 接着,本文讨论了驻波的性质,用传递函数对声音传播过程进行了建模,并介绍了人的听觉系统,解释了基频决定音高、拨弦位置影响音色的原因。 再之后,本文研究了乐理知识背后的数学原理,包括调律、和弦和节奏。 全文很长,可以挑感兴趣的阅读。 振动弦 众所周知,声音用振动产生。对于大多的乐器,这种振动都是弦的振动。如果要探究音乐的数学原理,首先就要研究弦的振动。 波动方程 不过,弦的振动毕竟较点的振动更为复杂,因此,我们要对问题进行简化:振动只能是竖直方向的。 该假设使得弦上每一点的横坐标被固定。于是,我们可用函数 $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 字 · 冯玉

随机过程分析:世界上每时每刻都有人在做爱吗

数学假设 对于该问题,我们不得不做出一些数学上非常重要但现实中非常不靠谱的假设:做爱对个人而言是独立同分布的,对时间而言也是独立同分布的,不考虑性别、文化、经济、季节、时差、地区等因素。 后续需要用到的数据提前列出如下: 世界上的总人数为 $N$,根据公开数据进行取整得 $N = 8 \times 10^9$ 人均做爱次数为每年 $M$ 次,根据部分调查报告,取比较保守的估计 $M = 50$ 平均做爱时长为每次 $\mu$ 秒,由于没有靠谱的统计数据,粗暴地令 $\mu = 300$ 一年的总时间为 $Y$ 秒,忽略闰年闰秒等情况有 $Y=365\times24\times60\times60$ 伯努利过程 首先用最简单的伯努利过程进行建模。 伯努利过程模型 每个人每一刻都以概率 $p$ 处于做爱状态。每过一刻,所有人同时重新判定处于哪种状态。 伯努利过程分析 用 $X$ 表示处于做爱状态的人数。 在任意时刻,某人处于做爱状态的概率为 $p$,处于非做爱状态的概率为 $1-p$。由于做爱对人是独立同分布的,因此在该时刻处于做爱状态的人数符合伯努利分布,即 $$P(X = k) = \binom{N}{k} p^k (1-p)^{N-k}$$于是得到同时做爱人数的期望为 $$E[X] = Np$$所有人都不在做爱的概率为 $$P(X = 0) = (1-p)^N$$代入数据得到 $$p = \frac{M\mu}{Y}= \frac{50 \times 300}{ 365 \times 24 \times 60 \times 60} \approx 4.756\times10^{-4}$$因此 平均做爱人数为 $Np \approx 3.805\times10^6$ 所有人都不在做爱的概率为 $(1-p)^N \approx e^{-3.806\times10^6}$ 泊松过程 伯努利过程的模型虽然简单,但其有着明显的缺陷:时间被离散化了,所有人只是不停地、在每个时间节点同步地抛硬币决定自身的状态。一个可能更合理的模型需用到泊松过程,这样能够让时间是连续的。不过考虑到泊松过程对多数人而言较为陌生,我们先从简单的模型说起。 ...

2026年3月6日 · 7 分钟 · 2945 字 · 冯玉

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

如果一个数学问题要用到特征方程,那么这个问题一定可以用矩阵进行描述和求解,并且答案往往会和矩阵的任意正整数次幂有关。 而为了计算矩阵幂,我们需要对角化或约旦标准化矩阵。特征方程就是此时出现的。所有数学问题中出现的特征方程本质上都是矩阵的特征方程。 后文将以常系数线性微分方程和常系数线性差分方程这两个问题为例阐明上述的话究竟是什么意思。为了不偏离主题,我们只讨论齐次的情况。 常系数线性齐次微分方程 用矩阵描述常系数线性齐次微分方程 任意高阶的线性齐次微分方程,都可通过下述方法转化为等价的一阶线性齐次微分方程组。 以三阶线性齐次微分方程为例 已知 $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 字 · 冯玉

第一类曲线积分:为什么积分上限必须大于积分下限

第一类曲线积分要求积分上限大于积分下限,并不是说改变方向会影响结果。只是通过这个规定,我们可以免去中间的过程。 从有问题的弧长公式说起 对参数向量定义的曲线 $C:\vec{r}(t)$,从 $t = a$ 到 $t = b$ 的这段弧长为 $$s = \int_{C}^{} \mathrm{d}s= \int_{a}^{b} \left| \frac{\mathrm{d} \vec{r}}{\mathrm{d} t} \right| \mathrm{d}t$$看上去似乎没什么问题。但我们知道,对定积分来说,交换上下限会导致结果的正负相反。而一段曲线从 $t = b$ 到 $t = a$ 的长度应该等于从 $t = a$ 到 $t = b$ 的长度。这公式显然与事实不符。 问题出在哪里呢?不妨想一下该公式可以怎样修改。为了解决上述问题,一个更准确的弧长公式应该长这样 $$s = \left| \int_{a}^{b} \left| \frac{\mathrm{d} \vec{r}}{\mathrm{d} t} \right| \mathrm{d}t \right|$$如果把绝对值放进去,马上就发现了问题所在 $$s = \int_{a}^{b} \left| \frac{\mathrm{d} \vec{r}}{\mathrm{d} t} \right| \left| \mathrm{d}t \right|$$是的,问题的根源就在于弧长微元。改正后的弧长微元变为 $$\mathrm{d}s = \left| \frac{\mathrm{d} \vec{r}}{\mathrm{d} t} \right| \left| \mathrm{d}t \right|$$弧长微元就是一小段曲线的长度,肯定为非负数,而 $\mathrm{d}t$ 有可能是负数,所以必须加上绝对值。 ...

2023年12月26日 · 6 分钟 · 2536 字 · 冯玉