给值求角与凑角的拆法
前两页把角当作输入:给定 与 ,算出 或 的最值。本页反过来,角是要求的东西,已知的是若干函数值。方向一反,就多出一个求值时不存在的问题:一个函数值往往对应不止一个角。
1 · 凑角的拆法
待求的角很少直接出现在已知条件里。已知的是 与 的某些函数值,要求的是 ,那就把 写成已知角的差:。这一步叫凑角,它把「求 的函数值」化归成一次差角公式的计算。
常用的拆法都是这类恒等式:
| 待求角 | 拆成 | 用到的公式 |
|---|---|---|
| 差角 | ||
| 差角 | ||
| 和角 | ||
| 差角 | ||
| 半角 |
拆法的选择只看一件事:拆出来的两个角,函数值是不是都已知或可由已知值算出。
2 · 一道经典题的两条路线
例 2.1 设 ,,,求 。
由 得 。由 得 ,符号为正。按 展开:
而 ,故 。
的符号是这道题唯一需要判断的地方,依据是 落在 内而不是 与 各自的范围。这一步判错,后面全错。
同一道题若改走正弦,算出的是 ,而 内满足这个值的角有 与 两个,还要再借 排掉一个。走余弦则一步到位,因为余弦在 上单调。
3 · 函数在范围上的单射性
反解的唯一性取决于函数在待求角的范围上是否单射。范围内部只要含有一个峰、谷或极点,同一个函数值就对应两个角。
| 范围 | 正弦 | 余弦 | 正切 |
|---|---|---|---|
| 单射 | 单射 | 单射 | |
| 不单射 | 单射 | 不单射 | |
| 单射 | 不单射 | 单射 | |
| 不单射 | 不单射 | 不单射 |
表里三栏全是「单射」的范围只有 ,也就是锐角。范围一旦放宽到 ,能一步定角的就只剩余弦。三角形的内角正落在 内,这条判据因此直接决定了解三角形该用哪条定理,见 余弦定理与边角互化。
警示 · 「正弦在
上不单射」不是个别取值的意外,而是通例。把
取
共
个值逐个反解:用余弦定角,
个值全部给出唯一解;用正弦定角,
个值全部给出两解。两解相距
,随
逼近
而收拢,
时只差 0.5124694583 度——数值上几乎重合,数学上仍是两个不同的角,取错一个答案就错一半。
4 · 范围的收窄
已知的函数值不只用来算,还用来缩范围。例 2.1 里 ,而余弦在 上递减,故 ;同理 给出 。两式相减得 ,与题设的 取交仍是 。这一次收窄没起作用:题设本已把 限在锐角内,而锐角区间上三个函数都单射。范围收窄真正派上用场的场合是题设只给出「 是三角形的内角」这类宽条件——那时 上正弦不单射,必须靠算出的边界把另一个候选排掉。
反解出来的角在浮点下不落在整数度上。上面那道题的
在双精度里算出的正好是
(与
的差为零),但 Math.acos(0.5) 折成度是 60.00000000000001;若改走正弦,Math.asin(Math.sqrt(3) / 2) 给出 59.99999999999999,另一个候选是 120。两条路线一个偏高一位、一个偏低一位,都不落在
上。顺带一处意外:
用 Math.sqrt(1 - (1/7) ** 2) 与用 4 * Math.sqrt(3) / 7 算,双精度结果逐位相同——两式在实数上相等,浮点下相等却是碰巧,这一条只在
这个具体取值上验过。
5 · 参考文献
- Inverse trigonometric functions. Wikipedia. 反三角函数的主值区间,以及为何 只给出一个解。https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
- List of trigonometric identities. Wikipedia. 和差角与半角公式,凑角所用的全部恒等式。https://en.wikipedia.org/wiki/List_of_trigonometric_identities
- Half-Angle Formulas. Wolfram MathWorld. 半角公式与符号的判定。https://mathworld.wolfram.com/Half-AngleFormulas.html
- Monotonic function. Wikipedia. 单调即单射,反解唯一性的依据。https://en.wikipedia.org/wiki/Monotonic_function