数学 / 三角函数 · 从角到波 / 积化和差与和差化积 待审核 11 / 13
2sin α cos β · 拍频

积化和差与和差化积

新教材把这组公式降为选学,理由不难理解:它们不含新的几何事实,四条积化和差全部由 和差角公式与二倍角公式 两两相加减得到,四条和差化积只是同一批等式换个字母读。但它们承担的角色与和差角公式不同。和差角公式把两个角接起来,这一组把「乘」与「加」互相翻译;一切「两个频率相乘会生出和频与差频」的说法,源头都在这四行里。

1 · 由和差角公式派生的积

把 sin⁡(α+β)\sin(\alpha+\beta) 与 sin⁡(α−β)\sin(\alpha-\beta) 的展开式相加,右端的 cos⁡αsin⁡β\cos\alpha\sin\beta 一项一正一负相消,剩下 2sin⁡αcos⁡β2\sin\alpha\cos\beta;相减则消去 sin⁡αcos⁡β\sin\alpha\cos\beta,剩下 2cos⁡αsin⁡β2\cos\alpha\sin\beta。余弦的两条同理:两式相加消去 sin⁡αsin⁡β\sin\alpha\sin\beta,相减消去 cos⁡αcos⁡β\cos\alpha\cos\beta。四条整理如下,合称积化和差。

左端 右端 由哪两条相加减
sin⁡αcos⁡β\sin\alpha\cos\beta 12[sin⁡(α+β)+sin⁡(α−β)]\dfrac{1}{2}\bigl[\sin(\alpha+\beta) + \sin(\alpha-\beta)\bigr] 正弦两条相加
cos⁡αsin⁡β\cos\alpha\sin\beta 12[sin⁡(α+β)−sin⁡(α−β)]\dfrac{1}{2}\bigl[\sin(\alpha+\beta) - \sin(\alpha-\beta)\bigr] 正弦两条相减
cos⁡αcos⁡β\cos\alpha\cos\beta 12[cos⁡(α+β)+cos⁡(α−β)]\dfrac{1}{2}\bigl[\cos(\alpha+\beta) + \cos(\alpha-\beta)\bigr] 余弦两条相加
sin⁡αsin⁡β\sin\alpha\sin\beta 12[cos⁡(α−β)−cos⁡(α+β)]\dfrac{1}{2}\bigl[\cos(\alpha-\beta) - \cos(\alpha+\beta)\bigr] 余弦两条相减

第四条的写法值得单看。按相减的顺序本该得到 cos⁡(α+β)−cos⁡(α−β)=−2sin⁡αsin⁡β\cos(\alpha+\beta) - \cos(\alpha-\beta) = -2\sin\alpha\sin\beta,前面带一个负号;习惯上把两项对调,让右端不带负号,代价是括号里的加减次序与前三条不一致。

右端一律是「12\dfrac{1}{2} 乘一个和或差」,两次求值加一次加减就够,一次乘法都不出现。这条性质在 §6 里有直接的历史用处。

图 1-1 · 积曲线与两条半项曲线的叠加,竖直虚线是读数位置 α\alpha。可切换公式、拖动 β\beta 与 α\alpha,读数并排给出左端的积、右端的半和差以及两者的浮点偏差。

2 · 换元后的和差化积

上表的左端是积、右端是和差。要把和差写成积,只需把四条倒过来读,再换一组字母:令 x=α+βx = \alpha + \beta、y=α−βy = \alpha - \beta,则 α=x+y2\alpha = \dfrac{x+y}{2}、β=x−y2\beta = \dfrac{x-y}{2}。代入即得和差化积。

左端 右端
sin⁡x+sin⁡y\sin x + \sin y 2sin⁡x+y2cos⁡x−y22\sin\dfrac{x+y}{2}\cos\dfrac{x-y}{2}
sin⁡x−sin⁡y\sin x - \sin y 2cos⁡x+y2sin⁡x−y22\cos\dfrac{x+y}{2}\sin\dfrac{x-y}{2}
cos⁡x+cos⁡y\cos x + \cos y 2cos⁡x+y2cos⁡x−y22\cos\dfrac{x+y}{2}\cos\dfrac{x-y}{2}
cos⁡x−cos⁡y\cos x - \cos y −2sin⁡x+y2sin⁡x−y2-2\sin\dfrac{x+y}{2}\sin\dfrac{x-y}{2}

四条的右端都是「两倍的、半和角与半差角的两个函数之积」。负号只出现在余弦相减那条,它正对应上表第四条被对调掉的那个负号。

警示 · 和差化积要求两项同名。sin⁡x+cos⁡y\sin x + \cos y 直接套公式无从下手,须先用诱导公式换族,写成 sin⁡x+sin⁡(90°−y)\sin x + \sin(90° - y),此后半和角是 x+90°−y2\dfrac{x + 90° - y}{2} 而不是 x+y2\dfrac{x+y}{2}。同理,sin⁡x+sin⁡2y\sin x + \sin 2y 是可以化的,两项虽然角不同但同名,公式对角本身没有任何要求。

3 · 拍频与包络

设两个频率相近的正弦,振幅相同:y=asin⁡(2πf1t)+asin⁡(2πf2t)y = a\sin(2\pi f_1 t) + a\sin(2\pi f_2 t)。和差化积的第一条把它改写成

y=2acos⁡(2π⋅f1−f22⋅t)sin⁡(2π⋅f1+f22⋅t)y = 2a\cos\left(2\pi \cdot \frac{f_1 - f_2}{2} \cdot t\right)\sin\left(2\pi \cdot \frac{f_1 + f_2}{2} \cdot t\right)

右端是一个频率为 f1+f22\dfrac{f_1+f_2}{2} 的正弦,乘上一个频率只有 ∣f1−f2∣2\dfrac{|f_1-f_2|}{2} 的余弦。两个频率相近时后者远慢于前者,于是同一个式子有了两种读法:快的那个因子是载波 (carrier),定音高;慢的那个因子给出振幅的缓慢起伏,称为包络 (envelope)。

包络与拍的倍数关系容易记错。包络因子的频率是 ∣f1−f2∣2\dfrac{|f_1-f_2|}{2},但听感响应的是振幅的绝对值,∣cos⁡∣|\cos| 的周期只有 cos⁡\cos 的一半,每秒的响度极大值是 ∣f1−f2∣|f_1 - f_2| 次,这个数才叫拍频 (beat frequency)。440 Hz 与 443 Hz 同时响,载波是 441.5 Hz,包络因子的频率是 1.5 Hz,而每秒听到的「嗡」是 3 次。调音师据此把连续的音高误差读成一个整数:数一秒钟响几下,就知道差几赫兹。

振幅不等时这条路走不通,两项提不出公因子。改把两项当同频相量相加(合成规则见 辅助角公式与三角式的最值 §1),包络是

a12+a22+2a1a2cos⁡(2π(f1−f2)t)\sqrt{a_1^2 + a_2^2 + 2a_1a_2\cos\bigl(2\pi(f_1-f_2)t\bigr)}

它在 a1+a2a_1 + a_2 与 ∣a1−a2∣|a_1 - a_2| 之间摆动,等幅只是下界为零的特例。实际后果是:两音强度不等时拍点并不静音,只是变弱。取 a1=1a_1 = 1、a2=0.9a_2 = 0.9、f1=440f_1 = 440、f2=443f_2 = 443,包络的下界是 0.10.1;按载波周期逐个取 ∣y∣|y| 的峰值,实测到的谷是 0.100065,与 ∣a1−a2∣|a_1 - a_2| 对得上。调制深度 max⁡−min⁡max⁡+min⁡\dfrac{\max - \min}{\max + \min} 此时是 0.90.9,等幅时才是 11。

图 3-1 · 两个正弦的叠加波形与包络。可调两个频率与两个振幅,读数给出载波频率、包络频率、拍频与调制深度;两个振幅相等时包络触零,不等时下界是振幅之差。

4 · 相乘生出的和频与差频

积化和差反过来读,说的是两个频率相乘会生出和频与差频,而且只生这两个。超外差接收机 (superheterodyne) 用的就是这一行:把收到的射频信号 cos⁡(2πfst)\cos(2\pi f_s t) 与本机振荡 cos⁡(2πfot)\cos(2\pi f_o t) 相乘,第三条给出

cos⁡(2πfst)cos⁡(2πfot)=12[cos⁡(2π(fs+fo)t)+cos⁡(2π(fs−fo)t)]\cos(2\pi f_s t)\cos(2\pi f_o t) = \frac{1}{2}\Bigl[\cos\bigl(2\pi(f_s+f_o)t\bigr) + \cos\bigl(2\pi(f_s-f_o)t\bigr)\Bigr]

滤掉频率高的那一项,剩下的差频与调谐到哪个电台无关,只取决于 fs−fof_s - f_o。把本机振荡随调谐同步移动,让这个差保持恒定,后级的放大与滤波就可以永远工作在同一个固定频率上。

同一条等式在积分里读成另一件事。∫sin⁡mxsin⁡nx dx\int \sin mx \sin nx \, \mathrm{d}x 之所以算得出来,是因为积化和差先把被积函数降成两个余弦,而余弦的原函数是现成的。m≠nm \ne n 时这个积分在一个整周期上为零,m=nm = n 时不为零——三角函数系的正交性由此而来,它是傅里叶级数能逐项定系数的全部依据。这组公式不只是和差角公式的推论,它是频谱分析的第一块砖。

5 · 相近角相减的精度

和差化积还是一条数值上更稳的算路。cos⁡x−cos⁡y\cos x - \cos y 在 xx 与 yy 相近时是典型的相消:两个各约 0.8660.866 的数相减得到 10−1110^{-11} 量级的结果,双精度里两个余弦值各自的舍入误差约 10−1610^{-16},相对于结果已是百万分之几。右端 −2sin⁡x+y2sin⁡x−y2-2\sin\dfrac{x+y}{2}\sin\dfrac{x-y}{2} 不做减法,精度不受影响。

原先以为这条优势无条件成立,实测把它修正了。以半和 30°30° 与半差 hh 作输入、hh 取 10−910^{-9} 度时,参照值由 60 位定点 BigInt 的泰勒级数离线算出,是 −1.7453292519943295×10−11-1.7453292519943295 \times 10^{-11}:直接相减给出 -1.7453261058619773e-11,只对到 5.7 位有效数字;和差化积给出 -1.745329251994329e-11,对到 15.7 位,相差整整十位。但若输入给的是 x=30°x = 30° 与 y=x+10−9°y = x + 10^{-9}°,半差角要由 x−y2\dfrac{x-y}{2} 现算,相消原样搬到了这一步,两条算路分别只对到 5.3 位与 7.1 位,差不到两位。和差化积搬走的是函数值上的相消,搬不走角上的相消。

没有相消的普通格点上,两端的偏差就只是最后几位。α, β\alpha,\ \beta 以 1°1° 为步长扫遍 [−360°, 360°][-360°,\ 360°] 的 721×721721 \times 721 个格点,四条积化和差两端的最大偏差是 1.6653345369377348e-15,合 7.5 个 Number.EPSILON;同样的格点上四条和差化积一侧是 2.6645352591003757e-15,合 12 个,且有 16 个格点并列取到。两侧不对称的原因是和差化积的左端 sin⁡x+sin⁡y\sin x + \sin y 本身就多一次加法,右端却只有乘法。

6 · 对数发明之前的乘法捷径

对数表出现之前,天文计算里最贵的运算是多位数乘法。当时的办法是把乘法转成查表加减:要算 a⋅ba \cdot b,先按比例把两数缩进 [−1, 1][-1,\ 1],取 α=arccos⁡a\alpha = \arccos a、β=arccos⁡b\beta = \arccos b,再用第三条

ab=cos⁡αcos⁡β=12[cos⁡(α−β)+cos⁡(α+β)]ab = \cos\alpha\cos\beta = \frac{1}{2}\bigl[\cos(\alpha-\beta) + \cos(\alpha+\beta)\bigr]

三次查表、两次加减、一次折半,代替一次多位数乘法。这套方法叫 prosthaphaeresis,词源是希腊语的「加减」。1614 年 Napier 的对数表问世后它很快退场——对数把乘法变成一次加法,比这条路还短一步。

把它归给哪一位发明者,文献说法不一:Wittich 与 Bürgi 各有主张,另有一说上溯到 10 世纪的 Ibn Yunis,但缺少可靠的直接证据[4]。能确定的只是 1580 年代它已在第谷·布拉赫的天文台上例行使用。这段历史值得写进正文:它是「把难做的运算翻译成好做的运算」这条思路最早的一次大规模实践,而积化和差正好是那本字典。

7 · 参考文献

  1. List of trigonometric identities. Wikipedia. Product-to-sum 与 sum-to-product 两节给出本页八条公式的完整清单。https://en.wikipedia.org/wiki/List_of_trigonometric_identities
  2. Beat (acoustics). Wikipedia. 拍的成因、拍频等于频率差,以及不等幅时的调制深度。https://en.wikipedia.org/wiki/Beat_(acoustics)
  3. Heterodyne. Wikipedia. 混频器如何由乘法生出和频与差频,以及超外差接收机的结构。https://en.wikipedia.org/wiki/Heterodyne
  4. Prosthaphaeresis. Wikipedia. 积化和差用作乘法捷径的历史,含归属之争与第谷天文台的使用记录。https://en.wikipedia.org/wiki/Prosthaphaeresis
  5. Thoren, V. E. (1988). Prosthaphaeresis revisited. Historia Mathematica, 15(1), 32–39.
  6. Envelope (waves). Wikipedia. 包络的定义与相量合成给出的一般形式。https://en.wikipedia.org/wiki/Envelope_(waves)