数学 / 三角函数 · 从角到波 / 给值求角与凑角的拆法 待审核 13 / 13
先缩范围再定角

给值求角与凑角的拆法

前两页把角当作输入:给定 α\alphaβ\beta,算出 sin(α+β)\sin(\alpha+\beta)asinx+bcosxa\sin x + b\cos x 的最值。本页反过来,角是要求的东西,已知的是若干函数值。方向一反,就多出一个求值时不存在的问题:一个函数值往往对应不止一个角。

1 · 凑角的拆法

待求的角很少直接出现在已知条件里。已知的是 α\alphaα+β\alpha + \beta 的某些函数值,要求的是 β\beta,那就把 β\beta 写成已知角的差:β=(α+β)α\beta = (\alpha + \beta) - \alpha。这一步叫凑角,它把「求 β\beta 的函数值」化归成一次差角公式的计算。

常用的拆法都是这类恒等式:

待求角 拆成 用到的公式
β\beta (α+β)α(\alpha + \beta) - \alpha 差角
α\alpha (α+β)β(\alpha + \beta) - \beta 差角
2α2\alpha (α+β)+(αβ)(\alpha + \beta) + (\alpha - \beta) 和角
2β2\beta (α+β)(αβ)(\alpha + \beta) - (\alpha - \beta) 差角
α\alpha (α+β)+(αβ)2\dfrac{(\alpha+\beta) + (\alpha - \beta)}{2} 半角

拆法的选择只看一件事:拆出来的两个角,函数值是不是都已知或可由已知值算出。

2 · 一道经典题的两条路线

例 2.1α, β(0, π/2)\alpha,\ \beta \in (0,\ \pi/2)cosα=1/7\cos\alpha = 1/7cos(α+β)=11/14\cos(\alpha + \beta) = -11/14,求 β\beta

α(0, π/2)\alpha \in (0,\ \pi/2)sinα=11/49=43/7\sin\alpha = \sqrt{1 - 1/49} = 4\sqrt{3}/7。由 α+β(0, π)\alpha + \beta \in (0,\ \pi)sin(α+β)=1121/196=53/14\sin(\alpha+\beta) = \sqrt{1 - 121/196} = 5\sqrt{3}/14,符号为正。按 β=(α+β)α\beta = (\alpha+\beta) - \alpha 展开:

cosβ=cos(α+β)cosα+sin(α+β)sinα=1198+6098=12\cos\beta = \cos(\alpha+\beta)\cos\alpha + \sin(\alpha+\beta)\sin\alpha = -\frac{11}{98} + \frac{60}{98} = \frac{1}{2}

β(0, π/2)\beta \in (0,\ \pi/2),故 β=π/3\beta = \pi/3

sin(α+β)\sin(\alpha + \beta) 的符号是这道题唯一需要判断的地方,依据是 α+β\alpha + \beta 落在 (0, π)(0,\ \pi) 内而不是 α\alphaβ\beta 各自的范围。这一步判错,后面全错。

同一道题若改走正弦,算出的是 sinβ=3/2\sin\beta = \sqrt{3}/2,而 (0, π)(0,\ \pi) 内满足这个值的角有 π/3\pi/32π/32\pi/3 两个,还要再借 β<π/2\beta < \pi/2 排掉一个。走余弦则一步到位,因为余弦在 (0, π)(0,\ \pi) 上单调。

3 · 函数在范围上的单射性

反解的唯一性取决于函数在待求角的范围上是否单射。范围内部只要含有一个峰、谷或极点,同一个函数值就对应两个角。

范围 正弦 余弦 正切
(0, π/2)(0,\ \pi/2) 单射 单射 单射
(0, π)(0,\ \pi) 不单射 单射 不单射
(π/2, π/2)(-\pi/2,\ \pi/2) 单射 不单射 单射
(0, 2π)(0,\ 2\pi) 不单射 不单射 不单射

表里三栏全是「单射」的范围只有 (0, π/2)(0,\ \pi/2),也就是锐角。范围一旦放宽到 (0, π)(0,\ \pi),能一步定角的就只剩余弦。三角形的内角正落在 (0, π)(0,\ \pi) 内,这条判据因此直接决定了解三角形该用哪条定理,见 余弦定理与边角互化

图 3-1 · 一个函数值在选定角范围内定出的全部终边,高亮圆弧是允许的范围。可切换已知量与范围,观察同一个值何时给出两个角。

警示 · 「正弦在 (0, π)(0,\ \pi) 上不单射」不是个别取值的意外,而是通例。把 vv0.01, 0.02, , 0.990.01,\ 0.02,\ \dots,\ 0.999999 个值逐个反解:用余弦定角,9999 个值全部给出唯一解;用正弦定角,9999 个值全部给出两解。两解相距 180°2arcsinv180° - 2\arcsin v,随 vv 逼近 11 而收拢,v=0.99999v = 0.99999 时只差 0.5124694583 度——数值上几乎重合,数学上仍是两个不同的角,取错一个答案就错一半。

4 · 范围的收窄

已知的函数值不只用来算,还用来缩范围。例 2.1 里 cosα=1/7<1/2\cos\alpha = 1/7 < 1/2,而余弦在 (0, π/2)(0,\ \pi/2) 上递减,故 α(π/3, π/2)\alpha \in (\pi/3,\ \pi/2);同理 cos(α+β)=11/14<1/2\cos(\alpha+\beta) = -11/14 < -1/2 给出 α+β(2π/3, π)\alpha + \beta \in (2\pi/3,\ \pi)。两式相减得 β(π/6, 2π/3)\beta \in (\pi/6,\ 2\pi/3),与题设的 (0, π/2)(0,\ \pi/2) 取交仍是 (π/6, π/2)(\pi/6,\ \pi/2)。这一次收窄没起作用:题设本已把 β\beta 限在锐角内,而锐角区间上三个函数都单射。范围收窄真正派上用场的场合是题设只给出「β\beta 是三角形的内角」这类宽条件——那时 (0, π)(0,\ \pi) 上正弦不单射,必须靠算出的边界把另一个候选排掉。

反解出来的角在浮点下不落在整数度上。上面那道题的 cosβ\cos\beta 在双精度里算出的正好是 0.50.5(与 1/21/2 的差为零),但 Math.acos(0.5) 折成度是 60.00000000000001;若改走正弦,Math.asin(Math.sqrt(3) / 2) 给出 59.99999999999999,另一个候选是 120。两条路线一个偏高一位、一个偏低一位,都不落在 6060 上。顺带一处意外:sinα\sin\alphaMath.sqrt(1 - (1/7) ** 2) 与用 4 * Math.sqrt(3) / 7 算,双精度结果逐位相同——两式在实数上相等,浮点下相等却是碰巧,这一条只在 1/71/7 这个具体取值上验过。

5 · 参考文献

  1. Inverse trigonometric functions. Wikipedia. 反三角函数的主值区间,以及为何 arcsin\arcsin 只给出一个解。https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
  2. List of trigonometric identities. Wikipedia. 和差角与半角公式,凑角所用的全部恒等式。https://en.wikipedia.org/wiki/List_of_trigonometric_identities
  3. Half-Angle Formulas. Wolfram MathWorld. 半角公式与符号的判定。https://mathworld.wolfram.com/Half-AngleFormulas.html
  4. Monotonic function. Wikipedia. 单调即单射,反解唯一性的依据。https://en.wikipedia.org/wiki/Monotonic_function